C++InterfacetoTauola
Makefile
1 include make.inc
2 
3 
4 #Name of libraries to create
5 LIB_TAUOLA_CXX_INT_SO = libTauolaCxxInterface.so
6 LIB_TAUOLA_CXX_INT_A = libTauolaCxxInterface.a
7 LIB_TAUOLA_HEPMC3_INT_SO = libTauolaHepMC3.so
8 LIB_TAUOLA_HEPMC3_INT_A = libTauolaHepMC3.a
9 LIB_TAUOLA_HEPMC_INT_SO = libTauolaHepMC.so
10 LIB_TAUOLA_HEPMC_INT_A = libTauolaHepMC.a
11 LIB_TAUOLA_HEPEVT_INT_SO = libTauolaHEPEVT.so
12 LIB_TAUOLA_HEPEVT_INT_A = libTauolaHEPEVT.a
13 LIB_TAUOLA_FORTRAN_SO = libTauolaFortran.so
14 LIB_TAUOLA_FORTRAN_A = libTauolaFortran.a
15 
16 TAUOLA_CXX_INT_OBJECTS = src/$(FORTRAN_TAUOLA_INTERFACE_DIR)/*.o \
17  src/$(C_TAUOLA_INTERFACE_DIR)/*.o \
18  src/$(UTILITIES_DIR)/*.o
19 
20 TAUOLA_HEPMC3_INT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMC3Particle.o src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMC3Event.o
21 TAUOLA_HEPMC_INT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMCParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/TauolaHepMCEvent.o
22 TAUOLA_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
25 ifneq "$(wildcard tauola-fortran/tauola-modified/new-currents/ )" ""
26 
27 TAUOLA_RCHL_OBJECTS = tauola-fortran/tauola-modified/new-currents/RChL-currents/*/*.o \
28  tauola-fortran/tauola-modified/new-currents/other-currents/*.o
29 
30 TAUOLA_FORTRAN_DIR = tauola-fortran/tauola-modified
31 else
32 TAUOLA_RCHL_OBJECTS =
33 TAUOLA_FORTRAN_DIR = tauola-fortran/tauola
34 endif
35 
36 TAUOLA_FORTRAN_OBJECTS = $(TAUOLA_FORTRAN_DIR)/*.o $(TAUOLA_RCHL_OBJECTS)
37 
38 #directories containing source code
39 EVENT_RECORD_INTERFACE_DIR = eventRecordInterfaces
40 FORTRAN_TAUOLA_INTERFACE_DIR = tauolaFortranInterfaces
41 C_TAUOLA_INTERFACE_DIR = tauolaCInterfaces
42 UTILITIES_DIR = utilities
43 
44 ##### Link objects to make library ######
45 all: tauola_fortran src tau_spinner
46 
47 install:
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 
55 src: 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 
68 ifneq ($(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)
72 endif
73 ifneq ($(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 
78 endif
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 ########
92 include_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 
112 tau_spinner: src
113 ifeq ($(MAKE_TAU_SPINNER),yes)
114  make libTauSpinner -C TauSpinner
115  make move -C TauSpinner
116 endif
117 
118 tauola_fortran:
119 ifneq "$(wildcard tauola-fortran/tauola-F )" ""
120  make 10kD-all -C tauola-fortran/photos-F
121  make CLEO -C tauola-fortran/tauola-F
122 else
123  echo "\nUsing pre-constructed 'tauola-fortran/tauola'\n"
124 endif
125  make -C $(TAUOLA_FORTRAN_DIR)
126  @echo "#################################################"
127  @echo " tauola-fortran compiled successfully. "
128  @echo "#################################################"
129  @true
130 
131 athena: 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 
136 athena_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 
144 clean_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 
150 clean: clean_src
151 ifneq "$(wildcard tauola-fortran/tauola-F )" ""
152  make Clean -C tauola-fortran
153 endif
154  make clean -C $(TAUOLA_FORTRAN_DIR)
155  make clean -C TauSpinner
156  rm -f *~
157 
158 Clean: 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 
165 make.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 
172 always:
173  @true