Compilation on linux (CMake)
[u/mrichter/AliRoot.git] / cmake / modules / ALICEMacros.cmake
1 # -*- mode: cmake -*-
2 #_______________________________________________________________________________
3 Macro(CHANGE_FILE_EXTENSION OLD_EXT NEW_EXT RESULT LIST)
4
5 # This is probably an obsolete Macro
6
7   If (${OLD_EXT} MATCHES "^[*][.]+.*$")
8     String(REGEX REPLACE "^[*]+([.].*)$" "\\1" OLD_EXT1 ${OLD_EXT}) 
9   Endif (${OLD_EXT} MATCHES "^[*][.]+.*$")
10
11   If (${NEW_EXT} MATCHES "^[*][.]+.*$")
12     String(REGEX REPLACE "^[*]+([.].*)" "\\1" NEW_EXT1 ${NEW_EXT}) 
13   Endif (${NEW_EXT} MATCHES "^[*][.]+.*$")
14
15   Set(FLIST)
16   Foreach (_current_FILE ${LIST})
17
18     String(REGEX REPLACE "^(.*)${OLD_EXT1}$" "\\1${NEW_EXT1}" res ${_current_FILE})
19     Set (FLIST ${FLIST} ${res})
20
21   Endforeach (_current_FILE ${LIST})
22   Set(${RESULT} ${FLIST})
23
24 Endmacro (CHANGE_FILE_EXTENSION)
25
26 #_______________________________________________________________________________
27 Macro (CHECK_OUT_OF_SOURCE_BUILD)
28
29 # Checks that the binary is built outside the source
30
31    String(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
32    If(insource)
33       File(REMOVE_RECURSE ${CMAKE_SOURCE_DIR}/Testing)
34       File(REMOVE ${CMAKE_SOURCE_DIR}/DartConfiguration.tcl)
35       Message(FATAL_ERROR "ALIROOT should be installed as an out of source build, to keep the source directory clean. Please create a extra build directory and run the command 'cmake path_to_source_dir' in this newly created directory. You have also to delete the directory CMakeFiles and the file CMakeCache.txt in the source directory. Otherwise cmake will complain even if you run it from an out-of-source directory.") 
36    Endif(insource)
37
38 EndMacro (CHECK_OUT_OF_SOURCE_BUILD)
39
40 #_______________________________________________________________________________
41 Function (AddLibrary LIB SRCS DHDRS)
42
43 # Adds an AliRoot library as a target
44
45   Set(_path)
46   List(LENGTH SRCS _len)
47   If(_len GREATER 0)
48     List(GET SRCS 0 _file)
49     Get_filename_component(_path ${_file} PATH)
50 #    Message(STATUS Debug ${_file} ${_path})
51   Endif(_len GREATER 0)
52
53   Set(LDEF)
54   If(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIB}LinkDef.h)
55     Set(LDEF "${LIB}LinkDef.h")
56   Endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${LIB}LinkDef.h)
57
58   If(_path)
59     If(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_path}/${LIB}LinkDef.h)
60       Set(LDEF "${_path}/${LIB}LinkDef.h")
61     Endif(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_path}/${LIB}LinkDef.h)
62   Endif(_path)
63
64   Set(DICT)
65   If(LDEF)
66 # even with no cxx files, one may want to build an empty lib as a placeholder
67 # in AliRoot this is signalled by the existence of an (empty) ${LIB}LinkDef.h
68     Set(DICT "G__${LIB}.cxx")
69     Set(ASRCS ${SRCS} ${DICT})
70     Root_Generate_Dictionary("${DHDRS}" "${LDEF}" "${DICT}" "${INCLUDE_DIRECTORIES}")
71   Else(LDEF)
72     Message(STATUS "No ${LIB}LinkDef.h found... building lib with no ROOT dict")
73     Set(ASRCS ${SRCS})
74   Endif(LDEF)
75
76   Add_Library(${LIB} SHARED ${ASRCS})
77   Target_Link_Libraries(${LIB} ${ALIROOT_LIBRARIES})
78   Set_Target_Properties(${LIB} PROPERTIES ${ALIROOT_LIBRARY_PROPERTIES})
79   
80   Install(TARGETS ${LIB} DESTINATION ${ALIROOT_INSTALL_DIR}/lib
81     COMPONENT shared)
82
83   If(ALICE_STATIC_BUILD)
84     Add_Library(${LIB}_a STATIC ${ASRCS})
85     Install(TARGETS ${LIB}_a DESTINATION ${ALIROOT_INSTALL_DIR}/lib/static)
86   EndIf(ALICE_STATIC_BUILD)
87
88   If(ARGV3)
89     Install(FILES ${ARGV3} DESTINATION ${ALIROOT_INSTALL_DIR}/include)
90   Endif(ARGV3)
91
92   CheckViols(${LIB} "${SRCS}")
93
94 EndFunction (AddLibrary)
95
96 #_______________________________________________________________________________
97 Macro (SetModule)
98
99 String(REGEX REPLACE "${ALICE_ROOT}/?([^/]*)/?$" "\\1" ALIROOT_MODULE "${CMAKE_CURRENT_SOURCE_DIR}")
100 Add_Definitions(-D_MODULE_=\"${ALIROOT_MODULE}\")
101
102 EndMacro(SetModule)
103
104
105 #_______________________________________________________________________________
106 Function (AddExecutable BIN SRCS LIBS)
107
108 # Adds an AliRoot executable as a target
109
110   Add_Executable(${BIN} ${SRCS})
111   Target_Link_Libraries(${BIN} ${ROOT_LIBRARIES} ${LIBS})
112   Install(TARGETS ${BIN} DESTINATION ${ALIROOT_INSTALL_DIR}/bin)
113
114   If(ALICE_STATIC_BUILD)
115     Add_Executable(${BIN}_a ${SRCS})
116     Set(_ar_libs)
117     Foreach(_lib ${LIBS})
118       Set(_ar_libs ${_ar_libs} ${_lib}_a)
119     EndForeach(_lib ${LIBS})
120     Foreach(_lib ${LIBS})
121       Set(_ar_libs ${_ar_libs} ${_lib}_a)
122     EndForeach(_lib ${LIBS})
123     Target_Link_Libraries(${BIN}_a ${ROOT_LIBRARIES} ${_ar_libs})
124     Install(TARGETS ${BIN}_a DESTINATION ${ALIROOT_INSTALL_DIR}/bin)
125   EndIf(ALICE_STATIC_BUILD)
126
127   CheckViols(${BIN} "${SRCS}")
128
129 EndFunction (AddExecutable)
130
131 #_______________________________________________________________________________
132 Macro (SetupSystem)
133
134 # Set up all system dependencies of AliRoot
135
136 Message(STATUS "Setting up system dependent parameters for ${ALICE_TARGET}" )
137
138 # macosx64
139 If(ALICE_TARGET STREQUAL macosx64) 
140
141   Execute_process(
142     COMMAND sw_vers -productVersion
143     OUTPUT_VARIABLE MACOSX
144     OUTPUT_STRIP_TRAILING_WHITESPACE)
145
146   String(REGEX REPLACE "^(.*)[.](.*)[.](.*)$" "\\1" MACOSX_MAJOR "${MACOSX}")
147   String(REGEX REPLACE "^(.*)[.](.*)[.](.*)$" "\\2" MACOSX_MINOR "${MACOSX}")
148
149   Message(STATUS "Mac OS X ${MACOSX_MAJOR}.${MACOSX_MINOR}")
150
151   Find_Package(fink)
152   
153 #  Set(CMAKE_CXX_COMPILER g++)
154 #  Set(CMAKE_C_COMPILER gcc)
155 # I found no way to make this work...
156 #  Set(CMAKE_CXX_LINK_EXECUTABLE 
157 #    "MACOSX_DEPLOYMENT_TARGET=${MACOSX_MAJOR}.${MACOSX_MINOR} ${CMAKE_CXX_LINK_EXECUTABLE}")
158
159   Set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup -m64")
160
161   Set(CMAKE_Fortran_FLAGS "-fno-second-underscore -m64")
162
163   Set(CLIBDEFS "-DCERNLIB_LXIA64 -DCERNLIB_BLDLIB -DCERNLIB_CZ -DCERNLIB_PPC")
164
165   Set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -pipe -Wall -W -Wno-long-double -pipe -fbounds-check -fsigned-char -fno-common -fmessage-length=0 -Woverloaded-virtual -Weffc++ -Wconversion -Wshadow -fno-default-inline -fno-inline -I/usr/X11R6/include -I${FINK_ROOT}/include")
166   Set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -m64 -Wall -W -fno-common -pipe -I${FINK_ROOT}/include")
167
168   If(CMAKE_Fortran_COMPILER MATCHES g95) 
169     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fbounds-check -ftrace=full -DFORTRAN_G95")
170     Execute_process(COMMAND g95 --print-search-dirs 
171       OUTPUT_VARIABLE _out)
172     String(REGEX REPLACE "^.*install: *([^\n]*)/\n.*$" "\\1" _libdir ${_out})
173     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} -L${_libdir} -lf95")
174   Else(CMAKE_Fortran_COMPILER MATCHES g95)
175     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DFORTRAN_GFORTRAN")
176     Execute_process(
177       COMMAND gfortran -m64 -print-file-name=libgfortran.dylib
178       OUTPUT_VARIABLE FLIB
179       OUTPUT_STRIP_TRAILING_WHITESPACE)
180     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
181     Execute_process(
182       COMMAND gfortran -m64 -print-file-name=libgfortranbegin.a
183       OUTPUT_VARIABLE FLIB
184       OUTPUT_STRIP_TRAILING_WHITESPACE)
185     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
186   Endif(CMAKE_Fortran_COMPILER MATCHES g95) 
187
188   Set(LINK_FLAGS "${LINK_FLAGS} -m64")
189
190 # I think this is useless
191 #  Set(ALIROOT_LIBRARIES "${ROOT_LIBRARIES} -L/usr/X11R6/lib -lX11")
192   Set(ALIROOT_LIBRARIES "${ROOT_LIBRARIES}")
193
194 # Would like to use this, but did not manage on the Mac
195 #Include(FindOpenGL)
196 #Set(ROOT_LIBRARIES ${ROOT_LIBRARIES} ${OPENGL_LIBRARIES})
197 #Set(ROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
198 # Poor man's version of the above
199   Set(ALIROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIR} /usr/X11/include)
200
201   Set(LINK_FLAGS "${LINK_FLAGS} -bind_at_load")
202
203
204 # LD            = export MACOSX_DEPLOYMENT_TARGET=$(MACOSX_MAJOR).$(MACOSX_MINOR) ; \
205 #               unset LD_PREBIND ; \
206 #               g++
207 # ALLD        = ar
208 # ALFLAGS       = cr
209 # ALLIB         = 
210 # AEXT        = a
211
212
213 Endif(ALICE_TARGET STREQUAL macosx64)
214
215 # linuxx8664gcc
216 If(ALICE_TARGET STREQUAL linuxx8664gcc) 
217
218
219   Set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -shared -Wl")
220
221   Set(CMAKE_Fortran_FLAGS "-fno-second-underscore -m64")
222
223   Set(CLIBDEFS "-DCERNLIB_LXIA64 -DCERNLIB_BLDLIB -DCERNLIB_CZ")
224
225   Set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64 -pipe -W -Wall -Weffc++ -Woverloaded-virtual -fmessage-length=0 -Wno-long-long -Dlinux -I/usr/X11R6/include")
226   Set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -m64 -Wall -W -pipe")
227
228   If(CMAKE_Fortran_COMPILER MATCHES g95) 
229     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fbounds-check -ftrace=full -DFORTRAN_G95")
230     Execute_process(COMMAND g95 --print-search-dirs 
231       OUTPUT_VARIABLE _out)
232     String(REGEX REPLACE "^.*install: *([^\n]*)/\n.*$" "\\1" _libdir ${_out})
233     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} -L${_libdir} -lf95")
234   Else(CMAKE_Fortran_COMPILER MATCHES g95)
235     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DFORTRAN_GFORTRAN")
236     Execute_process(
237       COMMAND gfortran -m64 -print-file-name=libgfortran.so
238       OUTPUT_VARIABLE FLIB
239       OUTPUT_STRIP_TRAILING_WHITESPACE)
240     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
241     Execute_process(
242       COMMAND gfortran -m64 -print-file-name=libgfortranbegin.a
243       OUTPUT_VARIABLE FLIB
244       OUTPUT_STRIP_TRAILING_WHITESPACE)
245     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
246   Endif(CMAKE_Fortran_COMPILER MATCHES g95) 
247
248   Set(LINK_FLAGS "${LINK_FLAGS} -m64")
249
250   Set(ALIROOT_LIBRARIES "${ROOT_LIBRARIES}")
251
252   Set(ALIROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIR} /usr/X11/include)
253
254   Set(LINK_FLAGS "${LINK_FLAGS}")
255
256 Endif(ALICE_TARGET STREQUAL linuxx8664gcc)
257
258 # linux
259 If(ALICE_TARGET STREQUAL linux) 
260
261
262   Set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -shared -Wl")
263
264   Set(CMAKE_Fortran_FLAGS "-fno-second-underscore -m32")
265
266   Set(CLIBDEFS "-DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ")
267
268   Set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -pipe -W -Wall -Weffc++ -Woverloaded-virtual -fmessage-length=0 -Wno-long-long -Dlinux -I/usr/X11R6/include")
269   Set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -m32 -Wall -W -pipe")
270
271   If(CMAKE_Fortran_COMPILER MATCHES g95) 
272     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fbounds-check -ftrace=full -DFORTRAN_G95")
273     Execute_process(COMMAND g95 --print-search-dirs 
274       OUTPUT_VARIABLE _out)
275     String(REGEX REPLACE "^.*install: *([^\n]*)/\n.*$" "\\1" _libdir ${_out})
276     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} -L${_libdir} -lf95")
277   Else(CMAKE_Fortran_COMPILER MATCHES g95)
278     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DFORTRAN_GFORTRAN")
279     Execute_process(
280       COMMAND gfortran -m32 -print-file-name=libgfortran.so
281       OUTPUT_VARIABLE FLIB
282       OUTPUT_STRIP_TRAILING_WHITESPACE)
283     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
284     Execute_process(
285       COMMAND gfortran -m32 -print-file-name=libgfortranbegin.a
286       OUTPUT_VARIABLE FLIB
287       OUTPUT_STRIP_TRAILING_WHITESPACE)
288     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
289   Endif(CMAKE_Fortran_COMPILER MATCHES g95) 
290
291   Set(LINK_FLAGS "${LINK_FLAGS} -m32")
292
293   Set(ALIROOT_LIBRARIES "${ROOT_LIBRARIES}")
294
295   Set(ALIROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIR} /usr/X11/include)
296
297   Set(LINK_FLAGS "${LINK_FLAGS}")
298
299 Endif(ALICE_TARGET STREQUAL linux)
300
301 # macosx
302 If(ALICE_TARGET STREQUAL macosx) 
303
304   Execute_process(
305     COMMAND sw_vers -productVersion
306     OUTPUT_VARIABLE MACOSX
307     OUTPUT_STRIP_TRAILING_WHITESPACE)
308
309   String(REGEX REPLACE "^(.*)[.](.*)[.](.*)$" "\\1" MACOSX_MAJOR "${MACOSX}")
310   String(REGEX REPLACE "^(.*)[.](.*)[.](.*)$" "\\2" MACOSX_MINOR "${MACOSX}")
311
312   Message(STATUS "Mac OS X ${MACOSX_MAJOR}.${MACOSX_MINOR}")
313
314   Find_Package(fink)
315   
316   Set(CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS "${CMAKE_SHARED_LIBRARY_CREATE_CXX_FLAGS} -flat_namespace -single_module -undefined dynamic_lookup -m32")
317
318   Set(CMAKE_Fortran_FLAGS "-fno-second-underscore -m32")
319
320   Set(CLIBDEFS "-DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ -DCERNLIB_PPC")
321
322   Set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32 -pipe -Wall -W -Wno-long-double -pipe -fbounds-check -fsigned-char -fno-common -fmessage-length=0 -Woverloaded-virtual -Weffc++ -Wconversion -Wshadow -fno-default-inline -fno-inline -I/usr/X11R6/include -I${FINK_ROOT}/include")
323   Set(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -m32 -Wall -W -fno-common -pipe -I${FINK_ROOT}/include")
324
325   If(CMAKE_Fortran_COMPILER MATCHES g95) 
326     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fbounds-check -ftrace=full -DFORTRAN_G95 -single_module")
327     Execute_process(COMMAND g95 --print-search-dirs 
328       OUTPUT_VARIABLE _out)
329     String(REGEX REPLACE "^.*install: *([^\n]*)/\n.*$" "\\1" _libdir ${_out})
330     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} -L${_libdir} -lf95")
331   Else(CMAKE_Fortran_COMPILER MATCHES g95)
332     Set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -DFORTRAN_GFORTRAN")
333     Execute_process(
334       COMMAND gfortran -m32 -print-file-name=libgfortran.dylib
335       OUTPUT_VARIABLE FLIB
336       OUTPUT_STRIP_TRAILING_WHITESPACE)
337     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
338     Execute_process(
339       COMMAND gfortran -m32 -print-file-name=libgfortranbegin.a
340       OUTPUT_VARIABLE FLIB
341       OUTPUT_STRIP_TRAILING_WHITESPACE)
342     Set(ROOT_LIBRARIES "${ROOT_LIBRARIES} ${FLIB}")
343   Endif(CMAKE_Fortran_COMPILER MATCHES g95) 
344
345   Set(ALIROOT_LIBRARIES "${ROOT_LIBRARIES}")
346
347   Set(ALIROOT_INCLUDE_DIR ${ROOT_INCLUDE_DIR} /usr/X11/include)
348
349   Set(LINK_FLAGS "${LINK_FLAGS} -bind_at_load -single_module")
350
351 Endif(ALICE_TARGET STREQUAL macosx)
352
353 EndMacro (SetupSystem)
354
355 # ../build/Makefile.alphacxx6
356 # # -*- mode: makefile -*-
357 # # Makefile to build AliRoot for Alpha OSF1
358
359 # # System dependent commands
360
361 # XARGS = xargs
362
363 # # The compilers
364 # CXX           = cxx 
365 # F77         = f77
366
367 # # Global optimisation
368 # OPT           = -O
369 # NOOPT       = -O0 
370
371 # CXXOPT              = $(OPT)
372 # CXXNOOPT      = $(NOOPT)
373 # COPT        = $(OPT)
374 # FOPT        = $(OPT)
375
376 # # CERNLIB defines
377 # CLIBDEFS      = -DCERNLIB_DECS -DCERNLIB_BLDLIB -DCERNLIB_CZ
378 # CLIBCXXOPTS   =
379 # CLIBCOPT      =
380 # CLIBFOPT      = -I. $(CLIBDEFS)
381
382 # # Compiler flags
383 # CXXFLAGS      = $(CXXOPT)   -nostdnew -rtti -taso
384 # CXXFLAGSNO    = $(CXXNOOPT) -nostdnew -rtti -taso
385 # CFLAGS              = $(COPT) -fPIC -pipe -mcpu=ev5 -D__osf__ -D__alpha
386 # FFLAGS        = $(FOPT) -nofor_main -warn noinformational -taso $(CLIBFOPT)
387 # # rmkdepend flags for building dependencies of FORTRAN files
388 # DEPENDFFLAGS  = $(filter-out -warn noinformational,$(FFLAGS))
389
390 # # rootcint flags
391 # CINTFLAGS     = -D__DECCXX
392 #               
393 # LD            = cxx
394 # LDFLAGS       = 
395
396 # SHLD        = ld
397 # SOFLAGS       =  -L/usr/lib/cmplrs/cxx -rpath /usr/lib/cmplrs/cxx \
398 #                  -expect_unresolved "*" -msym -shared -taso \
399 #                  /usr/lib/cmplrs/cc/crt0.o /usr/lib/cmplrs/cxx/_main.o
400
401 # SHLIB         = -lUfor -lfor -lFutil
402 # SOEXT               = so
403
404 # #System libraries
405
406 # # Flags for static libraries
407 # AFLAGS = $(filter-out -rpath /usr/lib/cmplrs/cxx -msym -shared /usr/lib/cmplrs/cc/crt0.o,$(SOFLAGS))
408 # AFLAGS += $(SHLIB)
409
410 # # Additional flags and libraries for building aliroot executable
411 # SYSLIBS     := -lXm -lXt -lX11 -lPW -lUfor -lfor -lFutil -lots -taso -lbsd
412
413 # # Cure funny problem 
414 # # sometimes in dependencies system include files of the sort
415 # # /usr/.../filename AND /usr/.../filename.cc are present
416 # # DEC believes that /usr/.../filename is the executable to be
417 # # built from /usr/.../filename.cc 
418 # # Just avoid this to happen
419
420 # % : %.cc
421 #       @;
422
423
424
425
426
427
428
429
430
431 # ../build/Makefile.hpuxacc
432 # # -*- mode: makefile -*-
433 # # Makefile to build AliRoot on HP-UX
434
435 # # System dependent commands
436
437 # XARGS = xargs
438
439 # # The compilers
440 # CXX           = aCC
441 # F77         = f77
442 # CC          = cc
443
444 # # Global optimisation
445 # OPT           = -g -O
446 # NOOPT         = -g
447
448 # CXXOPT        = $(OPT)
449 # CXXNOOPT      = $(NOOPT)
450 # COPT          = $(OPT)
451 # FOPT          = $(OPT)
452
453 # # CERNLIB defines
454 # CLIBDEFS      = -DCERNLIB_HPUX -DCERNLIB_BLDLIB -DCERNLIB_CZ
455 # CLIBCXXOPTS   =
456 # CLIBCOPT      = +z -Ae 
457 # CLIBFOPT      = $(CLIBDEFS) -WF,-P
458
459 # CXXFLAGS      = $(CXXOPT)   -Wc,-ansi_for_scope,on +Z -z +W70,495,740,749,823,829 -Dextname
460 # CXXFLAGSNO    = $(CXXNOOPT) -Wc,-ansi_for_scope,on +Z -z +W70,495,740,749,823,829 -Dextname
461 # CFLAGS              = $(COPT) +Z -Ae
462 # FFLAGS        = $(CLIBFOPT) $(FOPT) +ppu +Z
463 # # rmkdepend flags for building dependencies of FORTRAN files
464 # DEPENDFFLAGS  = $(FFLAGS)
465
466 # # rootcint flags
467 # CINTFLAGS     = 
468
469 # LD            = aCC
470 # LDFLAGS       = $(OPT) -z -Wl,+s -Wl,-E
471
472 # SHLD        = $(LD)
473 # SOFLAGS       = -b /usr/lib/libm.sl 
474
475 # SOEXT               = sl
476
477 # # additional ROOT libraries
478 # SYSLIBS      := -lcrypt -L/usr/lib/X11R6 -lX11 
479
480
481
482
483
484 # ../build/Makefile.linuxalphagcc
485 # # -*- mode: makefile -*-
486 # # Makefile to build AliRoot for Linux on alpha
487
488 # # System dependent commands
489
490 # XARGS = xargs -r
491
492 # # The compilers
493 # CXX           = g++ 
494 # F77         = g77
495 # CC          = gcc
496 # CCMAJORV      = $(shell $(CC) -dumpversion | cut -d. -f1)
497 # CCMINORV      = $(shell $(CC) -dumpversion | cut -d. -f2)
498
499 # # Global optimisation
500 # OPT           = -O -g -mieee -mno-soft-float
501 # NOOPT         = -g -mieee -mno-soft-float
502
503 # CXXOPT        = $(OPT)
504 # CXXNOOPT      = $(NOOPT)
505 # COPT        = $(OPT)
506 # FOPT        = $(OPT)
507
508 # # CERNLIB defines
509 # CLIBDEFS      = -DCERNLIB_UNIX -DCERNLIB_DECS -DCERNLIB_BLDLIB -DCERNLIB_CZ
510 # CLIBCXXOPTS   =
511 # CLIBCOPT      =
512 # CLIBFOPT      = $(CLIBDEFS)
513
514 # # Compiler flags
515
516 # CXXFLAGS       = $(OPT) -Wall -fPIC -pipe
517 # CXXFLAGSNO     = $(NOOPT) -Wall -fPIC -pipe
518 # CFLAGS               = $(OPT) -Wall -fPIC -pipe -ansi
519 # FFLAGS         = $(CLIBFOPT) $(FOPT) -Wall -fPIC -pipe -fno-second-underscore
520 # # rmkdepend flags for building dependencies of FORTRAN files
521 # DEPENDFFLAGS   = $(FFLAGS)
522
523 # # rootcint flags
524 # CINTFLAGS     = 
525
526 # LD            = g++
527 # LDFLAGS       = $(OPT) 
528
529 # SHLD        = $(LD)
530 # SOFLAGS       = $(OPT) -Wall -fPIC -pipe -shared -Wl
531 # SHLIB         = -lg2c
532 # SOEXT               = so
533
534 # ALLD        = ar
535 # ALFLAGS       = cr
536 # ALLIB         = 
537 # AEXT        = a
538
539 # #System libraries
540 # SYSLIBS      := -ldl -lg2c -lcrypt -L/usr/X11R6/lib -lX11
541
542
543
544
545
546 # ../build/Makefile.linuxia64ecc
547 # # -*- mode: makefile -*-
548 # # Makefile for AliRoot for Itanium/Linux with Intel icc compiler
549
550 # # System dependent commands
551
552 # XARGS = xargs -r
553
554 # # The compilers
555 # CXX           = icc 
556 # F77         = ifort
557 # CC          = icc
558
559 # # Global optimisation
560 # OPT           = -g #-O
561 # NOOPT         = -g
562
563 # CXXOPT        = $(OPT)
564 # CXXNOOPT      = $(OPT)
565 # COPT        = $(OPT)
566 # FOPT        = $(OPT)
567
568 # # CERNLIB defines
569 # CLIBDEFS      = -DCERNLIB_LXIA64 -DCERNLIB_BLDLIB -DCERNLIB_CZ
570 # CLIBCXXOPTS   =
571 # CLIBCOPT      =
572 # CLIBFOPT      = $(CLIBDEFS)
573
574 # # Compiler flags
575 # CXXFLAGS      = $(CXXOPT)
576 # CXXFLAGSNO    = $(CXXNOOPT)
577 # CFLAGS              = $(COPT)
578 # FFLAGS        = $(CLIBFOPT) $(FOPT)
579 # # rmkdepend flags for building dependencies of FORTRAN files
580 # DEPENDFFLAGS  = $(FFLAGS)
581
582 # # rootcint flags
583 # CINTFLAGS     = 
584
585 # LD            = icpc
586 # LDFLAGS       = $(OPT) 
587
588 # SHLD        = $(LD)
589 # SOFLAGS       = -Wl,-soname,$$TMPLIB -shared -O
590 # SHLIB         =
591 # SOEXT               = so
592
593 # ALLD        = ar
594 # ALFLAGS       = cr
595 # ALLIB         = 
596 # AEXT        = a
597
598 # # additional ROOT libraries
599
600 # LIBNOVER      = `find /lib -name 'libNoVersion*.so' | xargs --replace basename {} .so | sed -e 's/lib/ -l/'`
601
602 # SYSLIBS      := $(LIBNOVER) -lcrypt -L/usr/local/lib -lXt -lCEPCF90 -lF90 \
603 #                 -lPEPCF90 -lintrins -L/usr/X11R6/lib -lX11
604 # ../build/Makefile.linuxia64gcc
605 # # -*- mode: makefile -*-
606 # # Makefile for AliRoot for Itanium/Linux with gcc
607
608 # # System dependent commands
609
610 # XARGS = xargs -r
611
612 # # The compilers
613 # CXX           = g++ 
614 # F77         = g77
615 # CC          = gcc
616
617 # # Global optimisation
618 # OPT           = -g -O
619 # NOOPT         = -g
620
621 # CXXOPT        = $(OPT)
622 # CXXNOOPT      = $(NOOPT)
623 # COPT        = $(OPT)
624 # FOPT        = $(OPT)
625
626 # # CERNLIB defines
627 # CLIBDEFS      = -DCERNLIB_LXIA64 -DCERNLIB_BLDLIB -DCERNLIB_CZ
628 # CLIBCXXOPTS   =
629 # CLIBCOPT      =
630 # CLIBFOPT      = $(CLIBDEFS)
631
632 # # Compiler flags
633 # CXXFLAGS      = $(CXXOPT)  -Wall -Weffc++ -fPIC -pipe
634 # CXXFLAGSNO    = $(CXXNOOPT)  -Wall -Weffc++ -fPIC -pipe
635 # CFLAGS              = -Wall -fPIC -pipe
636 # FFLAGS        = $(CLIBFOPT) $(FOPT) -fno-second-underscore
637 # # rmkdepend flags for building dependencies of FORTRAN files
638 # DEPENDFFLAGS = $(FFLAGS)
639
640 # # rootcint flags
641 # CINTFLAGS     = 
642
643 # LD            = g++
644 # LDFLAGS       = $(OPT) -Wl,-Map -Wl,$@.map
645
646 # SHLD        = $(LD)
647 # SOFLAGS       = -shared -Wl -O2
648 # SOEXT               = so
649
650 # ALLD        = ar
651 # ALFLAGS       = cr
652 # ALLIB         = 
653 # AEXT        = a
654
655 # # additional ROOT libraries
656
657 # LIBNOVER      = `find /lib -name 'libNoVersion*.so' | xargs --replace basename {} .so | sed -e 's/lib/ -l/'`
658
659 # #System libraries
660 # SYSLIBS      := -ldl -lbsd -lg2c -L/usr/X11R6/lib -lX11  $(LIBNOVER)
661
662
663
664
665
666 # ../build/Makefile.linuxicc
667 # # -*- mode: makefile -*-
668 # # Makefile for AliRoot for Linux with the Intel icc compiler
669
670 # # System dependent commands
671
672 # XARGS = xargs -r
673
674 # # The compilers
675 # CXX           = icc
676 # CC            = icc
677
678 # # Compiler version:
679 # ICC_MAJOR    := $(shell $(CXX) -V 2>&1 | awk '{ if (NR==1) print $$8 }' | \
680 #                 cut -d'.' -f1)
681 # ICC_MINOR    := $(shell $(CXX) -V 2>&1 | awk '{ if (NR==1) print $$8 }' | \
682 #                 cut -d'.' -f2)
683
684 # F77           = ifort
685
686 # # Global optimisation
687 # OPT           = -O -ip
688 # NOOPT         = -O0
689
690 # CXXOPT        = $(OPT)
691 # CXXNOOPT      = $(NOOPT)
692 # COPT          = $(OPT)
693 # FOPT          = $(OPT)
694
695 # # CERNLIB defines
696 # CLIBDEFS      = -DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ
697 # CLIBCXXOPTS   =
698 # CLIBCOPT      =
699 # CLIBFOPT      = $(CLIBDEFS)
700
701 # # Compiler flags
702 # CXXFLAGS      = $(CXXOPT)
703 # CXXFLAGSNO    = $(CXXNOOPT)
704 # CFLAGS        = $(COPT)
705 # FFLAGS        = $(CLIBFOPT) $(FOPT)
706 # # rmkdepend flags for building dependencies of FORTRAN files
707 # DEPENDFFLAGS  = $(FFLAGS)
708
709 # # rootcint flags
710 # CINTFLAGS     =
711
712 # LD            = icpc
713 # LDFLAGS       = $(OPT)
714
715 # SHLD          = $(LD)
716 # SOFLAGS       = -Wl,-soname,$$TMPLIB -shared $(OPT)
717 # SHLIB         =
718 # SOEXT               = so
719
720 # ALLD          = ar
721 # ALFLAGS       = cr
722 # ALLIB         =
723 # AEXT        = a
724
725 # # additional ROOT libraries
726
727 # LIBNOVER      = `find /lib -name 'libNoVersion*.so' | xargs --replace basename {} .so | sed -e 's/lib/ -l/'`
728
729 # #System libraries
730 # SYSLIBS      := -lcrypt -L/usr/X11R6/lib -lX11 $(LIBNOVER) -L/usr/local/lib \
731 #                 -lXt -L$(shell which ifort | sed -e 's|bin/ifort|lib|') \
732 #                 -lifcore -lifport
733 # ../build/Makefile.macosxicc
734 # # -*- mode: makefile -*-
735 # # Makefile for AliRoot for MacOS X with gcc
736
737 # XARGS = xargs
738
739 # # fink directories
740 # FINK_ROOT := $(shell which fink | sed -e 's?/bin/fink??')
741 # ifeq (,$(FINK_ROOT))
742 # # No fink, build will probably fail, but we try a guess
743 # FINK_ROOT=/usr/local
744 # endif
745
746 # # The compilers
747 # CXX           = icc 
748 # CC          = icc
749
750 # F77         = ifort
751
752 # # Global optimisation
753 # OPT           = -O -g
754 # NOOPT         = -g
755
756 # CXXOPT        = $(OPT) 
757 # CXXNOOPT      = $(NOOPT) 
758 # COPT        = $(OPT)
759 # FOPT        = $(OPT)
760
761 # # CERNLIB defines
762 # CLIBDEFS      = -DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ -DCERNLIB_PPC
763 # CLIBCXXOPTS   =
764 # CLIBCOPT      =
765 # CLIBFOPT      = $(CLIBDEFS)
766
767 # # Compiler flags
768 # CXXFLAGS      = $(CXXOPT) -fPIC -wd1476 -I/usr/X11R6/include -I$(FINK_ROOT)/include 
769
770 # CXXFLAGSNO    = $(CXXNOOPT) 
771
772 # CFLAGS              = $(COPT) -fPIC -restrict -I$(FINK_ROOT)/include
773
774 # FFLAGS        = $(CLIBFOPT) $(FOPT)
775 # # rmkdepend flags for building dependencies of FORTRAN files
776 # DEPENDFFLAGS  = $(FFLAGS)
777
778 # # rootcint flags
779 # CINTFLAGS     = 
780
781 # LD            = icpc
782 # LDFLAGS       = $(OPT) $(DICTLOAD)
783
784 # SHLD       := $(LD)
785 # SOFLAGS      := $(OPT) -dynamiclib -undefined dynamic_lookup -single_module
786 # SHLIB        := 
787 # SOEXT              := so
788
789 # DYLD       := $(LD)
790 # DYFLAGS       = -dynamiclib -undefined dynamic_lookup -single_module
791 # DYLIB        := 
792 # DYEXT        := dylib
793
794 # ALLD        = ar
795 # ALFLAGS       = cr
796 # ALLIB         = 
797 # AEXT        = a
798
799 # DEPENDCXXFLAGS = $(CXXFLAGS) -I/usr/include/sys
800
801 # EXEFLAGS     := -bind_at_load 
802
803 # #System libraries
804
805 # SYSLIBS      := -L/usr/X11R6/lib -lX11 -lGL $(LIBNOVER) -L/usr/local/lib \
806 #                 -lXt -L$(shell which ifort | sed -e 's|bin/ifort|lib|') \
807 #                 -lifcore -lifport
808
809
810 # ../build/Makefile.macosxxlc
811 # # -*- mode: makefile -*-
812 # # Makefile for AliRoot for MacOS X using the IBM xlc compiler
813
814 # # The compilers
815 # CXX           = xlC
816 # F77         = xlf
817 # CC          = xlc
818
819 # # Global optimisation
820 # OPT           = -qnoopt #-O3 -g
821 # NOOPT         = -qnoopt
822
823 # CXXOPT        = $(OPT) 
824 # CXXNOOPT      = $(NOOPT) 
825 # COPT        = $(OPT)
826 # FOPT        = $(OPT) 
827
828 # # CERNLIB defines
829 # CLIBDEFS      = -DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ
830 # CLIBCXXOPTS   =
831 # CLIBCOPT      =
832 # CLIBFOPT      = $(shell echo $(CLIBDEFS) | sed -e's/-D/-WF,-D/g')
833
834 # # Compiler flags
835 # CXXFLAGS      = $(CXXOPT) -qpic -I/sw/include \
836 #                 -qflttrap=overflow:zerodivide:invalid:inexact:enable
837 # CXXFLAGSNO    = $(CXXNOOPT) -qpic -I/sw/include \
838 #                 -qflttrap=overflow:zerodivide:invalid:inexact:enable
839 # CFLAGS              = -qpic -qextname -I/sw/include \
840 #                 -qflttrap=overflow:zerodivide:invalid:inexact:enable
841 # FFLAGS        = $(CLIBFOPT)  $(FOPT) -qpic \
842 #                 -qflttrap=overflow:zerodivide:invalid:inexact:enable
843 # # rmkdepend flags for building dependencies 
844 # DEPENDFFLAGS  = $(FFLAGS)
845 # DEPENDCXXFLAGS = $(CXXFLAGS) -I/usr/include/sys
846
847 # # rootcint flags
848 # CINTFLAGS     = 
849 #               
850 # LD            = xlC
851 # LDFLAGS       = $(OPT) 
852
853 # SHLD       := export MACOSX_DEPLOYMENT_TARGET=10.3 ; \
854 #               unset LD_PREBIND ; \
855 #               xlC
856 # SOFLAGS      := -bundle -undefined dynamic_lookup
857 # #SHLIB        := -lg2c
858 # SHLIB        :=
859 # SOEXT              := so
860
861 # DYLD       := export MACOSX_DEPLOYMENT_TARGET=10.3 ; \
862 #               unset LD_PREBIND ; \
863 #               xlC
864 # DYFLAGS       = -qmkshrobj -undefined dynamic_lookup -single_module
865 # DYLIB        :=
866 # DYEXT        := dylib
867
868 # ALLD        = ar
869 # ALFLAGS       = cr
870 # ALLIB         = 
871 # AEXT        = a
872
873
874 # #System libraries
875 # SYSLIBS      := -ldl -L/usr/X11R6/lib -lX11
876
877 # EXEFLAGS     := -Wl,-bind_at_load
878
879
880
881
882 # ../build/Makefile.solarisCC5
883 # # -*- mode: makefile -*-
884 # # Makefile to build ALIROOT for SunOS
885
886 # # System dependent commands
887
888 # XARGS = xargs
889
890 # # The compilers
891 # CXX           = /opt/SUNWspro/bin/CC
892 # CC          = /opt/SUNWspro/bin/cc
893 # F77         = /opt/SUNWspro/bin/f77
894
895 # # Global optimisation
896 # OPT           = -g -O 
897 # NOOPT         = -g
898
899 # CXXOPT        = $(OPT)
900 # CXXNOOPT      = $(NOOPT)
901 # COPT        = $(OPT)
902 # FOPT        = $(OPT)
903
904 # # CERNLIB defines
905 # CLIBDEFS      = -DCERNLIB_SUN -DCERNLIB_BLDLIB -DCERNLIB_CZ
906 # CLIBCXXOPTS   =
907 # CLIBCOPT      =
908 # CLIBFOPT      = $(CLIBDEFS) -xpp=cpp
909 #               
910 # # Compiler flags
911 # CXXFLAGS      = $(CXXOPT) +w -KPIC -features=rtti -D_XOPEN_SOURCE -D_XOPEN_VERSION=4 -D__EXTENSIONS__
912 # CXXFLAGSNO    = $(CXXNOOPT) +w -KPIC -features=rtti
913 # CFLAGS              = $(COPT) -KPIC -erroff=%none
914 # FFLAGS        = $(FOPT) $(CLIBFOPT) $(CLIBDEFS)  -KPIC
915 # # rmkdepend flags for building dependencies of FORTRAN files
916 # DEPENDFFLAGS  = $(FFLAGS) 
917
918 # # rootcint flags
919 # CINTFLAGS     = 
920
921 # SHLIB         = 
922 # SOEXT               = so
923
924 # LD            = /opt/SUNWspro/bin/CC
925 # LDFLAGS       = $(OPT) -Qoption ld -t
926
927 # SHLD        = $(LD)
928 # SOFLAGS       = -G $(LDFLAGS) $(SHLIB)  
929
930 # SYSLIBS      := -L/usr/dt/lib -L/usr/openwin/lib -L/usr/ccs/lib -lXm -lXt \
931 #                 -lX11 -lm -lgen -ldl -lsocket -lsunmath -lfsu -lfui -lnsl
932
933 # # Additional flags and libraries for building aliroot executable
934
935 # EXEFLAGS     := -O -Qoption ld -t 
936
937
938
939
940
941 # ../build/Makefile.win32gcc
942 # # -*- mode: makefile -*-
943 # # Makefile to build AliRoot for Linux
944
945 # # System dependent commands
946
947 # XARGS = xargs -r
948
949 # # The compilers
950 # CXX           = g++ 
951 # F77         = g77
952 # CC          = gcc
953 # CCMAJORV      = $(shell $(CC) -dumpversion | cut -d. -f1)
954 # CCMINORV      = $(shell $(CC) -dumpversion | cut -d. -f2)
955
956 # # Global optimisation
957 # OPT           = -O -g
958 # NOOPT         = -g
959
960 # CXXOPT        = $(OPT)
961 # CXXNOOPT      = $(NOOPT)
962 # COPT        = $(OPT)
963 # FOPT        = $(OPT)
964
965 # # CERNLIB defines
966 # CLIBDEFS      = -DCERNLIB_LINUX -DCERNLIB_BLDLIB -DCERNLIB_CZ
967 # CLIBCXXOPTS   =
968 # CLIBCOPT      =
969 # CLIBFOPT      = $(CLIBDEFS)
970
971 # # Compiler flags
972 # CXXFLAGS       = $(OPT) -Wall -pipe -Woverloaded-virtual -Weffc++ -D_DLL
973 # CXXFLAGSNO     = $(NOOPT) -Wall -pipe -Woverloaded-virtual -Weffc++ -D_DLL
974 # CFLAGS               = $(OPT) -Wall -D_DLL
975 # FFLAGS         = $(CLIBFOPT) $(FOPT) -fno-second-underscore
976 # # rmkdepend flags for building dependencies of FORTRAN files
977 # DEPENDFFLAGS   = $(FFLAGS)
978
979 # # rootcint flags
980 # CINTFLAGS     = 
981
982 # LD            = g++
983 # LDFLAGS       = $(OPT) 
984
985 # SHLD        = $(LD)
986 # SOFLAGS       = $(OPT) -shared -Wl,--export-all-symbols -Wl,-soname=$$TMPLIB -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc
987 # SHLIB         = $(shell root-config --libs) -lg2c
988 # SOEXT               = dll
989
990 # ALLD        = ar
991 # ALFLAGS       = cr
992 # ALLIB         = 
993 # AEXT        = a
994
995 # # additional ROOT libraries
996
997 # #System libraries
998 # SYSLIBS      := -ldl -lg2c -lcrypt -L/usr/X11R6/lib -lX11
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009