4#Name of libraries to create
5LIB_TAUOLA_CXX_INT_SO = libTauolaCxxInterface.so
6LIB_TAUOLA_CXX_INT_A = libTauolaCxxInterface.a
7LIB_TAUOLA_HEPMC3_INT_SO = libTauolaHepMC3.so
8LIB_TAUOLA_HEPMC3_INT_A = libTauolaHepMC3.a
9LIB_TAUOLA_HEPMC_INT_SO = libTauolaHepMC.so
10LIB_TAUOLA_HEPMC_INT_A = libTauolaHepMC.a
11LIB_TAUOLA_HEPEVT_INT_SO = libTauolaHEPEVT.so
12LIB_TAUOLA_HEPEVT_INT_A = libTauolaHEPEVT.a
13LIB_TAUOLA_FORTRAN_SO = libTauolaFortran.so
14LIB_TAUOLA_FORTRAN_A = libTauolaFortran.a
16TAUOLA_CXX_INT_OBJECTS = src/$(FORTRAN_TAUOLA_INTERFACE_DIR)/*.o \
17 src/$(C_TAUOLA_INTERFACE_DIR)/*.o \
18 src/$(UTILITIES_DIR)/*.o
20TAUOLA_HEPMC3_INT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMC3Particle.o src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMC3Event.o
21TAUOLA_HEPMC_INT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMCParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMCEvent.o
22TAUOLA_HEPEVT_INT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHEPEVTParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHEPEVTEvent.o
24# If RChL currents exist - add additional objects to the library
25ifneq "$(wildcard tauola-fortran/tauola-modified/new-currents/ )" ""
27TAUOLA_RCHL_OBJECTS = tauola-fortran/tauola-modified/new-currents/RChL-currents/*/*.o \
28 tauola-fortran/tauola-modified/new-currents/other-currents/*.o
30TAUOLA_FORTRAN_DIR = tauola-fortran/tauola-modified
33TAUOLA_FORTRAN_DIR = tauola-fortran/tauola
36TAUOLA_FORTRAN_OBJECTS = $(TAUOLA_FORTRAN_DIR)/*.o $(TAUOLA_RCHL_OBJECTS)
38#directories containing source code
39EVENT_RECORD_INTERFACE_DIR = eventRecordInterfaces
40FORTRAN_TAUOLA_INTERFACE_DIR = tauolaFortranInterfaces
41C_TAUOLA_INTERFACE_DIR = tauolaCInterfaces
42UTILITIES_DIR = utilities
44##### Link objects to make library ######
45all: tauola_fortran src tau_spinner
48 mkdir -p $(DESTDIR)/$(PREFIX)/include/Tauola
49 install -m 644 include/Tauola/* $(DESTDIR)/$(PREFIX)/include/Tauola/.
50 mkdir -p $(DESTDIR)/$(LIBDIR)
51 install lib/*so.$(LIB_VER) $(DESTDIR)/$(LIBDIR)/
52 install lib/*a $(DESTDIR)/$(LIBDIR)/
53 cp -P lib/*so $(DESTDIR)/$(LIBDIR)/
55src: include_dir $(EVENT_RECORD_INTERFACE_DIR) $(FORTRAN_TAUOLA_INTERFACE_DIR) $(C_TAUOLA_INTERFACE_DIR) $(UTILITIES_DIR)
56 ar cr lib/$(LIB_TAUOLA_CXX_INT_A) $(TAUOLA_CXX_INT_OBJECTS)
57 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_TAUOLA_CXX_INT_SO).$(LIB_VER) -Wl,-soname,$(LIB_TAUOLA_CXX_INT_SO) $(TAUOLA_CXX_INT_OBJECTS)
58 ln -sf $(LIB_TAUOLA_CXX_INT_SO).$(LIB_VER) lib/$(LIB_TAUOLA_CXX_INT_SO)
60 ar cr lib/$(LIB_TAUOLA_FORTRAN_A) $(TAUOLA_FORTRAN_OBJECTS)
61 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_TAUOLA_FORTRAN_SO).$(LIB_VER) -Wl,-soname,$(LIB_TAUOLA_FORTRAN_SO) $(TAUOLA_FORTRAN_OBJECTS)
62 ln -sf $(LIB_TAUOLA_FORTRAN_SO).$(LIB_VER) lib/$(LIB_TAUOLA_FORTRAN_SO)
64 ar cr lib/$(LIB_TAUOLA_HEPEVT_INT_A) $(TAUOLA_HEPEVT_INT_OBJECTS)
65 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_TAUOLA_HEPEVT_INT_SO).$(LIB_VER) -Wl,-soname,$(LIB_TAUOLA_HEPEVT_INT_SO) $(TAUOLA_HEPEVT_INT_OBJECTS)
66 ln -sf $(LIB_TAUOLA_HEPEVT_INT_SO).$(LIB_VER) lib/$(LIB_TAUOLA_HEPEVT_INT_SO)
68ifneq ($(HEPMC3LOCATION), )
69 ar cr lib/$(LIB_TAUOLA_HEPMC3_INT_A) $(TAUOLA_HEPMC3_INT_OBJECTS)
70 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_TAUOLA_HEPMC3_INT_SO).$(LIB_VER) -Wl,-soname,$(LIB_TAUOLA_HEPMC3_INT_SO) $(TAUOLA_HEPMC3_INT_OBJECTS)
71 ln -sf $(LIB_TAUOLA_HEPMC3_INT_SO).$(LIB_VER) lib/$(LIB_TAUOLA_HEPMC3_INT_SO)
73ifneq ($(HEPMCLOCATION), )
74 ar cr lib/$(LIB_TAUOLA_HEPMC_INT_A) $(TAUOLA_HEPMC_INT_OBJECTS)
75 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_TAUOLA_HEPMC_INT_SO).$(LIB_VER) -Wl,-soname,$(LIB_TAUOLA_HEPMC_INT_SO) $(TAUOLA_HEPMC_INT_OBJECTS)
76 ln -sf $(LIB_TAUOLA_HEPMC_INT_SO).$(LIB_VER) lib/$(LIB_TAUOLA_HEPMC_INT_SO)
80 @echo "##################################################################"
81 @echo " Tauola C++ Interface library created and moved to lib/ directory "
82 @echo "##################################################################"
84 @echo "##################################################################"
85 @echo " To run examples, cd examples/ directory and there './configure' "
86 @echo " and 'make' again. Examples require Pythia8, ROOT and MC-Tester "
87 @echo " installed. For details see examples/README. "
88 @echo "##################################################################"
91####### Make object files ########
94 mkdir -p include/Tauola
96$(FORTRAN_TAUOLA_INTERFACE_DIR):
97 make -C src/$(FORTRAN_TAUOLA_INTERFACE_DIR)
98 cp src/$(FORTRAN_TAUOLA_INTERFACE_DIR)/*.h include/Tauola
100$(EVENT_RECORD_INTERFACE_DIR):
101 make -C src/$(EVENT_RECORD_INTERFACE_DIR)
102 cp src/$(EVENT_RECORD_INTERFACE_DIR)/*.h include/Tauola
104$(C_TAUOLA_INTERFACE_DIR):
105 make -C src/$(C_TAUOLA_INTERFACE_DIR)
106 cp src/$(C_TAUOLA_INTERFACE_DIR)/*.h include/Tauola
109 make -C src/$(UTILITIES_DIR)
110 cp src/$(UTILITIES_DIR)/*.h include/Tauola
113ifeq ($(MAKE_TAU_SPINNER),yes)
114 make libTauSpinner -C TauSpinner
115 make move -C TauSpinner
119ifneq "$(wildcard tauola-fortran/tauola-F )" ""
120 make 10kD-all -C tauola-fortran/photos-F
121 make CLEO -C tauola-fortran/tauola-F
123 echo "\nUsing pre-constructed 'tauola-fortran/tauola'\n"
125 make -C $(TAUOLA_FORTRAN_DIR)
126 @echo "#################################################"
127 @echo " tauola-fortran compiled successfully. "
128 @echo "#################################################"
131athena: clean_src #modify for athena environment
133 cp -rf tauola-fortran/tauola-F tauola-fortran/tauola-F-BCP
134 ./platform/to-Athena.sh
136athena_revert: #revert from athena environment modification
139 rm -rf tauola-fortran/tauola-F
140 mv tauola-fortran/tauola-F-BCP tauola-fortran/tauola-F
141 rm -f platform/to-Athena.dependencies
145 make clean -C src/$(EVENT_RECORD_INTERFACE_DIR)
146 make clean -C src/$(FORTRAN_TAUOLA_INTERFACE_DIR)
147 make clean -C src/$(C_TAUOLA_INTERFACE_DIR)
148 make clean -C src/$(UTILITIES_DIR)
151ifneq "$(wildcard tauola-fortran/tauola-F )" ""
152 make Clean -C tauola-fortran
154 make clean -C $(TAUOLA_FORTRAN_DIR)
155 make clean -C TauSpinner
159 rm -f lib/* include/Tauola/*
160 rmdir -p include/Tauola
161 rm -rf config.log config.status autom4te.cache configure.paths.sh
162 rm -f platform/make.inc make.inc
163 rm -f examples/make.inc
167 @echo "Please execute ./configure first!"
168 @echo "(Consider using 'source platform/afs.paths.sh' [or .csh] first)"