File indexing completed on 2024-11-19 23:20:31
0001
0002
0003
0004
0005
0006
0007
0008
0009 ARCH := $(shell root-config --arch)
0010 PLATFORM := $(shell root-config --platform)
0011
0012 CXX =
0013 ObjSuf = o
0014 SrcSuf = cxx
0015 ExeSuf =
0016 DllSuf = so
0017 OutPutOpt = -o
0018
0019 ROOTCFLAGS := $(shell root-config --cflags)
0020 ROOTLDFLAGS :=
0021
0022 ROOTLIBS := $(shell root-config --libs)
0023 ROOTGLIBS := $(shell root-config --glibs)
0024 HASTHREAD := $(shell root-config --has-thread)
0025
0026 ifeq ($(ARCH),hpuxacc)
0027
0028 CXX = aCC
0029 CXXFLAGS = -O4 +Z
0030 LD = aCC
0031 LDFLAGS = -O2 -z
0032 SOFLAGS = -b
0033 endif
0034
0035 ifeq ($(ARCH),hpuxia64acc)
0036
0037 CXX = aCC
0038 CXXFLAGS = +DD64 -O +Z
0039 LD = aCC
0040 LDFLAGS = +DD64 -O -z
0041 SOFLAGS = -b
0042 endif
0043
0044 ifeq ($(ARCH),hpuxegcs)
0045
0046 CXXFLAGS = -O -fPIC
0047 CXX = g++
0048 LD = g++
0049 LDFLAGS = -O
0050 SOFLAGS = -fPIC -shared
0051 endif
0052
0053 ifeq ($(ARCH),hurddeb)
0054
0055 CXX = g++
0056 CXXFLAGS = -O2 -Wall -fPIC
0057 LD = g++
0058 LDFLAGS = -O2
0059 SOFLAGS = -shared
0060 endif
0061
0062 ifeq ($(ARCH),aix)
0063
0064 CXX = xlC
0065 CXXFLAGS = -O
0066 LD = xlC
0067 LDFLAGS = -O
0068 SOFLAGS =
0069 ROOTLIBS := $(shell root-config --nonew --libs)
0070 ROOTGLIBS := $(shell root-config --nonew --glibs)
0071 endif
0072
0073 ifeq ($(ARCH),aix5)
0074
0075 CXX = xlC
0076 CXXFLAGS = -O
0077 LD = xlC
0078 LDFLAGS = -O
0079 SOFLAGS =
0080 ROOTLIBS := $(shell root-config --nonew --libs)
0081 ROOTGLIBS := $(shell root-config --nonew --glibs)
0082 endif
0083
0084 ifeq ($(ARCH),aixegcs)
0085
0086 CXX = g++
0087 CXXFLAGS = -O2
0088 LD = g++
0089 LDFLAGS = -O2
0090 SOFLAGS = -shared
0091 endif
0092
0093 ifeq ($(ARCH),solaris)
0094
0095 CXX = /opt/SUNWspro/bin/CC
0096 CXXFLAGS = -O2 -KPIC
0097 LD = /opt/SUNWspro/bin/CC
0098 LDFLAGS = -O
0099 SOFLAGS = -G
0100 endif
0101
0102 ifeq ($(ARCH),solarisCC5)
0103
0104 CXX = CC
0105 CXXFLAGS = -O2 -KPIC
0106 LD = CC
0107 LDFLAGS = -O2
0108 SOFLAGS = -G
0109 endif
0110
0111 ifeq ($(ARCH),solarisgcc)
0112
0113 CXX = g++
0114 CXXFLAGS = -O2 -fPIC
0115 LD = g++
0116 LDFLAGS = -O2
0117 SOFLAGS = -shared
0118 endif
0119
0120 ifeq ($(ARCH),solariskcc)
0121
0122 CXX = KCC --one_instantiation_per_object
0123 CXXFLAGS = -O4 -KPIC
0124 LD = KCC
0125 LDFLAGS = -O4
0126 SOFLAGS =
0127 endif
0128
0129 ifeq ($(ARCH),solarisx86)
0130
0131 CXX = CC
0132 CXXFLAGS = -O4 -KPIC
0133 LD = CC
0134 LDFLAGS = -O4
0135 SOFLAGS = -G
0136 endif
0137
0138 ifeq ($(ARCH),sgicc)
0139
0140 CXX = CC -n32 -I/usr/include/CC.sgi
0141 CXXFLAGS = -O2
0142 LD = CC -n32 -LANG:std -I/usr/include/CC.sgi
0143 LDFLAGS = -O2
0144 SOFLAGS = -shared
0145 endif
0146
0147 ifeq ($(ARCH),sgicc64)
0148
0149 CXX = CC -64 -I/usr/include/CC.sgi
0150 CXXFLAGS = -O2
0151 LD = CC -64 -LANG:std -I/usr/include/CC.sgi
0152 LDFLAGS = -O2
0153 SOFLAGS = -shared
0154 endif
0155
0156 ifeq ($(ARCH),sgiegcs)
0157
0158 CXX = g++
0159 CXXFLAGS = -O2 -Wall -fPIC
0160 LD = g++
0161 LDFLAGS = -O2 -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv
0162 SOFLAGS = -shared
0163 endif
0164
0165 ifeq ($(ARCH),sgin32egcs)
0166
0167 CXX = g++
0168 CXXFLAGS = -O2 -Wall -fPIC
0169 LD = g++
0170 LDFLAGS = -O2 -L/usr/lib32 -Wl,-woff,134
0171 SOFLAGS = -shared
0172 endif
0173
0174 ifeq ($(ARCH),sgikcc)
0175
0176 CXX = KCC -n32 --one_instantiation_per_object
0177 CXXFLAGS = -O2
0178 LD = KCC -n32
0179 LDFLAGS = -O2
0180 SOFLAGS =
0181 endif
0182
0183 ifeq ($(ARCH),alphaegcs)
0184
0185 CXX = g++
0186 CXXFLAGS = -O2 -Wall -fPIC
0187 LD = g++
0188 LDFLAGS = -O2
0189 SOFLAGS = -Wl,-expect_unresolved,* -shared
0190 endif
0191
0192 ifeq ($(ARCH),alphakcc)
0193
0194 CXX = KCC --one_instantiation_per_object
0195 CXXFLAGS = -O2 -fPIC
0196 LD = KCC
0197 LDFLAGS = -O2
0198 SOFLAGS = -Wl,-expect_unresolved,* -shared
0199 endif
0200
0201 ifeq ($(ARCH),alphacxx6)
0202
0203 CXX = cxx
0204 CXXFLAGS = -O2
0205 LD = cxx
0206 LDFLAGS = -O2
0207 SOFLAGS = -shared -nocxxstd -Wl,-expect_unresolved,*,-msym
0208 endif
0209
0210 ifeq ($(ARCH),linuxrh51)
0211
0212 CXX = g++
0213 CXXFLAGS = -O2 -Wall -W -Woverloaded-virtual -fPIC -Wshadow
0214 LD = g++
0215 LDFLAGS = -O2
0216 SOFLAGS = -shared
0217 endif
0218
0219 ifeq ($(ARCH),linuxrh42)
0220
0221 CXX = g++
0222 CXXFLAGS = -O2 -Wall -W -Woverloaded-virtual -fPIC -Wshadow
0223 LD = g++
0224 LDFLAGS = -O2
0225 SOFLAGS = -shared
0226 endif
0227
0228 ifeq ($(ARCH),linuxdeb)
0229
0230 CXX = g++
0231 CXXFLAGS = -O1 -Wall -W -Woverloaded-virtual -fPIC -Wshadow
0232 LD = g++
0233 LDFLAGS = -O1
0234 SOFLAGS = -shared
0235 endif
0236
0237 ifeq ($(ARCH),linuxdeb2)
0238
0239 CXX = g++
0240 CXXFLAGS = -O2 -Wall -W -Woverloaded-virtual -fPIC -Wshadow
0241 LD = g++
0242 LDFLAGS = -O2
0243 SOFLAGS = -shared
0244 endif
0245
0246 ifeq ($(ARCH),linuxdeb2ppc)
0247
0248 CXX = g++
0249 CXXFLAGS = -O2 -Wall -W -Woverloaded-virtual -fPIC -Wshadow
0250 LD = g++
0251 LDFLAGS = -O2
0252 SOFLAGS = -shared
0253 endif
0254
0255 ifeq ($(ARCH),linuxsuse6)
0256
0257 CXX = g++
0258 CXXFLAGS = -O2 -Wall -W -Woverloaded-virtual -fPIC -Wshadow
0259 LD = g++
0260 LDFLAGS = -O2
0261 SOFLAGS = -shared
0262 endif
0263
0264 ifeq ($(ARCH),linux)
0265
0266 CXX = g++
0267 CXXFLAGS = -ggdb -O -pipe -Wall -W -Wunused -Woverloaded-virtual -fPIC -Wshadow
0268 LD = g++
0269 LDFLAGS = -O
0270 SOFLAGS = -shared
0271 endif
0272
0273 ifeq ($(ARCH),linuxkcc)
0274
0275 CXX = KCC --one_instantiation_per_object
0276 CXXFLAGS = -O -fPIC +K0
0277 LD = KCC
0278 LDFLAGS = -O $(shell root-config --cflags)
0279 SOFLAGS =
0280 endif
0281
0282 ifeq ($(ARCH),linuxicc)
0283
0284 ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
0285 cut -d'.' -f1)
0286 ICC_MINOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
0287 cut -d'.' -f2)
0288 CXX = icc
0289 CXXFLAGS = -O -fPIC -wd1476
0290 LD = icpc
0291 LDFLAGS = -O
0292 SOFLAGS = -shared
0293 ifeq ($(ICC_MAJOR),8)
0294 ifneq ($(ICC_MINOR),0)
0295 CXXFLAGS += -wd1572
0296 endif
0297 endif
0298 endif
0299
0300 ifeq ($(ARCH),linuxppcegcs)
0301
0302 CXX = g++
0303 CXXFLAGS = -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual
0304 LD = g++
0305 LDFLAGS = -O2
0306 SOFLAGS = -shared
0307 endif
0308
0309 ifeq ($(ARCH),linuxia64gcc)
0310
0311 CXX = g++
0312 CXXFLAGS = -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual
0313 LD = g++
0314 LDFLAGS = -O2
0315 SOFLAGS = -shared
0316 endif
0317
0318 ifeq ($(ARCH),linuxia64sgi)
0319
0320 CXX = sgiCC
0321 CXXFLAGS = -O -Wall -fPIC -Wshadow -Woverloaded-virtual
0322 LD = gsgiCC
0323 LDFLAGS = -O
0324 SOFLAGS = -shared
0325 endif
0326
0327 ifeq ($(ARCH),linuxia64ecc)
0328
0329 ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
0330 cut -d'.' -f1)
0331 ICC_MINOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \
0332 cut -d'.' -f2)
0333 CXX = icc
0334 CXXFLAGS = -O -fPIC -Wshadow -wd1476
0335 LD = icpc
0336 LDFLAGS = -O
0337 SOFLAGS = -shared
0338 ifeq ($(ICC_MAJOR),8)
0339 ifneq ($(ICC_MINOR),0)
0340 CXXFLAGS += -wd1572
0341 endif
0342 endif
0343 endif
0344
0345 ifeq ($(ARCH),linuxx8664gcc)
0346
0347
0348 CXX = g++
0349 CXXFLAGS = -g -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual
0350
0351 LD = g++
0352 LDFLAGS = -g -O2
0353 SOFLAGS = -g -shared
0354 endif
0355
0356 ifeq ($(ARCH),linuxppc64gcc)
0357
0358 CXX = g++
0359 CXXFLAGS = -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual
0360 LD = g++
0361 LDFLAGS = -O2
0362 SOFLAGS = -shared
0363 endif
0364
0365 ifeq ($(ARCH),linuxx8664icc)
0366
0367 CXX = icc
0368 CXXFLAGS = -O2 -fPIC -Wshadow -wd1476 -wd1572
0369 LD = icpc
0370 LDFLAGS = -O2
0371 SOFLAGS = -shared
0372 endif
0373
0374 ifeq ($(ARCH),linuxalphaegcs)
0375
0376 CXX = g++
0377 CXXFLAGS = -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual
0378 LD = g++
0379 LDFLAGS = -O2
0380 SOFLAGS = -shared
0381 endif
0382
0383 ifeq ($(ARCH),linuxarm)
0384
0385 CXX = g++
0386 CXXFLAGS = -O -Wall -fPIC -Wshadow -Woverloaded-virtual
0387 LD = g++
0388 LDFLAGS = -O
0389 SOFLAGS = -shared
0390 endif
0391
0392 ifeq ($(ARCH),linuxarm64)
0393
0394 CXX = g++
0395 CXXFLAGS = -O -Wall -fPIC -Wshadow -Woverloaded-virtual
0396 LD = g++
0397 LDFLAGS = -O
0398 SOFLAGS = -shared
0399 endif
0400
0401 ifeq ($(ARCH),mklinux)
0402
0403 CXX = g++
0404 CXXFLAGS = -O2 -Wall -fPIC -Wshadow -Woverloaded-virtual
0405 LD = g++
0406 LDFLAGS = -O2
0407 SOFLAGS = -shared
0408 endif
0409
0410 ifeq ($(ARCH),freebsd)
0411
0412 CXX = g++
0413 CXXFLAGS = -O2 -pipe -W -Wall -fPIC -Wshadow -Woverloaded-virtual
0414 LD = g++
0415 LDFLAGS = -O2
0416 SOFLAGS = -shared -Wl,-x
0417 endif
0418
0419 ifeq ($(ARCH),freebsd4)
0420
0421 CXX = g++
0422 CXXFLAGS = -O2 -pipe -W -Wall -fPIC -Wshadow -Woverloaded-virtual
0423 LD = g++
0424 LDFLAGS = -O2
0425 SOFLAGS = -shared -Wl,-x
0426 endif
0427
0428 ifeq ($(ARCH),openbsd)
0429
0430 CXX = g++
0431 CXXFLAGS = -O -pipe -W -Wall -fPIC -Wshadow -Woverloaded-virtual
0432 LD = g++
0433 LDFLAGS = -O
0434 SOFLAGS = -shared -Wl,-x
0435 endif
0436
0437 ifeq ($(ARCH),macosx)
0438
0439 MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
0440 CXX = c++
0441 CXXFLAGS = -O2 -pipe -Wall -W -Woverloaded-virtual -Wshadow
0442 LDFLAGS = -O2 -bind_at_load
0443
0444
0445 DllSuf = dylib
0446 ifeq ($(subst $(MACOSX_MINOR),,12),12)
0447 UNDEFOPT = dynamic_lookup
0448 LD = MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) c++
0449 else
0450 UNDEFOPT = suppress
0451 LD = c++
0452 endif
0453 SOFLAGS = -dynamiclib -single_module -undefined $(UNDEFOPT)
0454 endif
0455
0456 ifeq ($(ARCH),macosxicc)
0457
0458 MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
0459 CXX = c++
0460 CXXFLAGS = -O2 -pipe -Wall -W -Woverloaded-virtual -Wshadow
0461 LDFLAGS = -O2 -bind_at_load
0462
0463
0464 DllSuf = dylib
0465 ifeq ($(subst $(MACOSX_MINOR),,12),12)
0466 UNDEFOPT = dynamic_lookup
0467 LD = MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) c++
0468 else
0469 UNDEFOPT = suppress
0470 LD = c++
0471 endif
0472 SOFLAGS = -dynamiclib -single_module -undefined $(UNDEFOPT)
0473 endif
0474
0475 ifeq ($(ARCH),macosx64)
0476
0477 MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
0478 CXX = c++
0479 CXXFLAGS = -m64 -O2 -pipe -Wall -W -Woverloaded-virtual -Wshadow
0480 LDFLAGS = -m64 -O2 -bind_at_load
0481
0482
0483 DllSuf = dylib
0484 ifeq ($(subst $(MACOSX_MINOR),,12),12)
0485 LD = MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) c++
0486 SOFLAGS = -m64 -dynamiclib -single_module -undefined dynamic_lookup
0487 endif
0488 endif
0489
0490 ifeq ($(ARCH),macosxxlc)
0491
0492 MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2)
0493 CXX = xlC
0494 CXXFLAGS = -O
0495 LDFLAGS = -O -Wl,-bind_at_load
0496
0497
0498 DllSuf = dylib
0499 ifeq ($(MACOSX_MINOR),4)
0500 UNDEFOPT = dynamic_lookup
0501 LD = MACOSX_DEPLOYMENT_TARGET=10.4 xlC
0502 else
0503 ifeq ($(MACOSX_MINOR),3)
0504 UNDEFOPT = dynamic_lookup
0505 LD = MACOSX_DEPLOYMENT_TARGET=10.3 xlC
0506 else
0507 UNDEFOPT = suppress
0508 LD = xlC
0509 endif
0510 endif
0511 SOFLAGS = -qmkshrobj -single_module -undefined $(UNDEFOPT)
0512 endif
0513
0514 ifeq ($(ARCH),win32)
0515
0516 ObjSuf = obj
0517 SrcSuf = cxx
0518 ExeSuf = .exe
0519 DllSuf = dll
0520 OutPutOpt = -out:
0521 CXX = cl
0522 CXXOPT = -O2
0523
0524 CXXFLAGS = $(CXXOPT) -G5 -GR -GX -MD -DWIN32 -D_WINDOWS -nologo \
0525 -DVISUAL_CPLUSPLUS -D_X86_=1 -D_DLL
0526 LD = link
0527 LDOPT = -opt:ref
0528
0529 LDFLAGS = $(LDOPT) -pdb:none -nologo
0530 SOFLAGS = -DLL
0531
0532 ROOTLIBS := $(shell root-config --nonew --libs)
0533 ROOTGLIBS := $(shell root-config --nonew --glibs)
0534 EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
0535 endif
0536
0537 ifeq ($(ARCH),win32old)
0538
0539 ObjSuf = obj
0540 SrcSuf = cxx
0541 ExeSuf = .exe
0542 DllSuf = dll
0543 OutPutOpt = -out:
0544 CXX = cl
0545 CXXOPT = -O2
0546
0547 CXXFLAGS = $(CXXOPT) -G5 -GR -GX -MD -DWIN32 -D_WINDOWS -nologo \
0548 -DVISUAL_CPLUSPLUS -D_X86_=1 -D_DLL
0549 LD = link
0550 LDOPT = -opt:ref
0551
0552 LDFLAGS = $(LDOPT) -pdb:none -nologo
0553 SOFLAGS = -DLL
0554
0555
0556
0557 ROOTLIBS := $(shell root-config --nonew --libs)
0558 ROOTGLIBS := $(shell root-config --nonew --glibs)
0559 EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
0560 endif
0561
0562 ifeq ($(ARCH),win32gcc)
0563
0564 DllSuf = dll
0565 ExeSuf = .exe
0566 CXX = g++
0567 CXXFLAGS = -O -pipe -Wall -Woverloaded-virtual -I/usr/X11R6/include
0568 LD = g++
0569 LDFLAGS = -O -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc \
0570 -L/usr/X11R6/lib
0571 SOFLAGS = -shared -D_DLL -Wl,--export-all-symbols
0572 EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS)
0573 endif
0574
0575 ifeq ($(CXX),)
0576 $(error $(ARCH) invalid architecture)
0577 endif
0578
0579 CXXFLAGS += $(ROOTCFLAGS)
0580 LDFLAGS += $(ROOTLDFLAGS)
0581 LIBS = $(ROOTLIBS) $(SYSLIBS)
0582 GLIBS = $(ROOTGLIBS) $(SYSLIBS)