3 #Name of libraries to create
4 LIB_PHOTOSPP_SO = libPhotospp.so
5 LIB_PHOTOSPP_A = libPhotospp.a
6 LIB_PHOTOSPP_HEPEVT_SO = libPhotosppHEPEVT.so
7 LIB_PHOTOSPP_HEPEVT_A = libPhotosppHEPEVT.a
8 LIB_PHOTOSPP_HEPMC_SO = libPhotosppHepMC.so
9 LIB_PHOTOSPP_HEPMC_A = libPhotosppHepMC.a
10 LIB_PHOTOSPP_HEPMC3_SO = libPhotosppHepMC3.so
11 LIB_PHOTOSPP_HEPMC3_A = libPhotosppHepMC3.a
14 #directories containing source code
15 EVENT_RECORD_INTERFACE_DIR = eventRecordInterfaces
16 PHOTOS_C_INTERFACE_DIR = photosCInterfaces
17 PHOTOS_C_DIR = photos-C
18 UTILITIES_DIR = utilities
20 LIB_PHOTOSPP_OBJECTS = src/$(PHOTOS_C_INTERFACE_DIR)/*.o \
21 src/$(PHOTOS_C_DIR)/*.o \
22 src/$(UTILITIES_DIR)/*.o
24 LIB_PHOTOSPP_HEPEVT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHEPEVTParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHEPEVTEvent.o
25 LIB_PHOTOSPP_HEPMC_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMCParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMCEvent.o
26 LIB_PHOTOSPP_HEPMC3_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMC3Particle.o src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMC3Event.o
28 ##### Link objects to make library ######
29 all: include_dir lib_dir $(EVENT_RECORD_INTERFACE_DIR) $(FORTRAN_PHOTOS_INTERFACE_DIR) $(PHOTOS_C_INTERFACE_DIR) $(PHOTOS_C_DIR) $(UTILITIES_DIR)
30 ar cr lib/$(LIB_PHOTOSPP_A) $(LIB_PHOTOSPP_OBJECTS)
31 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_PHOTOSPP_SO).$(LIB_VER) -Wl,-soname,$(LIB_PHOTOSPP_SO) $(LIB_PHOTOSPP_OBJECTS)
32 ar cr lib/$(LIB_PHOTOSPP_HEPEVT_A) $(LIB_PHOTOSPP_HEPEVT_OBJECTS)
33 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_PHOTOSPP_HEPEVT_SO).$(LIB_VER) -Wl,-soname,$(LIB_PHOTOSPP_HEPEVT_SO) $(LIB_PHOTOSPP_HEPEVT_OBJECTS)
34 ln -sf $(LIB_PHOTOSPP_SO).$(LIB_VER) lib/$(LIB_PHOTOSPP_SO)
35 ln -sf $(LIB_PHOTOSPP_HEPEVT_SO).$(LIB_VER) lib/$(LIB_PHOTOSPP_HEPEVT_SO)
36 ifneq ($(HEPMCLOCATION), )
37 ar cr lib/$(LIB_PHOTOSPP_HEPMC_A) $(LIB_PHOTOSPP_HEPMC_OBJECTS)
38 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_PHOTOSPP_HEPMC_SO).$(LIB_VER) -Wl,-soname,$(LIB_PHOTOSPP_HEPMC_SO) $(LIB_PHOTOSPP_HEPMC_OBJECTS)
39 ln -sf $(LIB_PHOTOSPP_HEPMC_SO).$(LIB_VER) lib/$(LIB_PHOTOSPP_HEPMC_SO)
41 ifneq ($(HEPMC3LOCATION), )
42 ar cr lib/$(LIB_PHOTOSPP_HEPMC3_A) $(LIB_PHOTOSPP_HEPMC3_OBJECTS)
43 $(LD) $(LDFLAGS) $(SOFLAGS) -o lib/$(LIB_PHOTOSPP_HEPMC3_SO).$(LIB_VER) -Wl,-soname,$(LIB_PHOTOSPP_HEPMC3_SO) $(LIB_PHOTOSPP_HEPMC3_OBJECTS)
44 ln -sf $(LIB_PHOTOSPP_HEPMC3_SO).$(LIB_VER) lib/$(LIB_PHOTOSPP_HEPMC3_SO)
47 @echo "##################################################################"
48 @echo " Photos C++ libraries created and moved to lib/ directory "
49 @echo "##################################################################"
51 @echo "##################################################################"
52 @echo " To run examples, cd examples/ directory and there './configure' "
53 @echo " and 'make' again. Examples require Pythia8, ROOT and MC-Tester "
54 @echo " installed. For details see examples/README. "
55 @echo "##################################################################"
58 mkdir -p include/Photos
63 ####### Make object files ########
64 $(EVENT_RECORD_INTERFACE_DIR):
65 +make -C src/$(EVENT_RECORD_INTERFACE_DIR)
66 cp src/$(EVENT_RECORD_INTERFACE_DIR)/*.h include/Photos
68 $(PHOTOS_C_INTERFACE_DIR):
69 +make -C src/$(PHOTOS_C_INTERFACE_DIR)
70 cp src/$(PHOTOS_C_INTERFACE_DIR)/*.h include/Photos
73 +make -C src/$(UTILITIES_DIR)
74 cp src/$(UTILITIES_DIR)/*.h include/Photos
77 +make -C src/$(PHOTOS_C_DIR)
78 cp src/$(PHOTOS_C_DIR)/*.h include/Photos
81 mkdir -p $(DESTDIR)$(PREFIX)/include/Photos/
82 install -m 644 include/Photos/* $(DESTDIR)$(PREFIX)/include/Photos/
83 mkdir -p $(DESTDIR)$(LIBDIR)/
84 install lib/*.$(LIB_VER) $(DESTDIR)$(LIBDIR)/
85 install lib/*.a $(DESTDIR)$(LIBDIR)/
86 cp -P lib/*.so $(DESTDIR)$(LIBDIR)/
88 make clean -C src/$(EVENT_RECORD_INTERFACE_DIR)
89 make clean -C src/$(PHOTOS_C_INTERFACE_DIR)
90 make clean -C src/$(PHOTOS_C_DIR)
91 make clean -C src/$(UTILITIES_DIR)
95 rm -f lib/* include/Photos/*
96 rm -rf config.log config.status autom4te.cache
97 rm -rf configure.paths.sh configure.paths.csh
98 rm -f platform/make.inc make.inc
99 rm -f examples/make.inc
103 @echo "Please execute ./configure first!"