1 #--------------------------------------------------------------------
2 # CMakeDA.cmake file for AliRoot Build System
4 # Author: Anshul Goel (anshul.goel@cern.ch)
5 # Port of previous Makefile build to DAQ targets and RPM
8 cmake_minimum_required(VERSION 2.8.4 FATAL_ERROR)
10 # -----------Utilities--------------------
13 #set(ONLINEDETECTORS SPD SDD SSD TRD TPC FMD TOF HMP PHS CPV PMD MCH MTR T00 V00 ZDC ACO TRI EMC HLT TST GRP)
14 set(ONLINEDETECTORS SPD SDD SSD TRD ACO)
15 function(expand output input)
16 string(REGEX MATCH "\\\${[^}]*}" m "${input}")
18 string(REGEX REPLACE "\\\${(.*)}" "\\1" v "${m}")
19 string(REPLACE "\${${v}}" "${${v}}" input "${input}")
20 string(REGEX MATCH "\\\${[^}]*}" m "${input}")
22 set("${output}" "${input}" PARENT_SCOPE)
25 #function to get module for detector
26 function (detector_module _module detector)
27 #Map of online detectors to DA in pairs of ONLINEDETECTORNAME DAMODULE
28 set (DETECTORMODULEMAP SPD ITS SDD ITS SSD ITS HMP HMPID PHS PHOS CPV PHOS MCH MUON MTR MUON T00 T0 V00 VZERO ACO ACORDE EMC EMCAL)
29 list(FIND DETECTORMODULEMAP ${detector} _index)
30 if(_index STREQUAL "-1")
31 set(${_module} "${detector}" PARENT_SCOPE)
33 math(EXPR _index "${_index}+1")
34 list(GET DETECTORMODULEMAP ${_index} _index)
35 set(${_module} ${_index} PARENT_SCOPE)
36 endif(_index STREQUAL "-1")
39 #function to get subDA for detector
40 function (detector_subda _subda detector)
41 #Map of online detectors to SUBDAMODULE in pairs of ONLINEDETECTORNAME SUBDAMODULE
42 set (DETECTORSUBDAMAP SPD SPD SDD SDD SSD SSD CPV CPV MCH TRK MTR TRG)
43 list(FIND DETECTORSUBDAMAP ${detector} _index)
44 if(_index STREQUAL "-1")
45 set(${_subda} "" PARENT_SCOPE)
47 math(EXPR _index "${_index}+1")
48 list(GET DETECTORSUBDAMAP ${_index} _index)
49 set(${_subda} ${_index} PARENT_SCOPE)
50 endif(_index STREQUAL "-1")
53 #function to extract info
54 function (getinfo _info pattern file)
55 string(REGEX MATCH "${pattern}:[^\n]*" _match ${file})
57 string(REGEX REPLACE "${pattern}:[ ]*" "" _data ${_match})
59 set(${_info} ${_data} PARENT_SCOPE)
63 foreach(oldetect ${ONLINEDETECTORS})
64 detector_module(h_module ${oldetect})
65 list(APPEND mod "-I${ALICE_ROOT}/${h_module}")
66 endforeach(oldetect ${ONLINEDETECTORS})
67 list(APPEND mod "-I$ALICE_ROOT}/include" "-I${ALICE_ROOT}/STEER" "-I${ALICE_ROOT}/MUON/mapping" "-I$ENV{AMORE}/include/amore")
69 # ----------Common stuff-------------------
71 file(GLOB_RECURSE _dafiles $ENV{ALICE_ROOT}/*da.cxx)
72 set(DAINSTALL "$ENV{ALICE_INSTALL}/DA")
74 file(MAKE_DIRECTORY ${DAINSTALL})
76 string (REPLACE "-pedantic-errors" "" CXXFLAGS ${CXXFLAGS})
78 find_program(XML2 xml2-config)
82 set(CXXFLAGS "${CXXFLAGS} ${AMOREFLAGS}")
83 set(CFLAGS "${CFLAGS} ${AMOREFLAGS}")
84 set(CINTFLAGS "${CINTFLAGS} ${AMOREFLAGS}")
89 execute_process(COMMAND ${XML2} --libs OUTPUT_VARIABLE _xml2libs OUTPUT_STRIP_TRAILING_WHITESPACE)
90 execute_process(COMMAND ${DATE_CONFIG} --monitorlibs=noshift OUTPUT_VARIABLE MONITORLIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
92 separate_arguments(MONITORLIBS)
94 set(SYSLIBS -ldl -lpthread ${_xml2libs})
97 set(EXTRAROOTLIB "libRootExtra.a")
99 file(GLOB _extraroot "$ENV{ROOTSYS}/montercarlo/vmc/src/*.o" "$ENV{ROOTSYS}/tree/treeplayer/src/*.o" "$ENV{ROOTSYS}/io/xmlparser/src/*.o" "$ENV{ROOTSYS}/math/minuit2/src/*.o")
101 add_library(${EXTRAROOTLIB} STATIC ${_extraroot})
102 set_target_properties(${EXTRAROOTLIB} PROPERTIES LINKER_LANGUAGE CXX)
104 set(DAQDALIB_PATH $ENV{DAQDALIB_PATH})
106 set(DAQDADIR "${DAQDALIB_PATH}")
108 set(DAQDADIR "$ENV{ALICE}/daqDAlib")
110 set(DAQDALIB "${DAQDADIR}/libdaqDA.a")
112 include_directories(${DAQDADIR} RAW include STEER)
113 include_directories(SYSTEM ${ROOTINCDIR})
115 # ----------Create All Valid targets---------
117 foreach(detector ${ONLINEDETECTORS} )
119 set(ONLINEDETECTORNAME ${detector})
121 detector_module(DAMODULE ${ONLINEDETECTORNAME})
123 detector_subda(SUBDAMODULE ${ONLINEDETECTORNAME})
129 list(APPEND ALIROOTALIBS RAWDatabase-static RAWDatarec-static RAWDatasim-static STEERBase-static STEER-static CDB-static ESD-static STAT-static AOD-static ANALYSIS-static ANALYSISalice-static )
131 expand(ALIROOTALIBS2 "\${${DAMODULE}ALIBS}")
132 expand(DAINCDIRS "\${${DAMODULE}INC}")
133 list(APPEND ALIROOTALIBS ${ALIROOTALIBS2})
135 include_directories(${DAMODULE} ${SUBDIR} ${DAINCDIRS})
136 #Get detector algorithms for this detector
138 foreach(dafile ${_dafiles})
140 string(REGEX MATCH "$ENV{ALICE_ROOT}/${DAMODULE}/${DAMODULE}${SUBDAMODULE}" match ${dafile})
141 #Found a valid target name
143 string(REGEX REPLACE "$ENV{ALICE_ROOT}/${DAMODULE}/${DAMODULE}${SUBDAMODULE}(.*)da\\.cxx" "\\1" DANAME ${dafile})
144 #Check for default DA
146 set(DATARGETNAME "daqDA-${ONLINEDETECTORNAME}-${DANAME}")
148 set(DATARGETNAME "daqDA-${ONLINEDETECTORNAME}")
151 set(DATARGETDIR "${DAINSTALL}/${DAMODULE}/tgt_$ENV{ALICE_TARGET}")
152 file(MAKE_DIRECTORY ${DATARGETDIR})
153 set(DAOBJ "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.o")
154 set(DASRC "${DAMODULE}/${DAMODULE}${SUBDAMODULE}${DANAME}da.cxx")
155 set(DALIB "${DAMODULE}${SUBDAMODULE}${DANAME}DA")
156 set(DAEXE "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe")
157 set(DADEP "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.d")
159 execute_process(COMMAND svn info $ENV{ALICE_ROOT}/${DASRC} OUTPUT_VARIABLE _daversion OUTPUT_STRIP_TRAILING_WHITESPACE)
160 string(REGEX REPLACE ".*Last Changed Rev: ([^\n]+)\n.*" "\\1" DAVERSION ${_daversion})
163 execute_process(COMMAND root-config --version OUTPUT_VARIABLE _darootrelease OUTPUT_STRIP_TRAILING_WHITESPACE)
164 string(REGEX REPLACE "/" "." DAROOTRELEASE ${_darootrelease})
167 string(REGEX REPLACE ".*URL: .*/(.+)/${DASRC}.*$" "\\1" DAALIROOTRELEASE ${_daversion})
169 set(DAARCNAME "${DATARGETNAME}")
170 string(REPLACE "-" "" DAARCNAME "${DAARCNAME}")
171 set(DAARC "${DAARCNAME}-${DAVERSION}")
172 set(DATAR "${DATARGETDIR}/${DAARC}.src.tar.gz")
173 set(DASPECFILE "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.spec")
174 set(DAMAKEFILE "${DATARGETDIR}/${DAMODULE}${SUBDAMODULE}${DANAME}da.make")
177 file(READ "$ENV{ALICE_ROOT}/${DASRC}" _dasrc)
178 getinfo(DACONTACT "Contact" ${_dasrc})
179 getinfo(DALINKPAGE "Link" ${_dasrc})
180 getinfo(DAREFRUN "Reference Run" ${_dasrc})
181 getinfo(DARUNTYPE "Run Type" ${_dasrc})
182 getinfo(DATYPE "DA Type" ${_dasrc})
183 getinfo(DANUMBEROFEVENTS "Number of events needed" ${_dasrc})
184 getinfo(DAINPUTFILES "Input Files" ${_dasrc})
185 getinfo(DAOUTPUTFILES "Output Files" ${_dasrc})
186 getinfo(DATRIGGERTYPE "Trigger types used" ${_dasrc})
189 message(FATAL_ERROR "SRC FILE MISSING")
192 #----------- Targets ----------------------
194 set(CMAKE_CXX_FLAGS "${CXXFLAGS}")
195 set(CMAKE_C_FLAGS "${CFLAGS}")
196 set(CMAKE_Fortran_FLAGS ${FFLAGS})
197 set(CMAKE_SHARED_LINKER_FLAGS ${SOFLAGS})
198 set(CMAKE_MODULE_LINKER_FLAGS ${LDFLAGS})
200 add_dependencies(DA-all ${DATARGETNAME} )
201 add_custom_target(${DATARGETNAME}
202 WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
204 add_dependencies(${DATARGETNAME} ${DAEXE})
207 foreach(_lib ${ALIROOTALIBS})
208 string(REGEX REPLACE "-static" "" _lib ${_lib})
209 list(APPEND ZIP && ar x "../lib${_lib}.a")
211 list (APPEND ZIP && ar r "../lib${DALIB}.a" "*.o")
213 add_custom_target(${DALIB}.a
214 COMMAND rm -rf junk${DAEXE} && mkdir -p junk${DAEXE}
215 COMMAND cd junk${DAEXE} ${ZIP}
216 COMMAND cd ../ && rm -rf junk${DAEXE}
217 DEPENDS ${ALIROOTALIBS}
218 WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
222 TARGET ${DATARGETNAME}-clean
223 COMMAND echo "***** Cleaning ${DAMODULE} ${SUBDAMODULE} ${DANAME} detector-algorithm *****"
224 COMMAND rm -f ${DASPECFILE}
225 COMMAND rm -f ${DATAR}
226 COMMAND rm -f ${DAEXE}
227 COMMAND rm -f ${DAOBJ}
228 COMMAND rm -f ${DADEP}
229 COMMAND rm -f ${DAMAKEFILE}
230 COMMAND rm -f ${DALIB}.a
231 COMMAND rm -f ${ALIROOTALIBS}
232 COMMAND rm -f ${EXTRAROOTLIB}
235 string(REPLACE "\\" "" SYSLIBS "${SYSLIBS}")
238 add_custom_target(DAMAKEFILE_${DAEXE}_)
240 TARGET DAMAKEFILE_${DAEXE}_
241 COMMAND rm -f ${DAMAKEFILE}
242 COMMAND @echo "***** Making makefile ${DAMAKEFILE} *****"
243 COMMAND @echo '\#***************************************************' >> ${DAMAKEFILE}
244 COMMAND @echo '\# Makefile for Detector Algorithm' >> ${DAMAKEFILE}
245 COMMAND @echo '\#' >> ${DAMAKEFILE}
246 COMMAND @echo '\# It is necessary to setup build environment before' >> ${DAMAKEFILE}
247 COMMAND @echo '\# using make:' >> ${DAMAKEFILE}
248 COMMAND @echo '\# - define path to daqDAlib (env. DAQDALIB_PATH)' >> ${DAMAKEFILE}
249 COMMAND @echo '\#' >> ${DAMAKEFILE}
250 COMMAND @echo '\#*****************************************************' >> ${DAMAKEFILE}
251 COMMAND @echo "" >> ${DAMAKEFILE}
252 COMMAND @echo "CXX=g++" >> ${DAMAKEFILE}
253 COMMAND @echo "LD=g++" >> ${DAMAKEFILE}
254 COMMAND @echo "" >> ${DAMAKEFILE}
255 COMMAND @echo "CXXFLAGS=${CXXFLAGS}" >> ${DAMAKEFILE}
256 COMMAND @echo "LDFLAGS=${LDFLAGS}" >> ${DAMAKEFILE}
257 COMMAND @echo "" >> ${DAMAKEFILE}
258 COMMAND @echo 'ifeq ($$(DAQDALIB_PATH),)' >> ${DAMAKEFILE}
259 COMMAND @echo "DAQDADIR=${ALICE}/daqDAlib" >> ${DAMAKEFILE}
260 COMMAND @echo "else" >> ${DAMAKEFILE}
261 COMMAND @echo 'DAQDADIR=$$(DAQDALIB_PATH)' >> ${DAMAKEFILE}
262 COMMAND @echo "endif" >> ${DAMAKEFILE}
263 COMMAND @echo "" >> ${DAMAKEFILE}
264 COMMAND @echo 'DAQDALIB=$$(DAQDADIR)/libdaqDA.a' >> ${DAMAKEFILE}
265 COMMAND @echo 'AMOREDALIBS=-static $$(shell $$(AMORE)/amore-config --ldflags-da-static) $$(shell date-config --rcproxylibs)' >> ${DAMAKEFILE}
266 COMMAND @echo 'MONITORLIBS=$$(shell date-config --monitorlibs=noshift)' >> ${DAMAKEFILE}
267 COMMAND @echo "" >> ${DAMAKEFILE}
268 COMMAND @echo "${DAMODULE}${SUBDAMODULE}${DANAME}da.exe: ${DAMODULE}${SUBDAMODULE}${DANAME}da.o" >> ${DAMAKEFILE}
269 COMMAND @echo -e '\t$$(LD) $$(LDFLAGS) -o ''$$''@ ''$$''< \\ \n' >> ${DAMAKEFILE}
270 COMMAND @echo -e '\tlib${DALIB}.a \\ \n' >> ${DAMAKEFILE}
271 COMMAND @echo -e '\t${EXTRAROOTLIB} \\ \n' >> ${DAMAKEFILE}
272 COMMAND @echo -e '\t$$(ROOTSYS)/lib/libRoot.a \\ \n' >> ${DAMAKEFILE}
273 COMMAND @echo -e '\t$$(ROOTSYS)/lib/libfreetype.a $$(ROOTSYS)/lib/libpcre.a \\ \n' >> ${DAMAKEFILE}
274 COMMAND @echo -e '\t${SYSLIBS} \\ \n' >> ${DAMAKEFILE}
275 COMMAND @echo -e '\t$$(DAQDALIB) $$(MONITORLIBS) $$(AMOREDALIBS) \n' >> ${DAMAKEFILE}
276 COMMAND @echo "" >> ${DAMAKEFILE}
277 COMMAND @echo "${DAMODULE}${SUBDAMODULE}${DANAME}da.o: ${DAMODULE}${SUBDAMODULE}${DANAME}da.cxx" >> ${DAMAKEFILE}
278 COMMAND @echo ' $$(CXX) -c $$(CXXFLAGS) -I$$(DAQDADIR) ''$$''< -o ''$$''@' >> ${DAMAKEFILE}
279 COMMAND @echo "" >> ${DAMAKEFILE}
280 COMMAND @echo "clean:" >> ${DAMAKEFILE}
281 COMMAND @echo " @rm -f ${DAMODULE}${SUBDAMODULE}${DANAME}da.exe ${DAMODULE}${SUBDAMODULE}${DANAME}da.o" >> ${DAMAKEFILE}
282 COMMAND @echo "" >> ${DAMAKEFILE}
283 COMMAND @echo "install: ${DAMODULE}${SUBDAMODULE}${DANAME}da.exe" >> ${DAMAKEFILE}
284 COMMAND @echo ' if [ $$(INSTALL_PATH) == '' ]; then \\' >> ${DAMAKEFILE}
285 COMMAND @echo ' echo Environment variable INSTALL_PATH undefined, cannot continue;; \\' >> ${DAMAKEFILE}
286 COMMAND @echo ' exit 1;; \\' >> ${DAMAKEFILE}
287 COMMAND @echo " fi" >> ${DAMAKEFILE}
288 COMMAND @echo ' @cp -p ${DAMODULE}${SUBDAMODULE}${DANAME}da.exe $$(INSTALL_PATH)' >> ${DAMAKEFILE}
291 add_custom_target(DATAR_${DAEXE}_)
293 TARGET DATAR_${DAEXE}_
294 COMMAND @echo "***** Making archive ${DATAR} *****"
295 COMMAND rm -rf ${DATAR}
297 COMMAND mkdir junk && mkdir junk/${DAARC}
298 COMMAND cp -a ${ALICE_ROOT}/${DASRC} junk/${DAARC}
299 COMMAND cp -a ${DAMAKEFILE} junk/${DAARC}/Makefile
300 COMMAND cp -a ${DASPECFILE} junk/${DAARC}/${DAMODULE}${SUBDAMODULE}${DANAME}da.spec
301 COMMAND cd junk && tar czf ${DATAR} *
302 COMMAND cd .. && rm -rf junk
304 add_dependencies(DATAR_${DAEXE}_ DAMAKEFILE_${DAEXE}_ DASPECFILE_${DAEXE}_ ${DASRC})
306 add_custom_target(DASPECFILE_${DAEXE}_)
309 TARGET DASPECFILE_${DAEXE}_
310 COMMAND rm -f ${DASPECFILE}
311 COMMAND @echo "***** Making RPM spec-file ${DASPECFILE} *****"
312 COMMAND @echo '\# RPM specfile for $(DAMODULE)${SUBDAMODULE}$(DANAME) Detector Algorithm' >> ${DASPECFILE}
313 COMMAND @echo "Summary: ${ONLINEDETECTORNAME} Detector Algorithm" >> ${DASPECFILE}
314 COMMAND @echo "Name: ${DAARCNAME}" >> ${DASPECFILE}
315 COMMAND @echo "Version: ${DAVERSION}" >> ${DASPECFILE}
316 COMMAND @echo "Release: ${DAALIROOTRELEASE}" >> ${DASPECFILE}
317 COMMAND @echo "License: CERN Alice DAQ/Offine" >> ${DASPECFILE}
318 COMMAND @echo "Source: %{name}-%{version}.src.tar.gz" >> ${DASPECFILE}
319 COMMAND @echo "Group: Applications/Alice" >> ${DASPECFILE}
320 COMMAND @echo "Prefix: /opt/%{name}" >> ${DASPECFILE}
321 COMMAND @echo "BuildRoot: %{_tmppath}/%{name}-root" >> ${DASPECFILE}
322 COMMAND @echo "" >> ${DASPECFILE}
323 COMMAND @echo '\# automatic dependencies' >> ${DASPECFILE}
324 COMMAND @echo "AutoReqProv: yes" >> ${DASPECFILE}
325 COMMAND @echo "" >> ${DASPECFILE}
326 COMMAND @echo '\# list here required RPM packages for compilation' >> ${DASPECFILE}
327 COMMAND @echo "BuildRequires: date" >> ${DASPECFILE}
328 COMMAND @echo "" >> ${DASPECFILE}
329 COMMAND @echo '\# list here required RPM packages for runtime' >> ${DASPECFILE}
330 COMMAND @echo "Requires: date" >> ${DASPECFILE}
331 COMMAND @echo "" >> ${DASPECFILE}
332 COMMAND @echo '\# You can specify other dependencies in the description tag below.' >> ${DASPECFILE}
333 COMMAND @echo "" >> ${DASPECFILE}
334 COMMAND @echo '\# description of the package' >> ${DASPECFILE}
335 COMMAND @echo "%description" >> ${DASPECFILE}
336 COMMAND @echo "This is the ${ONLINEDETECTORNAME} ${DANAME} DA for online calibration." >> ${DASPECFILE}
337 COMMAND @echo "It uses data from ${DAMODULE} detectors at run time." >> ${DASPECFILE}
338 COMMAND @echo "Build requires: daqDAlib, date, AliRoot ${DAALIROOTRELEASE},ROOT ${DAROOTRELEASE}." >> ${DASPECFILE}
339 COMMAND @echo "Runtime requires: date." >> ${DASPECFILE}
340 COMMAND @echo "\"Contact: ${DACONTACT}\"" >> ${DASPECFILE}
341 COMMAND @echo "\"Link: ${DALINKPAGE}\"" >> ${DASPECFILE}
342 COMMAND @echo "\"Reference Run: ${DAREFRUN}\"" >> ${DASPECFILE}
343 COMMAND @echo "\"Run type: ${DARUNTYPE}\"" >> ${DASPECFILE}
344 COMMAND @echo "\"DA type: ${DATYPE}\"" >> ${DASPECFILE}
345 COMMAND @echo "\"Number of events needed: ${DANUMBEROFEVENTS}\"" >> ${DASPECFILE}
346 COMMAND @echo "\"Input files: ${DAINPUTFILES}\"" >> ${DASPECFILE}
347 COMMAND @echo "\"Output files: ${DAOUTPUTFILES}\"" >> ${DASPECFILE}
348 COMMAND @echo "\"Trigger types used: ${DATRIGGERTYPE}\"" >> ${DASPECFILE}
349 COMMAND @echo "" >> ${DASPECFILE}
350 COMMAND @echo '\#*****************************************************************' >> ${DASPECFILE}
351 COMMAND @echo '\# Do not modify following scripts' >> ${DASPECFILE}
352 COMMAND @echo '\#*****************************************************************' >> ${DASPECFILE}
353 COMMAND @echo "" >> ${DASPECFILE}
354 COMMAND @echo "%define debug_package %{nil}" >> ${DASPECFILE}
355 COMMAND @echo "%define __os_install_post %{nil}" >> ${DASPECFILE}
356 COMMAND @echo "" >> ${DASPECFILE}
357 COMMAND @echo '\# here is defined the installation root directory' >> ${DASPECFILE}
358 COMMAND @echo "%define pkgname %{name}-%{version}" >> ${DASPECFILE}
359 COMMAND @echo "%define destdir %{prefix}" >> ${DASPECFILE}
360 COMMAND @echo "" >> ${DASPECFILE}
361 COMMAND @echo '\# pre-compilation script: extract from tarball' >> ${DASPECFILE}
362 COMMAND @echo "%prep" >> ${DASPECFILE}
363 COMMAND @echo '\# extract archive' >> ${DASPECFILE}
364 COMMAND @echo "%setup -n %{pkgname}" >> ${DASPECFILE}
365 COMMAND @echo "" >> ${DASPECFILE}
366 COMMAND @echo '\# compile' >> ${DASPECFILE}
367 COMMAND @echo "%build" >> ${DASPECFILE}
368 COMMAND @echo "export DATE_SITE=" >> ${DASPECFILE}
369 COMMAND @echo ". /date/setup.sh" >> ${DASPECFILE}
370 COMMAND @echo "gmake" >> ${DASPECFILE}
371 COMMAND @echo "" >> ${DASPECFILE}
372 COMMAND @echo '\# install runtime files' >> ${DASPECFILE}
373 COMMAND @echo "%install" >> ${DASPECFILE}
374 COMMAND @echo '\#remove install dir if existing' >> ${DASPECFILE}
375 COMMAND echo '[ -d ''$$''RPM_BUILD_ROOT ] && rm -rf ''$$''RPM_BUILD_ROOT' >> ${DASPECFILE}
376 COMMAND @echo '\#make install in install root directory' >> ${DASPECFILE}
377 COMMAND @echo 'mkdir -p ''$$''RPM_BUILD_ROOT/%{prefix}' >> ${DASPECFILE}
378 COMMAND @echo 'make install INSTALL_PATH=''$$''RPM_BUILD_ROOT/%{prefix}' >> ${DASPECFILE}
379 COMMAND @echo "" >> ${DASPECFILE}
380 COMMAND @echo '\# clean RPM build files' >> ${DASPECFILE}
381 COMMAND @echo "%clean" >> ${DASPECFILE}
382 COMMAND @echo '\# remove installed files' >> ${DASPECFILE}
383 COMMAND @echo 'rm -rf ''$$''RPM_BUILD_ROOT' >> ${DASPECFILE}
384 COMMAND @echo '\# remove source files' >> ${DASPECFILE}
385 COMMAND @echo 'rm -rf ''$$''RPM_BUILD_DIR/%{pkgname}' >> ${DASPECFILE}
386 COMMAND @echo "" >> ${DASPECFILE}
387 COMMAND @echo '\# pre-install script' >> ${DASPECFILE}
388 COMMAND @echo "%pre" >> ${DASPECFILE}
389 COMMAND @echo "" >> ${DASPECFILE}
390 COMMAND @echo '\# list of files to be installed' >> ${DASPECFILE}
391 COMMAND @echo "%files" >> ${DASPECFILE}
392 COMMAND @echo '%defattr (-,root,root)' >> ${DASPECFILE}
393 COMMAND @echo "%{destdir}" >> ${DASPECFILE}
394 COMMAND @echo "" >> ${DASPECFILE}
395 COMMAND @echo '\# post-install script' >> ${DASPECFILE}
396 COMMAND @echo '\# launched after rpm installed' >> ${DASPECFILE}
397 COMMAND @echo "%post" >> ${DASPECFILE}
398 COMMAND @echo "" >> ${DASPECFILE}
399 COMMAND @echo '\# post-uninstall script' >> ${DASPECFILE}
400 COMMAND @echo '\# launched after rpm removed' >> ${DASPECFILE}
401 COMMAND @echo "%postun" >> ${DASPECFILE}
404 add_custom_target( ${DATARGETNAME}-rpm
406 add_dependencies(${DATARGETNAME}-rpm DATAR_${DAEXE}_ DASPECFILE_${DAEXE}_ ${LIBPATH} ${DALIB}.a DADEP_${DAEXE}_ ${EXTRAROOTLIB}
410 TARGET ${DATARGETNAME}-rpm
411 COMMAND echo "***** Making RPMS for ${DAMODULE}${SUBDAMODULE}${DANAME} detector-algorithm *****"
413 COMMAND mkdir -p junk/SOURCES junk/SPECS junk/BUILD junk/RPMS junk/SRPMS
414 COMMAND cp ${DATAR} junk/SOURCES
415 COMMAND rpmbuild --quiet --define "_topdir ${ALICE_ROOT}/junk/" --nodeps -bb ${DASPECFILE}
416 COMMAND find junk/ -name "${DAARC}-*.rpm" -exec cp -p {} . \;
418 COMMAND echo "***** RPMS created and put ${ALICE_ROOT} folder *****"
419 #WORKING_DIRECTORY ${ALICE_ROOT}
423 add_custom_target(${DAEXE}
424 COMMAND echo "***** Making executable ${DAEXE} *****"
425 WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
427 target_link_libraries(${DAEXE} "-L" "lib${DALIB}.a" ${DAOBJ} ${EXTRAROOTLIB} "${ROOTALIBDIR}/libRoot.a" "${ROOTALIBDIR}/libfreetype.a" "${ROOTALIBDIR}/libpcre.a" ${SYSLIBS} ${DAQDALIB} ${MONITORLIBS} ${AMOREDALIBS})
429 add_dependencies(${DAEXE} ${DASRC} DAOBJ_${DAEXE}_ ${BINPATH} ${LIBPATH} ${DALIB}.a ${DAQDALIB} ${EXTRAROOTLIB} )
434 add_custom_target(DAOBJ_${DAEXE}_
437 TARGET DAOBJ_${DAEXE}_
438 COMMAND echo "***** Compiling ${DASRC} *****"
439 COMMAND g++ -c -DLinux -DDATE_SYS=Linux -Dlong32="int" -Dlong64="long long" -DdatePointer="long" -I/date/rorc -I/date/runControl -I/date/readList -I/date/eventBuilder -I/date/banksManager -I/date/bufferManager -I/date/db -I/date/commonDefs -I/date/monitoring -I/date/infoLogger -I/date/logbook -I${DAQDADIR} -I${ALICE_ROOT}/RAW -I${CMAKE_BINARY_DIR}/include -I$ENV{ROOTSYS}/include ${mod} ${date_head} ${ALICE_ROOT}/${DASRC} -o ${DAOBJ}
440 WORKING_DIRECTORY ${ALICE_ROOT}
442 add_dependencies(DAOBJ_${DAEXE}_ DADEP_${DAEXE}_ )
446 add_custom_target(DADEP_${DAEXE}_)
448 TARGET DADEP_${DAEXE}_
449 COMMAND echo "***** Making detector-algorithm dependencies ${DADEP} *****"
450 COMMAND g++ -MM -DLinux -DDATE_SYS=Linux -Dlong32="int" -Dlong64="long long" -DdatePointer="long" -I/date/rorc -I/date/runControl -I/date/readList -I/date/eventBuilder -I/date/banksManager -I/date/bufferManager -I/date/db -I/date/commonDefs -I/date/monitoring -I/date/infoLogger -I/date/logbook -I${DAQDADIR} -I${ALICE_ROOT}/RAW -I${CMAKE_BINARY_DIR}/include -I$ENV{ROOTSYS}/include ${mod} ${date_head} ${ALICE_ROOT}/${DASRC} > ${DADEP}
451 WORKING_DIRECTORY ${ALICE_ROOT}
460 add_custom_command(TARGET clean
461 COMMAND rm -rf junk*.exe
462 WORKING_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})