C++ Interface to Tauola
Makefile
1include make.inc
2
3
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
15
16TAUOLA_CXX_INT_OBJECTS = src/$(FORTRAN_TAUOLA_INTERFACE_DIR)/*.o \
17 src/$(C_TAUOLA_INTERFACE_DIR)/*.o \
18 src/$(UTILITIES_DIR)/*.o
19
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
23
24# If RChL currents exist - add additional objects to the library
25ifneq "$(wildcard tauola-fortran/tauola-modified/new-currents/ )" ""
26
27TAUOLA_RCHL_OBJECTS = tauola-fortran/tauola-modified/new-currents/RChL-currents/*/*.o \
28 tauola-fortran/tauola-modified/new-currents/other-currents/*.o
29
30TAUOLA_FORTRAN_DIR = tauola-fortran/tauola-modified
31else
32TAUOLA_RCHL_OBJECTS =
33TAUOLA_FORTRAN_DIR = tauola-fortran/tauola
34endif
35
36TAUOLA_FORTRAN_OBJECTS = $(TAUOLA_FORTRAN_DIR)/*.o $(TAUOLA_RCHL_OBJECTS)
37
38#directories containing source code
39EVENT_RECORD_INTERFACE_DIR = eventRecordInterfaces
40FORTRAN_TAUOLA_INTERFACE_DIR = tauolaFortranInterfaces
41C_TAUOLA_INTERFACE_DIR = tauolaCInterfaces
42UTILITIES_DIR = utilities
43
44##### Link objects to make library ######
45all: tauola_fortran src tau_spinner
46
47install:
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)/
54
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)
59
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)
63
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)
67
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)
72endif
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)
77
78endif
79
80 @echo "##################################################################"
81 @echo " Tauola C++ Interface library created and moved to lib/ directory "
82 @echo "##################################################################"
83 @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 "##################################################################"
89
90
91####### Make object files ########
92include_dir:
93 mkdir -p include
94 mkdir -p include/Tauola
95
96$(FORTRAN_TAUOLA_INTERFACE_DIR):
97 make -C src/$(FORTRAN_TAUOLA_INTERFACE_DIR)
98 cp src/$(FORTRAN_TAUOLA_INTERFACE_DIR)/*.h include/Tauola
99
100$(EVENT_RECORD_INTERFACE_DIR):
101 make -C src/$(EVENT_RECORD_INTERFACE_DIR)
102 cp src/$(EVENT_RECORD_INTERFACE_DIR)/*.h include/Tauola
103
104$(C_TAUOLA_INTERFACE_DIR):
105 make -C src/$(C_TAUOLA_INTERFACE_DIR)
106 cp src/$(C_TAUOLA_INTERFACE_DIR)/*.h include/Tauola
107
108$(UTILITIES_DIR):
109 make -C src/$(UTILITIES_DIR)
110 cp src/$(UTILITIES_DIR)/*.h include/Tauola
111
112tau_spinner: src
113ifeq ($(MAKE_TAU_SPINNER),yes)
114 make libTauSpinner -C TauSpinner
115 make move -C TauSpinner
116endif
117
118tauola_fortran:
119ifneq "$(wildcard tauola-fortran/tauola-F )" ""
120 make 10kD-all -C tauola-fortran/photos-F
121 make CLEO -C tauola-fortran/tauola-F
122else
123 echo "\nUsing pre-constructed 'tauola-fortran/tauola'\n"
124endif
125 make -C $(TAUOLA_FORTRAN_DIR)
126 @echo "#################################################"
127 @echo " tauola-fortran compiled successfully. "
128 @echo "#################################################"
129 @true
130
131athena: clean_src #modify for athena environment
132 cp -rf src src-BCP
133 cp -rf tauola-fortran/tauola-F tauola-fortran/tauola-F-BCP
134 ./platform/to-Athena.sh
135
136athena_revert: #revert from athena environment modification
137 rm -rf src
138 mv src-BCP src
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
142 make clean
143
144clean_src:
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)
149
150clean: clean_src
151ifneq "$(wildcard tauola-fortran/tauola-F )" ""
152 make Clean -C tauola-fortran
153endif
154 make clean -C $(TAUOLA_FORTRAN_DIR)
155 make clean -C TauSpinner
156 rm -f *~
157
158Clean: clean
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
164
165make.inc:
166 @echo ""
167 @echo "Please execute ./configure first!"
168 @echo "(Consider using 'source platform/afs.paths.sh' [or .csh] first)"
169 @echo ""
170 @false
171
172always:
173 @true