Makefile
1include make.inc
2
3#Name of libraries to create
4LIB_PHOTOSPP_SO = libPhotospp.so
5LIB_PHOTOSPP_A = libPhotospp.a
6LIB_PHOTOSPP_HEPEVT_SO = libPhotosppHEPEVT.so
7LIB_PHOTOSPP_HEPEVT_A = libPhotosppHEPEVT.a
8LIB_PHOTOSPP_HEPMC_SO = libPhotosppHepMC.so
9LIB_PHOTOSPP_HEPMC_A = libPhotosppHepMC.a
10LIB_PHOTOSPP_HEPMC3_SO = libPhotosppHepMC3.so
11LIB_PHOTOSPP_HEPMC3_A = libPhotosppHepMC3.a
12
13
14#directories containing source code
15EVENT_RECORD_INTERFACE_DIR = eventRecordInterfaces
16PHOTOS_C_INTERFACE_DIR = photosCInterfaces
17PHOTOS_C_DIR = photos-C
18UTILITIES_DIR = utilities
19
20LIB_PHOTOSPP_OBJECTS = src/$(PHOTOS_C_INTERFACE_DIR)/*.o \
21 src/$(PHOTOS_C_DIR)/*.o \
22 src/$(UTILITIES_DIR)/*.o
23
24LIB_PHOTOSPP_HEPEVT_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHEPEVTParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHEPEVTEvent.o
25LIB_PHOTOSPP_HEPMC_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMCParticle.o src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMCEvent.o
26LIB_PHOTOSPP_HEPMC3_OBJECTS = src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMC3Particle.o src/$(EVENT_RECORD_INTERFACE_DIR)/PhotosHepMC3Event.o
27
28##### Link objects to make library ######
29all: 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)
36ifneq ($(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)
40endif
41ifneq ($(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)
45endif
46
47 @echo "##################################################################"
48 @echo " Photos C++ libraries created and moved to lib/ directory "
49 @echo "##################################################################"
50 @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 "##################################################################"
56
57include_dir:
58 mkdir -p include/Photos
59
60lib_dir:
61 mkdir -p lib
62
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
67
68$(PHOTOS_C_INTERFACE_DIR):
69 +make -C src/$(PHOTOS_C_INTERFACE_DIR)
70 cp src/$(PHOTOS_C_INTERFACE_DIR)/*.h include/Photos
71
72$(UTILITIES_DIR):
73 +make -C src/$(UTILITIES_DIR)
74 cp src/$(UTILITIES_DIR)/*.h include/Photos
75
76$(PHOTOS_C_DIR):
77 +make -C src/$(PHOTOS_C_DIR)
78 cp src/$(PHOTOS_C_DIR)/*.h include/Photos
79
80install:
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)/
87clean:
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)
92 rm -f *~
93
94Clean: clean
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
100
101make.inc:
102 @echo ""
103 @echo "Please execute ./configure first!"
104 @echo ""
105 @false
106
107always:
108 @true