/[PAMELA software]/PamCut/makefile
ViewVC logotype

Contents of /PamCut/makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (show annotations) (download)
Wed Mar 25 17:38:09 2015 UTC (9 years, 11 months ago) by pam-fi
Branch: MAIN
CVS Tags: HEAD
Changes since 1.11: +2 -2 lines
Error occurred while calculating annotation data.
Port to 10th reduction.

Some cuts have been modified to use the extended track objects introduced with 10th reduction software. Some others have still to be ported.
Git ref: 4bd0c70baf73c56bddc08dca365cbff243ad8bc8
(Nicola)

1 #
2 # ************ PamCut makefile ************
3 #
4 # Author: Nicola Mori
5 #
6 # This makefile will produce a cut library libPamCut.so. In the "Build options"
7 # section the various compilation options can be set; they will propagate to the
8 # whole project.
9 #
10
11
12 # ------------------------------- Build options ----------------------------#
13 #
14 # Normally you will not have the necessity to modify what lies below, if you
15 # correctly specified the names for the submakefiles in include.mk. Modify
16 # the options below to set optimization flags, compiler name and so on.
17 #
18
19 # C++ compiler and linker
20 C++ = g++
21
22 # Optimization flags.
23 # 1) Use -O, -O1, -O2, -O3 to optimize for speed or -g, -g1, -g2, -g3
24 # for debugging (slower execution).
25 # 2) Uncomment -DDEBUGPAMCUT to enable debug sections in the .cpp code (these sections must be included between
26 # "#ifdef DEBUGPAMCUT" and "#endif"). Note that if you
27 # use debug instructions also in the .h code (headers) you will also have to add -DDEBUGPAMCUT
28 # to the compiler options for the main analysis program.
29 # 3) Since this is a general compiler flag it can also be used, eg., to set the -m32 flag
30 OPTIMIZE = -O3 -fPIC ${PAM_BIT} #-DDEBUGPAMCUT
31
32 # Linker flags
33 # The flags defined here will be directly inserted into the linker invocation. Place here the
34 # -m32 flag, for example.
35 LINKERFLAGS = ${PAM_BIT}
36
37 # Library flags
38 # Pamela software is modular, so some libraries may not be available in some istallations.
39 # To avoid linking problems, here you can define flags to exclude those parts of the
40 # PamCut software which make use of unavailable libraries. Remember to place
41 # the code to be excluded between proper preprocessor directives. See the documentation or the cut
42 # TofNucleiZCut for an example.
43 # Since PamCut headers may refer to the optional libraries, it's important to define the same
44 # flags when compiling the analysis code. Otherwise, analysis code will include PamCut headers which,
45 # if no exclusion flag is set, will try to include optional software headers.
46 # Conversely, if you use optional libraries remember to tell it to the linker.
47 #
48 # Excluded cuts and actions:
49 # NO_CALONUCLEI: CaloNucleiZCut
50 # NO_TRKNUCLEI: TrkNucleiZCut
51 # NO_TOFNUCLEI: TofNucleiZCut
52 # NO_CALOPRESAMPLER: ReprocessCaloAction
53 # NO_CALOAXIS: CaloAngleCut, CaloCrossCut, CaloGeomCut, CaloGeomYSensCut, CaloIonCut, CaloNHitCut,
54 # CaloNotIntCut (reduced functionality), CaloTrackChi2Cut, CaloTrackCut,
55 # TrackRedGeomCut (reduced functionality), CaloChi2HistoAction, CaloAxisChi2VsRigHistoAction
56 EXCLUSIONFLAGS = -DNO_CALONUCLEI -DNO_TRKNUCLEI -DNO_TOFNUCLEI -DNO_CALOPRESAMPLER # -DNO_CALOAXIS
57
58 # Put below the files on which every .cpp must depend on, ie., those files that,
59 # if modified, will trigger a complete recompilation of the project.
60 COMMONDEPS = makefile
61
62 # The file include.mk contains the inclusion of all the sub-makefiles (subdir.mk)
63 # in the project. Includes for new cuts must be added there and not below...
64 -include include.mk
65
66 #-------------------------------- Make body --------------------------------#
67 #
68 # Below the make commands are defined. There are no options to set in this section,
69 # so it has to be modified only in case of radical changes to the make procedure.
70
71 # Remove command for clean
72 RM := rm -rf
73
74 # Additional dependencies from headers of other software (PAMELA, ROOT)
75 ifneq ($(MAKECMDGOALS),clean)
76 ifneq ($(strip $(CPP_DEPS)),)
77 -include $(CPP_DEPS)
78 endif
79 endif
80
81 # All Target
82 all: libPamCut.so
83 @echo
84 @echo "**** Compiler version and compilation host ****"
85 @$(C++) --version | grep GCC
86 @hostname
87 @echo "**** Compilation flags ****"
88 @echo OPTIMIZE: $(OPTIMIZE)
89 @echo LINKERFLAGS: $(LINKERFLAGS)
90 @echo EXCLUSIONFLAGS: $(EXCLUSIONFLAGS)
91 @echo
92
93 # Tool invocations
94 libPamCut.so: $(OBJS) $(USER_OBJS)
95 @echo 'Building target: $@'
96 @echo 'Invoking: GCC C++ Linker'
97 $(C++) -shared $(LINKERFLAGS) -o"libPamCut.so" $(OBJS)
98 @echo 'Finished building target: $@'
99 @echo ' '
100
101 # Other Targets
102 clean:
103 -$(RM) $(CPP_DEPS) $(OBJS) libPamCut.so
104 -@echo ' '
105
106 distclean:
107 @rm -f ${PAM_LIB}/libPamCut.so
108 @rm -rf ${PAM_INC}/PamCut
109 @echo Installed files successfully removed.
110
111 install:
112 @if [[ "${PAM_INC}" == "" || "${PAM_LIB}" == "" ]]; then \
113 echo Pamela environment not set. ; \
114 else \
115 rootdir=`pwd`; \
116 for file in `find -name "*.h"`; do \
117 dir=`dirname $${file} | sed 's/.\///'`; \
118 mkdir -p ${PAM_INC}/PamCut/$${dir}; \
119 cp -u $${file} ${PAM_INC}/PamCut/$${dir}; \
120 done; \
121 cp -u libPamCut.so ${PAM_LIB}; \
122 fi
123 @echo PamCut installed.
124
125 .PHONY: all clean distclean install
126

  ViewVC Help
Powered by ViewVC 1.1.23