File indexing completed on 2024-04-06 11:57:57
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 PKGNAME := MusEcal
0012
0013 MusEcal := .
0014
0015
0016
0017
0018 ARCH := $(shell root-config --arch)
0019
0020
0021 OBJSUFFIX := o
0022 DEPSUFFIX := d
0023 DLLSUFFIX := so
0024
0025
0026 OBJDIR := .o
0027 DEPDIR := .d
0028 BINDIR := $(MusEcal)/bin
0029
0030
0031 SOLIBDIR := $(MusEcal)/lib
0032 SOLIB := $(SOLIBDIR)/lib$(PKGNAME).$(DLLSUFFIX)
0033
0034 __dummy := $(shell mkdir -p $(OBJDIR) $(DEPDIR) $(BINDIR) $(SOLIBDIR))
0035
0036
0037 CXX := g++
0038 LD := g++
0039 OUTPUTOPT := -o
0040 OPTFLAGS := -g -O2 -Wall -fPIC -Wno-deprecated
0041 CXXFLAGS := $(OPTFLAGS)
0042 LDFLAGS := -shared
0043 LIBS :=
0044
0045
0046 -include $(ARCH).mk
0047
0048
0049
0050
0051 MODULES := $(subst /module.mk,,$(wildcard */module.mk))
0052
0053 __dummy := $(shell ./genmak.sh $(MODULES))
0054
0055 all: lib prog
0056
0057
0058 SRC :=
0059 PROG :=
0060 PROGSRC :=
0061
0062
0063 -include gen.mk
0064
0065
0066 OBJS := $(addprefix ${OBJDIR}/, $(addsuffix .$(OBJSUFFIX), $(SRC)))
0067 DEPS := $(addprefix ${DEPDIR}/, $(addsuffix .$(DEPSUFFIX), $(SRC)))
0068 DEPS += $(addprefix ${DEPDIR}/, $(addsuffix .$(DEPSUFFIX), $(PROGSRC)))
0069 CXXFLAGS += -I. -I.. -I${MECore}/src $(patsubst %, -I%, $(MODULES))
0070
0071
0072
0073 ROOTCFLAGS := $(shell root-config --cflags)
0074
0075 CMSSW_LIBS = -L$(subst :, -L, $(LD_LIBRARY_PATH) ) -L/lib
0076 CMSSW_LIBS_PARSED= $(subst ;,, $(CMSSW_LIBS) )
0077 ROOTGLIBS := $(CMSSW_LIBS_PARSED)
0078 ROOTGLIBS += $(shell root-config --glibs) -lMinuit -lHtml -lEG -lThread
0079
0080 ROOTGLIBS += -lCalibCalorimetryEcalLaserAnalyzer
0081
0082
0083
0084
0085
0086
0087 ROOTCINT := rootcint
0088 CXXFLAGS += $(ROOTCFLAGS)
0089 LIBS += $(ROOTGLIBS)
0090
0091
0092
0093
0094
0095
0096 .PHONY: all clean
0097
0098 .PRECIOUS: ${OBJDIR}/%.bin %SK.cc %.hh
0099
0100 lib: $(SOLIB)
0101
0102 prog: $(PROG)
0103
0104
0105
0106
0107
0108 $(SOLIB): $(OBJS)
0109 @echo "Linking $^"
0110 @$(LD) $(LDFLAGS) $^ $(LIBS) $(FLIBS) $(OUTPUTOPT) $@
0111 @echo "Successfully completed $@"
0112
0113 -include dictgen.mk
0114
0115 cleanAll:
0116 @echo "Cleaning up..."
0117 @echo $(DEPS)
0118 @echo $(OBJS)
0119 @echo $(SOLIB)
0120 @echo $(PROG)
0121 @echo $(PROGSRC)
0122
0123
0124 clean:
0125 @echo "Cleaning up..."
0126 @echo $(DEPS)
0127 @echo $(OBJS)
0128 @echo $(SOLIB)
0129 @rm -f $(DEPS) $(OBJS) $(SOLIB) $(foreach i,$(MODULES),$(i)/dict_$(i).*) gen.mk dictgen.mk
0130
0131
0132
0133
0134 ${OBJDIR}/%.$(OBJSUFFIX) : %.cxx ${DEPDIR}/%.$(DEPSUFFIX)
0135 @echo "Compiling $<"
0136 @$(CXX) $(CXXFLAGS) -c $< -o $@
0137
0138 ${OBJDIR}/%.$(OBJSUFFIX) : %.cpp ${DEPDIR}/%.$(DEPSUFFIX)
0139 @echo "Compiling $<"
0140 @$(CXX) $(CXXFLAGS) -c $< -o $@
0141
0142 ${OBJDIR}/%.$(OBJSUFFIX) : %.cc ${DEPDIR}/%.$(DEPSUFFIX)
0143 @echo "Compiling $<"
0144 @$(CXX) $(CXXFLAGS) -c $< -o $@
0145
0146
0147 ${DEPDIR}/%.$(DEPSUFFIX): %.cxx
0148
0149 @$(CXX) -MM $(CXXFLAGS) $< \
0150 | sed 's|\('`basename $*`'\)\.o[ :]*|'$(OBJDIR)'/'`dirname $*`'/\1.o '$(DEPDIR)'/'`dirname $*`'/\1.d : |g' \
0151 > $@
0152
0153 ${DEPDIR}/%.$(DEPSUFFIX): %.cpp
0154
0155 @$(CXX) -MM $(CXXFLAGS) $< \
0156 | sed 's|\('`basename $*`'\)\.o[ :]*|'$(OBJDIR)'/'`dirname $*`'/\1.o '$(DEPDIR)'/'`dirname $*`'/\1.d : |g' \
0157 > $@
0158
0159 ${DEPDIR}/%.$(DEPSUFFIX): %.cc
0160
0161 @$(CXX) -MM $(CXXFLAGS) $< \
0162 | sed 's|\('`basename $*`'\)\.o[ :]*|'$(OBJDIR)'/'`dirname $*`'/\1.o '$(DEPDIR)'/'`dirname $*`'/\1.d : |g' \
0163 > $@
0164
0165
0166 ${OBJDIR}/%.bin: ${OBJDIR}/%.$(OBJSUFFIX) | $(SOLIB)
0167 @echo "Making $<"
0168 @$(CXX) $(CXXFLAGS) $(LIBS) -L$(SOLIBDIR) -l$(PKGNAME) $^ -o $@
0169
0170 ifneq ($(MAKECMDGOALS),clean)
0171 -include $(DEPS)
0172 endif
0173