## Load ROOT's Makefile include $(ROOTSYS)/etc/Makefile.arch ## Definitions DOLIBRARY = yes CURDIR = $(shell pwd) INCDIR = $(shell pwd)/include SRCDIR = $(shell pwd)/src OUTDIR = $(shell pwd)/out BINDIR = $(shell pwd)/bin LIBDIR = $(shell pwd)/lib DOCDIR = $(shell pwd)/doxy GSLCFLAGS = $(shell gsl-config --cflags) GSLLIBS = $(shell gsl-config --libs) CXXFLAGS += -I$(INCDIR) $(GSLCFLAGS) EXPLLINKLIBS += -lMathMore -lMinuit2 $(GSLLIBS) LIBS += $(GSLLIBS) -lMathMore -lMinuit2 EXEC = $(BINDIR)/DoFit #LIBRARY = $(LIBDIR)/libspectrum.so LIBRARY = $(LIBDIR)/libstart.so DIRECTORIES = $(LIBDIR) $(OUTDIR) $(BINDIR) INCS = $(INCDIR)/EnergyBin.hh $(INCDIR)/Band.hh $(INCDIR)/ComputeResults.hh $(INCDIR)/Config.hh \ $(INCDIR)/DataSummary.hh $(INCDIR)/FCNLikelihood.hh $(INCDIR)/HandleResolArea.hh \ $(INCDIR)/HypothesisFunctions.hh $(INCDIR)/BandsFactory.hh $(INCDIR)/MinimizeFactory.hh \ $(INCDIR)/MonteCarlo.hh $(INCDIR)/ResidualsFactory.hh $(INCDIR)/ConstantesDefinitions.hh \ $(INCDIR)/PlotFactory.hh $(INCDIR)/SpectrumUtils.hh SRCS = $(SRCDIR)/EnergyBin.C $(SRCDIR)/Band.C $(SRCDIR)/ComputeResults.C $(SRCDIR)/Config.C \ $(SRCDIR)/DataSummary.C $(SRCDIR)/FCNLikelihood.C $(SRCDIR)/HandleResolArea.C \ $(SRCDIR)/HypothesisFunctions.C $(SRCDIR)/BandsFactory.C $(SRCDIR)/MinimizeFactory.C \ $(SRCDIR)/MonteCarlo.C $(SRCDIR)/ResidualsFactory.C $(SRCDIR)/PlotFactory.C \ $(SRCDIR)/SpectrumUtils.C OBJS = $(OUTDIR)/Config.o $(OUTDIR)/StringTools.o $(OUTDIR)/EnergyBin.o $(OUTDIR)/Band.o \ $(OUTDIR)/BandsFactory.o $(OUTDIR)/FCNLikelihood.o $(OUTDIR)/ComputeResults.o \ $(OUTDIR)/MinimizeFactory.o $(OUTDIR)/HandleResolArea.o $(OUTDIR)/DataSummary.o \ $(OUTDIR)/MonteCarlo.o $(OUTDIR)/HypothesisFunctions.o $(OUTDIR)/ResidualsFactory.o \ $(OUTDIR)/PlotFactory.o $(OUTDIR)/SpectrumUtils.o ifeq ($(DOLIBRARY),yes) CXXFLAGS += -DCONSTRUCT_LIBRARY OBJS += $(OUTDIR)/SpectrumDict.o endif ifeq ($(DOLIBRARY),yes) all: $(DIRECTORIES) $(LIBRARY) $(EXEC) else all: $(DIRECTORIES) $(EXEC) endif ## directories $(DIRECTORIES): @mkdir -p $@ ## Library $(LIBRARY): $(OBJS) @echo "Generating library $@..." $(LD) $(SOFLAGS) $(LDFLAGS) $^ $(OutPutOpt) $@ $(EXPLLINKLIBS) @echo "$@ done!" ## Dictionaries: $(OUTDIR)/SpectrumDict.C: $(INCS) $(INCDIR)/SpectrumLinkdef.hh @echo "Generating dictionary $@..." $(ROOTCINT) -f $@ -c -DCONSTRUCT_LIBRARY $(CXXFLAGS) -p $^ # $(ROOTCINT) -f $@ -DCONSTRUCT_LIBRARY $(CXXFLAGS) -p -c $^ @echo "$@ done!" ## executable $(EXEC): $(OBJS) $(OUTDIR)/main.o ifeq ($(DOLIBRARY),yes) @echo "Generating $@ with library..." $(LD) $(LDFLAGS) $^ $(LIBS) $(LIBRARY) $(OutPutOpt)$@ @echo "$@ done!" else @echo "Generating $@ without library..." $(LD) $(LDFLAGS) -o $(EXEC) $(OBJS) $(OUTDIR)/main.o $(LIBS) $(OutPutOpt)$@ @echo "$@ done!" endif ## sources $(OUTDIR)/main.o: $(SRCS) $(INCS) $(SRCDIR)/main.C $(LD) -c $(SRCDIR)/main.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/Config.o: $(SRCDIR)/Config.C $(INCDIR)/Config.hh \ $(SRCDIR)/StringTools.C $(INCDIR)/StringTools.hh $(LD) -c $(SRCDIR)/Config.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/SpectrumUtils.o : $(SRCDIR)/SpectrumUtils.C $(INCDIR)/SpectrumUtils.hh $(LD) -c $(SRCDIR)/SpectrumUtils.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/StringTools.o: $(SRCDIR)/StringTools.C $(INCDIR)/StringTools.hh $(LD) -c $(SRCDIR)/StringTools.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/EnergyBin.o: $(SRCDIR)/EnergyBin.C $(INCDIR)/EnergyBin.hh $(LD) -c $(SRCDIR)/EnergyBin.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/Band.o: $(SRCDIR)/Band.C $(INCDIR)/Band.hh \ $(SRCDIR)/EnergyBin.C $(INCDIR)/EnergyBin.hh $(LD) -c $(SRCDIR)/Band.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/BandsFactory.o: $(SRCDIR)/BandsFactory.C $(INCDIR)/BandsFactory.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh $(SRCDIR)/Config.C $(INCDIR)/Config.hh $(LD) -c $(SRCDIR)/BandsFactory.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/FCNLikelihood.o: $(SRCDIR)/FCNLikelihood.C $(INCDIR)/FCNLikelihood.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh \ $(SRCDIR)/HypothesisFunctions.C $(INCDIR)/HypothesisFunctions.hh \ $(INCDIR)/ConstantesDefinitions.hh $(LD) -c $(SRCDIR)/FCNLikelihood.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/ComputeResults.o: $(SRCDIR)/ComputeResults.C $(INCDIR)/ComputeResults.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh $(SRCDIR)/HypothesisFunctions.C \ $(INCDIR)/HypothesisFunctions.hh $(INCDIR)/GSLError.h $(LD) -c $(SRCDIR)/ComputeResults.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/HypothesisFunctions.o: $(SRCDIR)/HypothesisFunctions.C $(INCDIR)/HypothesisFunctions.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh $(SRCDIR)/EnergyBin.C $(INCDIR)/EnergyBin.hh $(LD) -c $(SRCDIR)/HypothesisFunctions.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/MinimizeFactory.o: $(SRCDIR)/MinimizeFactory.C $(INCDIR)/MinimizeFactory.hh \ $(SRCDIR)/FCNLikelihood.C $(INCDIR)/FCNLikelihood.hh $(SRCDIR)/ComputeResults.C \ $(INCDIR)/ComputeResults.hh $(INCDIR)/ConstantesDefinitions.hh $(LD) -c $(SRCDIR)/MinimizeFactory.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/DataSummary.o: $(SRCDIR)/DataSummary.C $(INCDIR)/DataSummary.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh $(SRCDIR)/Config.C $(INCDIR)/Config.hh \ $(SRCDIR)/MonteCarlo.C $(INCDIR)/MonteCarlo.hh $(LD) -c $(SRCDIR)/DataSummary.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/HandleResolArea.o: $(SRCDIR)/HandleResolArea.C $(INCDIR)/HandleResolArea.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh $(SRCDIR)/MonteCarlo.C $(INCDIR)/MonteCarlo.hh \ $(SRCDIR)/DataSummary.C $(INCDIR)/DataSummary.hh $(SRCDIR)/ComputeResults.C \ $(INCDIR)/ComputeResults.hh $(LD) -c $(SRCDIR)/HandleResolArea.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/MonteCarlo.o: $(SRCDIR)/MonteCarlo.C $(INCDIR)/MonteCarlo.hh $(LD) -c $(SRCDIR)/MonteCarlo.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/ResidualsFactory.o: $(SRCDIR)/ResidualsFactory.C $(INCDIR)/ResidualsFactory.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh \ $(SRCDIR)/HypothesisFunctions.C $(INCDIR)/HypothesisFunctions.hh $(LD) -c $(SRCDIR)/ResidualsFactory.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/PlotFactory.o: $(SRCDIR)/PlotFactory.C $(INCDIR)/PlotFactory.hh \ $(SRCDIR)/Band.C $(INCDIR)/Band.hh \ $(SRCDIR)/HypothesisFunctions.C $(INCDIR)/HypothesisFunctions.hh $(LD) -c $(SRCDIR)/PlotFactory.C $(CXXFLAGS) @mv *.o $(OUTDIR) @echo "$@ done!" $(OUTDIR)/SpectrumDict.o: $(OUTDIR)/SpectrumDict.C @echo "Generating object dictionary $@..." $(CXX) -c $< $(CXXFLAGS) @mv *.o $(OUTDIR)/ @echo "$@ done!" .PHONY: clean distclean doc doc: @echo "Generating documentation with doxygen..." @mkdir $(DOCDIR) doxygen Doxyfile @echo "Doc done! You can find it in ./doxy/html/index.html" clean: rm -rf $(OUTDIR)/*.o rm -rf $(OUTDIR)/SpectrumDict.C rm -rf $(OUTDIR)/SpectrumDict.h distclean: clean rm -rf $(EXEC) rm -rf $(LIBDIR)/*.so