diff --git a/Misc/NPEnvironment.tchrc b/Misc/NPEnvironment.tchrc index 8832102bf2b9256f6e0fbcbbf1f61a9ec61a01ca..955dca78fceb2e133bea22a87b3024e97458b221 100644 --- a/Misc/NPEnvironment.tchrc +++ b/Misc/NPEnvironment.tchrc @@ -13,7 +13,7 @@ source $NPLIB/liblist alias Simulation '$NPSIM/bin/$G4SYSTEM/Simulation' alias Analysis '$NPANA/Analysis' -alias NPT 'cd Desktop/NPTool' -alias NPL 'cd Desktop/NPTool/NPLib/' -alias NPS 'cd Desktop/NPTool/NPSimulation/' -alias NPA 'cd Desktop/NPTool/NPAnalysis/' +alias NPT 'cd $NPTOOL' +alias NPL 'cd $NPLIB' +alias NPS 'cd $NPSIM' +alias NPA 'cd $NPANA' diff --git a/NPLib/Makefile.arch b/NPLib/Makefile.arch index 43f3e0b1c93ca79e9dde88b063c7781492bcdc26..a07ea5f4723420464f2fb9268fb1e25c6d7f841f 100644 --- a/NPLib/Makefile.arch +++ b/NPLib/Makefile.arch @@ -1,6 +1,6 @@ -# Makefile for the ROOT test programs. -# This Makefile shows nicely how to compile and link applications -# using the ROOT libraries on all supported platforms. +# -*- mode: makefile -*- +# +# Makefile containing platform dependencies for ROOT based projects. # # Copyright (c) 2000 Rene Brun and Fons Rademakers # @@ -43,8 +43,44 @@ HASTHREAD := $(shell $(ROOTCONFIG) --has-thread) ROOTDICTTYPE := $(shell $(ROOTCONFIG) --dicttype) ROOTCINT := rootcint -ifeq ($(ARCH),linux) -# Linux with egcs, gcc 2.9x, gcc 3.x +ifeq ($(PLATFORM),macosx) +MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) +ifeq ($(MACOSX_DEPLOYMENT_TARGET),) +MACOSXTARGET := 10.$(MACOSX_MINOR) +else +MACOSXTARGET := $(MACOSX_DEPLOYMENT_TARGET) +endif +endif + +ifeq ($(ARCH),hpuxacc) +# HP-UX 10.x with aCC +CXX = aCC +CXXFLAGS = $(OPT) +Z +LD = aCC +LDFLAGS = $(OPT) -z +SOFLAGS = -b +endif + +ifeq ($(ARCH),hpuxia64acc) +# HP-UX 11i 1.5 (IA-64) with aCC +CXX = aCC +CXXFLAGS = +DD64 $(OPT) +Z +LD = aCC +LDFLAGS = +DD64 $(OPT) -z +SOFLAGS = -b +endif + +ifeq ($(ARCH),hpuxgcc) +# HP-UX 10.x with g++ +CXXFLAGS = $(OPT) -fPIC +CXX = g++ +LD = g++ +LDFLAGS = $(OPT) +SOFLAGS = -fPIC -shared +endif + +ifeq ($(ARCH),hurddeb) +# GNU/Hurd CXX = g++ CXXFLAGS = $(OPT2) -Wall -fPIC LD = g++ @@ -52,13 +88,134 @@ LDFLAGS = $(OPT2) SOFLAGS = -shared endif -ifeq ($(ARCH),linuxkcc) -# Linux with the KAI compiler -CXX = KCC --one_instantiation_per_object -CXXFLAGS = $(OPT) -fPIC +K0 -LD = KCC -LDFLAGS = $(OPT) $(shell $(ROOTCONFIG) --cflags) +ifeq ($(ARCH),aix) +# IBM AIX xlC 4.x +CXX = xlC +CXXFLAGS = $(OPT) +LD = xlC +LDFLAGS = $(OPT) +SOFLAGS = +DllSuf = a +endif + +ifeq ($(ARCH),aix5) +# IBM AIX xlC 5.x +CXX = xlC +CXXFLAGS = $(OPT) +LD = xlC +LDFLAGS = $(OPT) SOFLAGS = +DllSuf = a +endif + +ifeq ($(ARCH),aixgcc) +# IBM AIX with GCC +CXX = g++ +CXXFLAGS = $(OPT) +LD = g++ +LDFLAGS = $(OPT) +SOFLAGS = -shared +DllSuf = a +EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS) +endif + +ifeq ($(ARCH),solaris) +# Solaris CC +CXX = /opt/SUNWspro/bin/CC +CXXFLAGS = $(OPT) -KPIC +LD = /opt/SUNWspro/bin/CC +LDFLAGS = $(OPT) +SOFLAGS = -G +endif + +ifeq ($(ARCH),solarisCC5) +# Solaris CC 5.0 +CXX = CC +CXXFLAGS = $(OPT) -KPIC +LD = CC +LDFLAGS = $(OPT) +SOFLAGS = -G +endif + +ifeq ($(ARCH),solaris64CC5) +# Solaris CC 5.0 64-bit +CXX = CC +CXXFLAGS = $(OPT) -KPIC +LD = CC +LDFLAGS = $(OPT) +SOFLAGS = -G +endif + +ifeq ($(ARCH),solarisgcc) +# Solaris gcc +CXX = g++ +CXXFLAGS = $(OPT) -fPIC +LD = g++ +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),sgicc) +# SGI +CXX = CC -n32 -I/usr/include/CC.sgi +CXXFLAGS = $(OPT) +LD = CC -n32 -LANG:std -I/usr/include/CC.sgi +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),sgicc64) +# SGI +CXX = CC -64 -I/usr/include/CC.sgi +CXXFLAGS = $(OPT) +LD = CC -64 -LANG:std -I/usr/include/CC.sgi +LDFLAGS = $(OPT) +SOFLAGS = -shared +endif + +ifeq ($(ARCH),sgigcc) +# SGI 6.x with gcc +CXX = g++ +CXXFLAGS = $(OPT) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT) -Wl,-u,__builtin_new -Wl,-u,__builtin_delete -Wl,-u,__nw__FUiPv +SOFLAGS = -shared +endif + +ifeq ($(ARCH),sgin32gcc) +# SGI 6.x with gcc for n32 ABI +CXX = g++ +CXXFLAGS = $(OPT) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT) -L/usr/lib32 -Wl,-woff,134 -lgen +SOFLAGS = -shared +endif + +ifeq ($(ARCH),alphagcc) +# Alpha/OSF with gcc +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -Wl,-expect_unresolved,* -shared +endif + +ifeq ($(ARCH),alphacxx6) +# Alpha/OSF with cxx6 +CXX = cxx +CXXFLAGS = $(OPT) +LD = cxx +LDFLAGS = $(OPT) +SOFLAGS = -shared -nocxxstd -Wl,-expect_unresolved,*,-msym +endif + +ifeq ($(ARCH),linux) +# Linux with egcs, gcc 2.9x, gcc 3.x +CXX = g++ +CXXFLAGS = $(OPT2) -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT2) +SOFLAGS = -shared endif ifeq ($(ARCH),linuxicc) @@ -92,15 +249,6 @@ LDFLAGS = $(OPT2) SOFLAGS = -shared endif -ifeq ($(ARCH),linuxia64sgi) -# Itanium Linux with sgiCC -CXX = sgiCC -CXXFLAGS = $(OPT) -Wall -fPIC -LD = gsgiCC -LDFLAGS = $(OPT) -SOFLAGS = -shared -endif - ifeq ($(ARCH),linuxia64ecc) # Itanium Linux with Intel icc (was ecc) ICC_MAJOR := $(shell icc -v 2>&1 | awk '{ if (NR==1) print $$2 }' | \ @@ -177,14 +325,48 @@ LDFLAGS = $(OPT) SOFLAGS = -shared endif +ifeq ($(ARCH),freebsd4) +# FreeBSD with glibc +CXX = g++ +CXXFLAGS = $(OPT) -W -Wall -fPIC +LD = $(CXX) +LDFLAGS = $(OPT) +SOFLAGS = -shared -Wl,-x +endif + +ifeq ($(ARCH),freebsd5) +# FreeBSD with glibc +CXX = g++ +CXXFLAGS = $(OPT) -W -Wall -fPIC +LD = $(CXX) +LDFLAGS = $(OPT) +SOFLAGS = -shared -Wl,-x +endif + +ifeq ($(ARCH),freebsd7) +# FreeBSD with libc +CXX = g++ +CXXFLAGS = $(OPT) -W -Wall -fPIC +LD = $(CXX) +LDFLAGS = $(OPT) +SOFLAGS = -shared -Wl,-x +endif + +ifeq ($(ARCH),openbsd) +# OpenBSD with libc +CXX = g++ +CXXFLAGS = $(OPT) -pipe -W -Wall -fPIC +LD = g++ +LDFLAGS = $(OPT) +SOFLAGS = -shared -Wl,-x +endif + ifeq ($(ARCH),macosx) # MacOS X with cc (GNU cc 2.95.2 and gcc 3.3) -MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) -MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) CXX = g++ CXXFLAGS = $(OPT2) -pipe -Wall -W -Woverloaded-virtual -LD = $(MACOSXTARGET) g++ -LDFLAGS = $(OPT2) -bind_at_load +LD = g++ +LDFLAGS = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET) # The SOFLAGS will be used to create the .dylib, # the .so will be created separately ifeq ($(subst $(MACOSX_MINOR),,1234),1234) @@ -197,20 +379,18 @@ ifneq ($(subst $(MACOSX_MINOR),,12),12) UNDEFOPT = suppress LD = g++ endif -SOFLAGS = -dynamiclib -single_module -undefined $(UNDEFOPT) +SOFLAGS = -dynamiclib -single_module -undefined $(UNDEFOPT) -install_name $(CURDIR)/ endif ifeq ($(ARCH),macosxicc) # MacOS X with Intel icc compiler -MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) -MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) ifeq ($(MACOSX_MINOR),5) MACOSX_MINOR := 4 endif CXX = icc CXXFLAGS = $(OPT) -fPIC -wd1476 -LD = $(MACOSXTARGET) icpc -LDFLAGS = $(OPT) +LD = icpc +LDFLAGS = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET) # The SOFLAGS will be used to create the .dylib, # the .so will be created separately ifeq ($(subst $(MACOSX_MINOR),,1234),1234) @@ -218,18 +398,16 @@ DllSuf = so else DllSuf = dylib endif -SOFLAGS = -dynamiclib -single_module -undefined dynamic_lookup +SOFLAGS = -dynamiclib -single_module -undefined dynamic_lookup -install_name $(CURDIR)/ endif ifeq ($(ARCH),macosx64) # MacOS X >= 10.4 with gcc 64 bit mode (GNU gcc 4.*) # Only specific option (-m64) comes from root-config -MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) -MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) CXX = g++ CXXFLAGS = $(OPT2) -pipe -Wall -W -Woverloaded-virtual -LD = $(MACOSXTARGET) g++ -m64 -LDFLAGS = $(OPT2) -bind_at_load +LD = g++ +LDFLAGS = $(OPT2) -mmacosx-version-min=$(MACOSXTARGET) # The SOFLAGS will be used to create the .dylib, # the .so will be created separately ifeq ($(subst $(MACOSX_MINOR),,1234),1234) @@ -237,26 +415,87 @@ DllSuf = so else DllSuf = dylib endif -SOFLAGS = -m64 -dynamiclib -single_module -undefined dynamic_lookup +SOFLAGS = -dynamiclib -single_module -undefined dynamic_lookup -install_name $(CURDIR)/ endif -ifeq ($(ARCH),macosxxlc) -# MacOS X with IBM xlC compiler -MACOSX_MINOR := $(shell sw_vers | sed -n 's/ProductVersion://p' | cut -d . -f 2) -MACOSXTARGET := MACOSX_DEPLOYMENT_TARGET=10.$(MACOSX_MINOR) -CXX = xlC -CXXFLAGS = $(OPT) -LD = $(MACOSXTARGET) xlC -LDFLAGS = $(OPT) -Wl,-bind_at_load -# The SOFLAGS will be used to create the .dylib, -# the .so will be created separately -DllSuf = dylib -UNDEFOPT = dynamic_lookup -ifneq ($(subst $(MACOSX_MINOR),,12),12) -UNDEFOPT = suppress -LD = xlC +ifeq ($(ARCH),win32) +# Windows with the VC++ compiler +VC_MAJOR := $(shell unset VS_UNICODE_OUTPUT; cl.exe 2>&1 | awk '{ if (NR==1) print $$(NF-2) }' | \ + cut -d'.' -f1) +ObjSuf = obj +SrcSuf = cxx +ExeSuf = .exe +DllSuf = dll +OutPutOpt = -out: +CXX = cl +ifeq (debug,$(findstring debug,$(ROOTBUILD))) +CXXOPT = -Z7 +LDOPT = -debug +else +ifneq ($(findstring debug, $(strip $(shell $(ROOTCONFIG) --config))),) +CXXOPT = -Z7 +LDOPT = -debug +else +CXXOPT = -O2 +LDOPT = -opt:ref +endif endif -SOFLAGS = -qmkshrobj -single_module -undefined $(UNDEFOPT) +ROOTINCDIR := -I$(shell cygpath -m `$(ROOTCONFIG) --incdir`) +CXXFLAGS = $(CXXOPT) -nologo $(ROOTINCDIR) -FIw32pragma.h +LD = link +LDFLAGS = $(LDOPT) -nologo +SOFLAGS = -DLL + +EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS) +ifneq (,$(findstring $(VC_MAJOR),14 15 16)) +MT_EXE = mt -nologo -manifest $@.manifest -outputresource:$@\;1; rm -f $@.manifest +MT_DLL = mt -nologo -manifest $@.manifest -outputresource:$@\;2; rm -f $@.manifest +else +MT_EXE = +MT_DLL = +endif +endif + +ifeq ($(ARCH),win32gcc) +# Windows with gcc +DllSuf = dll +ExeSuf = .exe +CXX = g++ +CXXFLAGS = $(OPT) -pipe -Wall -Woverloaded-virtual -I/usr/X11R6/include +LD = g++ +LDFLAGS = $(OPT) -Wl,--enable-auto-import \ + -Wl,--enable-runtime-pseudo-reloc \ + -L/usr/X11R6/lib +SOFLAGS = -shared -Wl,--enable-auto-image-base \ + -Wl,--export-all-symbols +EXPLLINKLIBS = $(ROOTLIBS) $(ROOTGLIBS) +endif + +ifeq ($(CXX),) +$(error $(ARCH) invalid architecture) +endif + +CXXFLAGS += $(ROOTCFLAGS) +LDFLAGS += $(ROOTLDFLAGS) +LIBS = $(ROOTLIBS) $(SYSLIBS) +GLIBS = $(ROOTGLIBS) $(SYSLIBS) + +ifneq ($(ALTCC),) + CC = $(ALTCC) +endif +ifneq ($(ALTCXX),) + CXX = $(ALTCXX) +endif +ifneq ($(ALTF77),) + F77 = $(ALTF77) +endif +ifneq ($(ALTLD),) + LD = $(ALTLD) +endif + +ifneq ($(findstring g++, $(CXX)),) +GCC_MAJOR := $(shell $(CXX) -dumpversion 2>&1 | cut -d'.' -f1) +GCC_MINOR := $(shell $(CXX) -dumpversion 2>&1 | cut -d'.' -f2) endif CXXFLAGS += $(ROOTCFLAGS) diff --git a/NPSimulation/GNUmakefile b/NPSimulation/GNUmakefile index fb24e6a62bcdcd5af07c6b674298d5e14aad3d2d..48cda1a954be9eaea11353c4a0c336428ece48a0 100644 --- a/NPSimulation/GNUmakefile +++ b/NPSimulation/GNUmakefile @@ -15,6 +15,7 @@ endif # Result of compilation is put in (./$G4WORKDIR/bin/$G4SYSTEM/) # to execute your programm : ./$G4WORKDIR/bin/$G4SYSTEM/Simulation xx.reaction xx.detector G4WORKDIR = ./ +G4BIN = ./ CPPFLAGS += $(shell root-config --cflags) CPPFLAGS += -I$(NPLIB)/include