bug fix in the vertex selection
[u/mrichter/AliRoot.git] / CORRFW / Makefile.arch
CommitLineData
563113d0 1# -*- mode: makefile -*-
2#
3# Makefile containing platform dependencies for ROOT based projects.
4#
5# Copyright (c) 2000 Rene Brun and Fons Rademakers
6#
7# Author: Fons Rademakers, 29/2/2000
8
9ROOTCONFIG := root-config
10
11ARCH := $(shell $(ROOTCONFIG) --arch)
12PLATFORM := $(shell $(ROOTCONFIG) --platform)
13
14CXX =
15ObjSuf = o
16SrcSuf = cxx
17ExeSuf =
18DllSuf = so
19OutPutOpt = -o # keep whitespace after "-o"
20
21ifeq (debug,$(findstring debug,$(ROOTBUILD)))
22OPT = -g
23OPT2 = -g
24else
25ifneq ($(findstring debug, $(strip $(shell $(ROOTCONFIG) --config))),)
26OPT = -g
27OPT2 = -g
28else
29OPT = -O
30OPT2 = -O2
31endif
32endif
33
34ROOTCFLAGS := $(shell $(ROOTCONFIG) --cflags)
35ROOTLDFLAGS := $(shell $(ROOTCONFIG) --ldflags)
36ROOTLIBS := $(shell $(ROOTCONFIG) --libs)
37ROOTGLIBS := $(shell $(ROOTCONFIG) --glibs)
38HASTHREAD := $(shell $(ROOTCONFIG) --has-thread)
39
40ifeq ($(ARCH),hpuxacc)
41# HP-UX 10.x with aCC
42CXX = aCC
43CXXFLAGS = $(OPT) +Z
44LD = aCC
45LDFLAGS = $(OPT) -z
46SOFLAGS = -b
47endif
48
49ifeq ($(ARCH),hpuxia64acc)
50# HP-UX 11i 1.5 (IA-64) with aCC
51CXX = aCC
52CXXFLAGS = +DD64 $(OPT) +Z
53LD = aCC
54LDFLAGS = +DD64 $(OPT) -z
55SOFLAGS = -b
56endif
57
58ifeq ($(ARCH),hpuxgcc)
59# HP-UX 10.x with g++
60CXXFLAGS = $(OPT) -fPIC
61CXX = g++
62LD = g++
63LDFLAGS = $(OPT)
64SOFLAGS = -fPIC -shared
65endif
66
67ifeq ($(ARCH),hurddeb)
68# GNU/Hurd
69CXX = g++
70CXXFLAGS = $(OPT2) -Wall -fPIC
71LD = g++
72LDFLAGS = $(OPT2)
73SOFLAGS = -shared
74endif
75
76ifeq ($(ARCH),aix)
77# IBM AIX xlC 4.x
78CXX = xlC
79CXXFLAGS = $(OPT)
80LD = xlC
81LDFLAGS = $(OPT)
82SOFLAGS =
83DllSuf = a
84endif
85
86ifeq ($(ARCH),aix5)
87# IBM AIX xlC 5.x
88CXX = xlC
89CXXFLAGS = $(OPT)
90LD = xlC
91LDFLAGS = $(OPT)
92SOFLAGS =
93DllSuf = a
94endif
95
96ifeq ($(ARCH),aixgcc)
97# IBM AIX with GCC
98CXX = g++
99CXXFLAGS = $(OPT)
100LD = g++
101LDFLAGS = $(OPT)
102SOFLAGS = -shared
103DllSuf = a
104EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
105endif
106
107ifeq ($(ARCH),solaris)
108# Solaris CC
109CXX = /opt/SUNWspro/bin/CC
110CXXFLAGS = $(OPT) -KPIC
111LD = /opt/SUNWspro/bin/CC
112LDFLAGS = $(OPT)
113SOFLAGS = -G
114endif
115
116ifeq ($(ARCH),solarisCC5)
117# Solaris CC 5.0
118CXX = CC
119CXXFLAGS = $(OPT) -KPIC
120LD = CC
121LDFLAGS = $(OPT)
122SOFLAGS = -G
123endif
124
125ifeq ($(ARCH),solarisgcc)
126# Solaris gcc
127CXX = g++
128CXXFLAGS = $(OPT) -fPIC
129LD = g++
130LDFLAGS = $(OPT)
131SOFLAGS = -shared
132endif
133
134ifeq ($(ARCH),solariskcc)
135# Solaris kcc
136CXX = KCC --one_instantiation_per_object
137CXXFLAGS = -O4 -KPIC
138LD = KCC
139LDFLAGS = -O4
140SOFLAGS =
141endif
142
143ifeq ($(ARCH),solarisx86)
144# Solaris CC on Intel
145CXX = CC
146CXXFLAGS = $(OPT) -KPIC
147LD = CC
148LDFLAGS = $(OPT)
149SOFLAGS = -G
150endif
151
152ifeq ($(ARCH),sgicc)
153# SGI
154CXX = CC -n32 -I/usr/include/CC.sgi
155CXXFLAGS = $(OPT)
156LD = CC -n32 -LANG:std -I/usr/include/CC.sgi
157LDFLAGS = $(OPT)
158SOFLAGS = -shared
159endif
160
161ifeq ($(ARCH),sgicc64)
162# SGI
163CXX = CC -64 -I/usr/include/CC.sgi
164CXXFLAGS = $(OPT)
165LD = CC -64 -LANG:std -I/usr/include/CC.sgi
166LDFLAGS = $(OPT)
167SOFLAGS = -shared
168endif
169
170ifeq ($(ARCH),sgigcc)
171# SGI 6.x with gcc
172CXX = g++
173CXXFLAGS = $(OPT) -Wall -fPIC
174LD = g++
175LDFLAGS = $(OPT) -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
176SOFLAGS = -shared
177endif
178
179ifeq ($(ARCH),sgin32gcc)
180# SGI 6.x with gcc for n32 ABI
181CXX = g++
182CXXFLAGS = $(OPT) -Wall -fPIC
183LD = g++
184LDFLAGS = $(OPT) -L/usr/lib32 -Wl,-woff,134 -lgen
185SOFLAGS = -shared
186endif
187
188ifeq ($(ARCH),sgikcc)
189# SGI with KCC
190CXX = KCC -n32 --one_instantiation_per_object
191CXXFLAGS = $(OPT)
192LD = KCC -n32
193LDFLAGS = $(OPT)
194SOFLAGS =
195endif
196
197ifeq ($(ARCH),alphagcc)
198# Alpha/OSF with gcc
199CXX = g++
200CXXFLAGS = $(OPT2) -Wall -fPIC
201LD = g++
202LDFLAGS = $(OPT2)
203SOFLAGS = -Wl,-expect_unresolved,* -shared
204endif
205
206ifeq ($(ARCH),alphakcc)
207# Alpha/OSF with kai compiler (not yet valid)
208CXX = KCC --one_instantiation_per_object
209CXXFLAGS = $(OPT) -fPIC
210LD = KCC
211LDFLAGS = $(OPT)
212SOFLAGS = -Wl,-expect_unresolved,* -shared
213endif
214
215ifeq ($(ARCH),alphacxx6)
216# Alpha/OSF with cxx6
217CXX = cxx
218CXXFLAGS = $(OPT)
219LD = cxx
220LDFLAGS = $(OPT)
221SOFLAGS = -shared -nocxxstd -Wl,-expect_unresolved,*,-msym
222endif
223
224ifeq ($(ARCH),linuxdeb2ppc)
225# Debian/Linux on the PowerPC
226CXX = g++
227CXXFLAGS = $(OPT2) -Wall -fPIC
228LD = g++
229LDFLAGS = $(OPT2)
230SOFLAGS = -shared
231endif
232
233ifeq ($(ARCH),linux)
234# Linux with egcs, gcc 2.9x, gcc 3.x
235CXX = g++
236CXXFLAGS = $(OPT2) -Wall -fPIC
237LD = g++
238LDFLAGS = $(OPT2)
239SOFLAGS = -shared
240endif
241
242ifeq ($(ARCH),linuxkcc)
243# Linux with the KAI compiler
244CXX = KCC --one_instantiation_per_object
245CXXFLAGS = $(OPT) -fPIC +K0
246LD = KCC
247LDFLAGS = $(OPT) $(shell $(ROOTCONFIG) --cflags)
248SOFLAGS =
249endif
250
251ifeq ($(ARCH),linuxicc)
252# Linux with Intel icc compiler
253ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
254 cut -d'.' -f1)
255ICC_MINOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
256 cut -d'.' -f2)
257CXX = icc
258CXXFLAGS = $(OPT) -fPIC -wd1476
259LD = icpc
260LDFLAGS = $(OPT)
261SOFLAGS = -shared
262endif
263
264ifeq ($(ARCH),linuxppcgcc)
265# PPC Linux with gcc and glibc
266CXX = g++
267CXXFLAGS = $(OPT2) -Wall -fPIC
268LD = g++
269LDFLAGS = $(OPT2)
270SOFLAGS = -shared
271endif
272
273ifeq ($(ARCH),linuxia64gcc)
274# Itanium Linux with gcc 2.9x
275CXX = g++
276CXXFLAGS = $(OPT2) -Wall -fPIC
277LD = g++
278LDFLAGS = $(OPT2)
279SOFLAGS = -shared
280endif
281
282ifeq ($(ARCH),linuxia64sgi)
283# Itanium Linux with sgiCC
284CXX = sgiCC
285CXXFLAGS = $(OPT) -Wall -fPIC
286LD = gsgiCC
287LDFLAGS = $(OPT)
288SOFLAGS = -shared
289endif
290
291ifeq ($(ARCH),linuxia64ecc)
292# Itanium Linux with Intel icc (was ecc)
293ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
294 cut -d'.' -f1)
295ICC_MINOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
296 cut -d'.' -f2)
297CXX = icc
298CXXFLAGS = $(OPT) -fPIC -wd1476
299LD = icpc
300LDFLAGS = $(OPT)
301SOFLAGS = -shared
302endif
303
304ifeq ($(ARCH),linuxx8664gcc)
305# AMD Opteron and Intel EM64T (64 bit mode) Linux with gcc 3.x
306CXX = g++
307CXXFLAGS = $(OPT2) -Wall -fPIC
308LD = g++
309LDFLAGS = $(OPT2)
310SOFLAGS = -shared
311endif
312
313ifeq ($(ARCH),linuxppc64gcc)
314# PPC64 Linux with gcc 3.x
315CXX = g++
316CXXFLAGS = $(OPT) -Wall -fPIC
317LD = g++
318LDFLAGS = $(OPT)
319SOFLAGS = -shared
320endif
321
322ifeq ($(ARCH),linuxx8664icc)
323# AMD Opteron and Intel EM64T (64 bit mode) Linux with Intel icc compiler
324CXX = icc
325CXXFLAGS = $(OPT) -fPIC -wd1476 -wd1572
326LD = icpc
327LDFLAGS = $(OPT)
328SOFLAGS = -shared
329endif
330
331ifeq ($(ARCH),linuxalphagcc)
332# Alpha Linux with gcc
333CXX = g++
334CXXFLAGS = $(OPT2) -Wall -fPIC
335LD = g++
336LDFLAGS = $(OPT2)
337SOFLAGS = -shared
338endif
339
340ifeq ($(ARCH),linuxarm)
341# ARM Linux with egcs
342CXX = g++
343CXXFLAGS = $(OPT) -Wall -fPIC
344LD = g++
345LDFLAGS = $(OPT)
346SOFLAGS = -shared
347endif
348
349ifeq ($(ARCH),freebsd4)
350# FreeBSD with glibc
351CXX = g++
352CXXFLAGS = $(OPT) -W -Wall -fPIC
353LD = $(CXX)
354LDFLAGS = $(OPT)
355SOFLAGS = -shared -Wl,-x
356endif
357
358ifeq ($(ARCH),freebsd5)
359# FreeBSD with glibc
360CXX = g++
361CXXFLAGS = $(OPT) -W -Wall -fPIC
362LD = $(CXX)
363LDFLAGS = $(OPT)
364SOFLAGS = -shared -Wl,-x
365endif
366
367ifeq ($(ARCH),openbsd)
368# OpenBSD with libc
369CXX = g++
370CXXFLAGS = $(OPT) -pipe -W -Wall -fPIC
371LD = g++
372LDFLAGS = $(OPT)
373SOFLAGS = -shared -Wl,-x
374endif
375
376ifeq ($(ARCH),macosx)
377# MacOS X with cc (GNU cc 2.95.2 and gcc 3.3)
378MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
379MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
380ifeq ($(MACOSX_MINOR),5)
381MACOSX_MINOR = 4
382endif
383CXX = c++
384CXXFLAGS = $(OPT2) -pipe -Wall -W -Woverloaded-virtual
385LD = $(MACOSXTARGET) c++
386LDFLAGS = $(OPT2) -bind_at_load
387# The SOFLAGS will be used to create the .dylib,
388# the .so will be created separately
389DllSuf = dylib
390UNDEFOPT = dynamic_lookup
391ifneq ($(MACOSX_MINOR),4)
392ifneq ($(MACOSX_MINOR),3)
393UNDEFOPT = suppress
394LD = c++
395endif
396endif
397SOFLAGS = -dynamiclib -single_module -undefined $(UNDEFOPT)
398endif
399
400ifeq ($(ARCH),macosxicc)
401# MacOS X with Intel icc compiler
402MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
403MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
404ifeq ($(MACOSX_MINOR),5)
405MACOSX_MINOR = 4
406endif
407CXX = icc
408CXXFLAGS = $(OPT) -fPIC -wd1476
409LD = $(MACOSXTARGET) icpc
410LDFLAGS = $(OPT)
411# The SOFLAGS will be used to create the .dylib,
412# the .so will be created separately
413DllSuf = dylib
414SOFLAGS = -dynamiclib -single_module -undefined dynamic_lookup
415endif
416
417ifeq ($(ARCH),macosx64)
418# MacOS X >= 10.4 with gcc 64 bit mode (GNU gcc 4.*)
419# Only specific option (-m64) comes from root-config
420MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
421MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
422ifeq ($(MACOSX_MINOR),5)
423MACOSX_MINOR = 4
424endif
425CXX = c++
426CXXFLAGS = $(OPT2) -pipe -Wall -W -Woverloaded-virtual
427LD = $(MACOSXTARGET) c++ -m64
428LDFLAGS = $(OPT2) -bind_at_load
429# The SOFLAGS will be used to create the .dylib,
430# the .so will be created separately
431DllSuf = dylib
432SOFLAGS = -m64 -dynamiclib -single_module -undefined dynamic_lookup
433endif
434
435ifeq ($(ARCH),macosxxlc)
436# MacOS X with IBM xlC compiler
437MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
438MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR)
439ifeq ($(MACOSX_MINOR),5)
440MACOSX_MINOR = 4
441endif
442CXX = xlC
443CXXFLAGS = $(OPT)
444LD = $(MACOSXTARGET) xlC
445LDFLAGS = $(OPT) -Wl,-bind_at_load
446# The SOFLAGS will be used to create the .dylib,
447# the .so will be created separately
448DllSuf = dylib
449UNDEFOPT = dynamic_lookup
450ifneq ($(MACOSX_MINOR),4)
451ifneq ($(MACOSX_MINOR),3)
452UNDEFOPT = suppress
453LD = xlC
454endif
455endif
456SOFLAGS = -qmkshrobj -single_module -undefined $(UNDEFOPT)
457endif
458
459ifeq ($(ARCH),win32)
460# Windows with the VC++ compiler
461VC_MAJOR := $(shell unset VS_UNICODE_OUTPUT; cl.exe 2>&1 | awk '{ if (NR==1) print $$8 }' | \
462 cut -d'.' -f1)
463ObjSuf = obj
464SrcSuf = cxx
465ExeSuf = .exe
466DllSuf = dll
467OutPutOpt = -out:
468CXX = cl
469ifeq (debug,$(findstring debug,$(ROOTBUILD)))
470CXXOPT = -Z7
471LDOPT = -debug
472else
473ifneq ($(findstring debug, $(strip $(shell $(ROOTCONFIG) --config))),)
474CXXOPT = -Z7
475LDOPT = -debug
476else
477CXXOPT = -O2
478LDOPT = -opt:ref
479endif
480endif
481CXXFLAGS = $(CXXOPT) -nologo -I$(shell $(ROOTCONFIG) --incdir) -FIw32pragma.h
482LD = link
483LDFLAGS = $(LDOPT) -nologo
484SOFLAGS = -DLL
485
486EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
487ifeq ($(VC_MAJOR),14)
488MT_EXE = mt -nologo -manifest $@.manifest -outputresource:$@\;1; rm -f $@.manifest
489MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@\;2; rm -f $@.manifest
490else
491MT_EXE =
492MT_DLL =
493endif
494endif
495
496ifeq ($(ARCH),win32gcc)
497# Windows with gcc
498DllSuf = dll
499ExeSuf = .exe
500CXX = g++
501CXXFLAGS = $(OPT) -pipe -Wall -Woverloaded-virtual -I/usr/X11R6/include
502LD = g++
503LDFLAGS = $(OPT) -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc \
504 -L/usr/X11R6/lib
505SOFLAGS = -shared -D_DLL -Wl,--export-all-symbols
506EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
507endif
508
509ifeq ($(CXX),)
510$(error $(ARCH) invalid architecture)
511endif
512
513CXXFLAGS += $(ROOTCFLAGS)
514LDFLAGS += $(ROOTLDFLAGS)
515LIBS = $(ROOTLIBS) $(SYSLIBS)
516GLIBS = $(ROOTGLIBS) $(SYSLIBS)