New detector AD
[u/mrichter/AliRoot.git] / CMakeLists.txt
1 # -*- mode: cmake -*-
2
3 # Top level CMakeList.txt file for the AliRoot Build System
4 #
5 # Author: Johny Jose (johny.jose@cern.ch)
6 #         Port of previous Makefile build to cmake
7
8
9 cmake_minimum_required(VERSION 2.8.4 FATAL_ERROR)
10
11 #--------------------------------------------------------------------------------#
12 # Set Basic CMake Configuration                                                  #
13 #--------------------------------------------------------------------------------#
14
15 project(AliRoot CXX C Fortran)
16
17 # Environment variables
18 set(ALICE $ENV{ALICE})
19 if(NOT ALICE)
20   message(WARNING "Environment variable ALICE is not set")
21 endif(NOT ALICE)
22
23 set(ALICE_ROOT $ENV{ALICE_ROOT})
24 if(NOT ALICE_ROOT)
25   message(FATAL_ERROR "Please set ALICE_ROOT to the AliRoot source directory")
26 endif(NOT ALICE_ROOT)
27
28 set(ALICE_INSTALL $ENV{ALICE_INSTALL})
29 # Set AliRoot Installation directory 
30 if(NOT ALICE_INSTALL)
31   message(STATUS "AliRoot files will be installed in ${ALICE_ROOT}. You can specify a different location by setting ALICE_INSTALL environment variable")
32   set(ALICE_INSTALL ${ALICE_ROOT})
33 else()
34   message(STATUS "AliRoot files will be installed in ${ALICE_INSTALL}")
35 endif(NOT ALICE_INSTALL)
36 if(${ALICE_INSTALL} STREQUAL ${CMAKE_BINARY_DIR})
37   message(FATAL_ERROR "Install dir should be different from build dir")
38 endif()
39 set(CMAKE_INSTALL_PREFIX ${ALICE_INSTALL})
40
41 # Environment for SHUTTLE
42 set(DIMDIR $ENV{DIMDIR})
43 set(ODIR $ENV{ODIR})
44
45 get_filename_component(PROJECT_SOURCE_DIR "${PROJECT_SOURCE_DIR}" REALPATH)
46 set(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
47 set(CPACK_COMPONENTS_ALL MDC)
48
49 include(ALICE_CMake)
50
51 #--------------------------------------------------------------------------------#
52 # Find Packages                                                                  #
53 #--------------------------------------------------------------------------------#
54
55 # Subversion
56 # ------------------------------
57
58 find_package(Subversion REQUIRED)
59
60 # ROOT
61 # ------------------------------
62
63 find_package(ROOT REQUIRED)
64
65 # IRST Rule Checker 
66 # ------------------------------
67
68 find_package(RuleChecker)
69
70 # DATE
71 # ------------------------------ 
72
73 find_package(DATE)
74
75 # GEANT3
76 # ------------------------------
77
78 find_package(GEANT3)
79
80 # AMORE
81 # ------------------------------
82
83 find_package(AMORE)
84
85 # AliRoot CPack configuration                                                    
86 #-------------------------------
87
88 find_package(CPack)
89
90 # ZeroMQ
91 # ------------------------------
92 find_package(ZeroMQ)
93
94 #--------------------------------------------------------------------------------#
95 # Environment/Compiler Configuration                                             #
96 #--------------------------------------------------------------------------------#
97
98 ALICE_CheckOutOfSourceBuild()
99 ALICE_RootConfig(CMAKE_CXX_COMPILER --cxx)
100 ALICE_RootConfig(CMAKE_C_COMPILER --cc)
101 ALICE_RootConfig(CMAKE_Fortran_COMPILER --f77)
102 ALICE_ConfigurePlatform()
103 ALICE_ConfigureCompiler()
104
105
106 #--------------------------------------------------------------------------------#
107 # AliRoot Path Settings                                                          #
108 #--------------------------------------------------------------------------------#
109
110 ALICE_DevFlagsOutput()
111 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin/tgt_${ALICE_TARGET}")
112 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib/tgt_${ALICE_TARGET}")
113 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib/tgt_${ALICE_TARGET}")
114 set(CMAKE_INCLUDE_EXPORT_DIRECTORY "${PROJECT_BINARY_DIR}/include")
115 file(MAKE_DIRECTORY ${CMAKE_INCLUDE_EXPORT_DIRECTORY})
116 set(EXPORTDIRS "${ALICE_INSTALL}/include")
117 set(BINLIBDIRS "-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
118
119
120 #--------------------------------------------------------------------------------#
121 # AliRoot Modules                                                                #
122 #--------------------------------------------------------------------------------#
123
124 # Exclude Module from all target
125 # ------------------------------
126
127 #set(EXCLUDEMODULES THydjet SHUTTLE)
128
129
130 # Standard Modules
131 # ------------------------------
132 set(ALIROOTMODULES STEER PHOS TRD TPC ZDC MUON PMD FMD TOF ITS AD ACORDE HMPID T0 BCM STRUCT VZERO THijing THbtp EMCAL THerwig TEPEMGEN FASTSIM TPHIC RAW MONITOR ANALYSIS JETAN HLT STAT TTherminator CORRFW DPMJET TDPMjet STARLIGHT PWGPP PWG PWGCF PWGGA PWGHF PWGDQ PWGJE PWGLF PWGUD TRIGGER PYTHIA8 TAmpt OADB MFT TEvtGen)
133
134 if(THydjet)
135   list(APPEND ALIROOTMODULES THydjet)
136 endif(THydjet)
137
138 if(SHUTTLE)
139   list(APPEND ALIROOTMODULES SHUTTLE)
140 endif(SHUTTLE)
141
142 # Additional Modules
143 # ------------------------------
144 list(APPEND ALIROOTMODULES TUHKMgen EPOS)
145
146 # EVE
147 # ------------------------------
148 ALICE_RootConfig(EVE --has-opengl)
149 if(NOT EVE STREQUAL "no")
150   list(APPEND ALIROOTMODULES EVE)
151 endif(NOT EVE STREQUAL "no")
152
153 # CERN Modules
154 # ------------------------------
155 set(CERNMODULES LHAPDF HIJING MICROCERN HERWIG)
156
157 # Check for Pythia 6
158 if(EXISTS ${ROOTINCDIR}/TPythia6.h)
159   set(PYTHIA6 TRUE)
160   list(APPEND CERNMODULES PYTHIA6 EVGEN)
161 elseif(NOT NOPYTHIA)
162   message(FATAL_ERROR "ROOT must have Pythia6 enabled !")
163 endif(EXISTS ${ROOTINCDIR}/TPythia6.h)
164
165 # Set Final list of modules 
166 set(MODULES ${ALIROOTMODULES} ${CERNMODULES} ALIROOT)
167
168 # Set Module directories
169 set(MODDIRS ${MODULES})
170
171 # Libraries for Linking
172 # ------------------------------
173 set(ALILIBS MUON TPC PMD TRD FMD TOF ITS PHOS AD ACORDE HMPID VZERO ZDC STRUCT T0 EVGEN STEER TRIGGER MFT)
174 set(LIBS ${ROOTCLIBS} ${ROOTPLIBS} ${SYSLIBS})
175
176 # Configure ARVerion.h
177 # ------------------------------
178 #If the sources were taken from Git
179 if(EXISTS ${PROJECT_SOURCE_DIR}/.git/)
180  include(GetGitRevisionDescription)
181  
182  find_package(Git)
183  
184  if(GIT_FOUND)
185   get_git_head_revision(GIT_REFSPEC GIT_SHA1)
186   message(STATUS "Aliroot branch - ${GIT_REFSPEC} Revision - ${GIT_SHA1} ")
187
188   STRING(REGEX REPLACE "^(.+/)(.+)/(.*)$" "\\2" BRANCH_TYPE "${GIT_REFSPEC}" )
189   
190   if(BRANCH_TYPE STREQUAL "heads")
191    set(ALIROOT_REVISION "ThisIsaBranchNoRevisionProvided")
192   else()
193    set(ALIROOT_REVISION ${GIT_SHA1})
194   endif()
195
196   STRING(REGEX REPLACE "^(.+/)(.+/)(.*)$" "\\3" SHORT_BRANCH "${GIT_REFSPEC}" )
197
198   set(ALIROOT_BRANCH ${SHORT_BRANCH})
199
200  else()
201   message("Git not installed. I can't tell you which revision you are using!")
202   endif(GIT_FOUND)
203 else()
204  message("AliRoot sources not downloaded from a Version Control System. I can't tell which revision you are using!")
205 endif(EXISTS ${PROJECT_SOURCE_DIR}/.git/)
206
207 configure_file(${PROJECT_SOURCE_DIR}/cmake/ARVersion.h.tmp ${CMAKE_INCLUDE_EXPORT_DIRECTORY}/ARVersion.h @ONLY)
208
209 string (REPLACE "-" "." ALIROOT_BRANCH_SPEC "${ALIROOT_BRANCH}")
210
211 #--------------------------------------------------------------------------------#
212 # Build Modules                                                                  #
213 #--------------------------------------------------------------------------------#
214
215 # Module Variables
216 # ------------------------------
217 set(ALLLIBS)
218 set(ALLEXECS)
219 set(INCLUDEFILES)
220 set(BINLIBS)
221 set(EXPORTFILES)
222
223 # Top Level Build Targets
224 # ------------------------------
225
226 add_custom_target(alilibs-static)
227 add_custom_target(include-headers ALL)
228 add_custom_target(DA-all)
229 add_custom_target(check-all) 
230 add_custom_target(check-hxml)
231 add_custom_target(smell-all) 
232 add_custom_target(htmldoc) 
233 add_custom_target(par-all)
234 add_custom_target(test-par-all)
235
236 #NY file(GLOB CFILES_LIST ${CMAKE_SOURCE_DIR}/macros/*.C)
237
238 add_custom_command(TARGET htmldoc
239                    PRE_BUILD
240                    COMMAND mkdir -p html
241                    COMMAND rm -rf html/roothtml
242                    COMMAND rm -f html/picts
243                    COMMAND cd html && aliroot -q -b mkhtml.C\\\(0,1\\\)
244                    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
245
246 # Include Vc, which provides the static libVc and the relevant CMake macros
247 include(Vc/Vc.cmake)
248 add_subdirectory(Vc)
249
250 # Add Modules   
251 # ------------------------------
252 foreach(MODULE ${MODDIRS})
253   set(${MODULE}ALIBS)
254 #RS  configure_file(${PROJECT_SOURCE_DIR}/cmake/Module.tmp ${PROJECT_SOURCE_DIR}/${MODULE}/CMakeLists.txt @ONLY)
255   add_custom_target(${MODULE}-all ALL)
256   add_custom_target(${MODULE}-par-all)
257   add_custom_target(test-${MODULE}-par-all)
258   add_custom_target(${MODULE}-all-static)
259   add_dependencies(alilibs-static "${MODULE}-static")
260   add_subdirectory(${MODULE})
261   
262 #NY  set(dir "${CMAKE_SOURCE_DIR}/${MODULE}")
263 #NY  if (EXISTS "${dir}")
264 #NY      file(GLOB CFILES_MOD ${dir}/*.C)
265 #NY      list(LENGTH CFILES_MOD len)
266 #NY      if (${len} GREATER 0)
267 #NY        list(APPEND CFILES_LIST "${CFILES_MOD}")
268 #NY      endif (${len} GREATER 0)
269 #NY  endif(EXISTS "${dir}")
270 endforeach(MODULE)
271
272 #NY foreach(cfile ${CFILES_LIST})
273 #NY     add_custom_command(TARGET htmldoc
274 #NY                    PRE_BUILD
275 #NY                    COMMAND cd html && 
276 #NY                            aliroot -b -q \"mkhtml.C(\"${cfile}\")\" > /dev/null
277 #NY                    WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
278 #NY endforeach(cfile)
279
280 if(DATE_FOUND)
281   include (CMakeDA)
282 endif(DATE_FOUND)
283
284 if(RULECHECKER_FOUND)
285     add_custom_target(factfile DEPENDS ${FACTFILE})
286     add_custom_command( OUTPUT ${FACTFILE}
287                         COMMAND ${CMAKE_COMMAND} -E echo "Re-generating factfile"
288                         COMMAND ${JAVA_RUNTIME}  -Xmx1024M -jar ${FACTEXTRACTOR_JAR} ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}                    
289                         DEPENDS check-hxml ${CMAKE_BINARY_DIR}/check-hxml-touchfile ${_factfile_deps} 
290                         WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
291 endif(RULECHECKER_FOUND)
292
293 #--------------------------------------------------------------------------------#
294 # Additional Targets                                                             #
295 #--------------------------------------------------------------------------------#
296
297 # AliMdc RPM
298 # ------------------------------
299
300 execute_process(
301 COMMAND root-config --libdir 
302 OUTPUT_VARIABLE ROOTALIBDIR)
303 string(REPLACE "\n" "" ROOTALIBDIR ${ROOTALIBDIR}) 
304
305 execute_process(
306 COMMAND root-config --arch 
307 OUTPUT_VARIABLE ARCHITECTURE)
308
309
310 set(AEXT a)
311 set(LIBPATH ${CMAKE_BINARY_DIR}/lib/tgt_${ALICE_TARGET})
312 set(BINPATH ${CMAKE_BINARY_DIR}/bin/tgt_${ALICE_TARGET})
313 set(EXPORTDIR ${ALICE_ROOT}/include)
314 set(BINLIBDIRS -L${ALICE_ROOT}/${LIBPATH})
315 set(RAWDIRO ${CMAKE_BINARY_DIR}/RAW)
316 set(ALIMDCSPECFILE ${RAWDIRO}/alimdc.spec)
317 set(RAWDatabaseALIB ${LIBPATH}/libRAWDatabase.${AEXT})
318 set(ESDALIB ${LIBPATH}/libESD.${AEXT})
319 set(STEERBaseALIB ${LIBPATH}/libSTEERBase.${AEXT})
320 set(MDCALIB ${LIBPATH}/libMDC.${AEXT})
321 set(MODDIRO RAW/tgt_${ALICE_TARGET})
322
323
324 if( ${ARCHITECTURE} MATCHES "linuxx8664gcc" )
325 set(ALIMDCARCHDIR x86_64)
326 elseif( ${ARCHITECTURE} MATCHES "linux" )
327 set(ALIMDCARCHDIR i386)
328 elseif( ${ARCHITECTURE} MATCHES "linuxia64gcc" )
329 set(ALIMDCARCHDIR ia64)
330 elseif(NOT DEFINED ${ARCHITECTURE})
331 message("alimdc-rpm: Unknown architecture" )
332 else( ${ARCHITECTURE} MATCHES "linuxx8664gcc" )
333 message("alimdc-rpm: Unknown architecture" )
334 endif( ${ARCHITECTURE} MATCHES "linuxx8664gcc" )
335
336
337 add_custom_target( alimdc-rpm
338 DEPENDS alimdc-static alimdc-specfile
339 )
340
341 add_custom_command(
342 TARGET alimdc-rpm
343 POST_BUILD 
344 COMMAND rm -rf ${ALICE_ROOT}/alimdc-root
345 COMMAND mkdir -p ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
346 COMMAND mkdir -p ${ALICE_ROOT}/alimdc-root/opt/alimdc/include
347 COMMAND cp ${ALICE_ROOT}/RAW/mdc.h ${ALICE_ROOT}/alimdc-root/opt/alimdc/include
348 COMMAND cp ${LIBPATH}/libAliMDC.a ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
349 COMMAND cp ${ROOTALIBDIR}/libRoot.a ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
350 COMMAND cp ${ROOTALIBDIR}/liblzma.a ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
351 COMMAND cp ${ROOTALIBDIR}/libpcre.a ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
352 COMMAND cp ${ROOTALIBDIR}/libfreetype.a ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
353 COMMAND cp ${ROOTALIBDIR}/libpcre.a ${ALICE_ROOT}/alimdc-root/opt/alimdc/lib
354 COMMAND rm -rf ${ALICE_ROOT}/RPMS
355 COMMAND mkdir -p ${ALICE_ROOT}/RPMS/${ALIMDCARCHDIR}/
356 COMMAND rpmbuild --verbose --define "_topdir ${ALICE_ROOT}" --define "_tmppath ${ALICE_ROOT}" -bb ${ALIMDCSPECFILE} 
357 COMMAND cp -p ${ALICE_ROOT}/RPMS/${ALIMDCARCHDIR}/alimdc-*.rpm .
358 COMMAND rm -rf ${ALICE_ROOT}/alimdc-root
359 COMMAND rm -rf ${ALICE_ROOT}/RPMS
360 COMMAND echo "***** alimdc RPM created and put in ${CMAKE_BINARY_DIR} folder *****"
361 )
362
363 add_custom_command(
364 TARGET ${RAWDIRO}
365 COMMAND mkdir-p ${RAWDIRO}
366 )
367
368
369 add_custom_target( alimdc-specfile
370 DEPENDS ${RAWDIRO}
371 )
372
373 add_custom_command( 
374 TARGET alimdc-specfile
375 POST_BUILD
376 COMMAND rm -rf ${ALIMDCSPECFILE}
377 COMMAND @echo "***** Making alimdc RPM spec-file ${ALIMDCSPECFILE} *****"
378 COMMAND @echo '\# RPM specfile for alimdc static libs' >> ${ALIMDCSPECFILE} 
379 COMMAND @echo '\# Package contains both ROOT and AliRoot' >> ${ALIMDCSPECFILE}
380 COMMAND @echo '\# static libs needed by mStreamRecorder' >> ${ALIMDCSPECFILE}
381 COMMAND @echo '\# in order to ROOT-ify the incoming raw' >> ${ALIMDCSPECFILE}
382 COMMAND @echo '\# data' >> ${ALIMDCSPECFILE}
383 COMMAND @echo '\# Example how-to build alimdc RPM:' >> ${ALIMDCSPECFILE}
384 COMMAND @echo '\# cd ${ALICE_ROOT}' >> ${ALIMDCSPECFILE}
385 COMMAND @echo '\# make alimdc-rpm' >> ${ALIMDCSPECFILE}
386 COMMAND @echo "" >> ${ALIMDCSPECFILE}
387 COMMAND @echo "Summary: AliMDC static libraries" >> ${ALIMDCSPECFILE}
388 COMMAND @echo "Name: alimdc" >> ${ALIMDCSPECFILE}
389 COMMAND @echo "Version:  ${ALIROOT_BRANCH_SPEC}" >> ${ALIMDCSPECFILE}
390 COMMAND @echo "Release: ${ALIROOT_REVISION}" >> ${ALIMDCSPECFILE}
391 COMMAND @echo '\# Copyright: CERN Alice Off-line' >> ${ALIMDCSPECFILE}
392 COMMAND @echo "License: CERN Alice Off-line" >> ${ALIMDCSPECFILE}
393 COMMAND @echo "Vendor: ALICE Core Off-line Group" >> ${ALIMDCSPECFILE}
394 COMMAND @echo "URL: http://aliceinfo.cern.ch" >> ${ALIMDCSPECFILE}
395 COMMAND @echo "Group: Applications/Alice" >> ${ALIMDCSPECFILE}
396 COMMAND @echo "Prefix: /opt/%{name}" >> ${ALIMDCSPECFILE}
397 COMMAND @echo "BuildRoot: %{_tmppath}/%{name}-root" >> ${ALIMDCSPECFILE}
398 COMMAND @echo "" >> ${ALIMDCSPECFILE}
399 COMMAND @echo '\# automatic dependencies' >> ${ALIMDCSPECFILE}
400 COMMAND @echo "AutoReqProv: yes" >> ${ALIMDCSPECFILE}
401 COMMAND @echo "" >> ${ALIMDCSPECFILE}
402 COMMAND @echo '\# list here required RPM packages for runtime' >> ${ALIMDCSPECFILE}
403 COMMAND @echo "Requires: glibc" >> ${ALIMDCSPECFILE}
404 COMMAND @echo "" >> ${ALIMDCSPECFILE}
405 COMMAND @echo "Provides: alimdc" >> ${ALIMDCSPECFILE}
406 COMMAND @echo "" >> ${ALIMDCSPECFILE}
407 COMMAND @echo '\# description of the package' >> ${ALIMDCSPECFILE}
408 COMMAND @echo "%description" >> ${ALIMDCSPECFILE}
409 COMMAND @echo "Package contains both ROOT and AliRoot" >> ${ALIMDCSPECFILE}
410 COMMAND @echo "static libs needed by mStreamRecorder" >> ${ALIMDCSPECFILE}
411 COMMAND @echo "in order to ROOT-ify the incoming raw" >> ${ALIMDCSPECFILE}
412 COMMAND @echo "data. The package version correspond to" >> ${ALIMDCSPECFILE}
413 COMMAND @echo "the AliRoot one." >> ${ALIMDCSPECFILE}
414 COMMAND @echo "" >> ${ALIMDCSPECFILE}
415 COMMAND @echo '\# list of files to be installed' >> ${ALIMDCSPECFILE}
416 COMMAND @echo "%files" >> ${ALIMDCSPECFILE}
417 COMMAND @echo "%defattr (-,root,root)" >> ${ALIMDCSPECFILE}
418 COMMAND @echo "%{prefix}/lib/libAliMDC.a" >> ${ALIMDCSPECFILE}
419 COMMAND @echo "%{prefix}/lib/libRoot.a" >> ${ALIMDCSPECFILE}
420 COMMAND @echo "%{prefix}/lib/libpcre.a" >> ${ALIMDCSPECFILE}
421 COMMAND @echo "%{prefix}/lib/liblzma.a" >> ${ALIMDCSPECFILE}
422 COMMAND @echo "%{prefix}/lib/libfreetype.a" >> ${ALIMDCSPECFILE}
423 COMMAND @echo "%{prefix}/include/mdc.h" >> ${ALIMDCSPECFILE}
424 )
425
426
427 add_custom_target( alimdc-static
428 DEPENDS ${LIBPATH} ${BINPATH} RAW-all-static STEER-all-static )
429
430 add_custom_command( 
431 TARGET alimdc-static
432 POST_BUILD
433 COMMAND ar r ${LIBPATH}/alimdccxxo.a ${CMAKE_BINARY_DIR}/RAW/CMakeFiles/alimdc.dir/alimdc_main.cxx.o
434 COMMAND rm -rf ${LIBPATH}/libAliMDC.a
435 COMMAND ar x ${RAWDatabaseALIB}
436 COMMAND ar x ${MDCALIB}
437 COMMAND ar x ${ESDALIB}
438 COMMAND ar x ${STEERBaseALIB}
439 COMMAND ar r ${LIBPATH}/libAliMDC.a *.o
440 COMMAND ar t ${RAWDatabaseALIB} | xargs rm 
441 COMMAND ar t ${MDCALIB} | xargs rm 
442 COMMAND ar t ${ESDALIB} | xargs rm 
443 COMMAND ar t ${STEERBaseALIB} | xargs rm 
444 COMMAND ${CMAKE_CXX_COMPILER} ${LDFLAGS} -o ${BINPATH}/alimdca ${LIBPATH}/alimdccxxo.a ${LIBPATH}/libAliMDC.a ${ROOTALIBDIR}/libRoot.a ${ROOTALIBDIR}/libfreetype.a ${ROOTALIBDIR}/libpcre.a ${ROOTALIBDIR}/liblzma.a -pthread -ldl -lz
445 COMMAND @echo "Target alimdc-static made"
446 )
447
448 add_custom_command(
449 TARGET ${LIBPATH}
450 COMMAND mkdir -p ${LIBPATH}
451 )
452
453
454 #include (MakefileDA) 
455 include (InstallRequiredSystemLibraries)
456 include (CPack)
457
458 # Install data
459 # ------------------------------
460 install ( DIRECTORY data 
461           DESTINATION . )
462 install ( DIRECTORY OCDB 
463           DESTINATION . 
464           PATTERN ".svn" EXCLUDE)
465 install ( DIRECTORY QAref 
466           DESTINATION . 
467           PATTERN ".svn" EXCLUDE)
468 install ( DIRECTORY GRP 
469           DESTINATION . 
470           PATTERN ".svn" EXCLUDE)
471
472 #
473 # EOF
474 #
475