# configure ROOT include $(ROOTSYS)/etc/Makefile.arch ROOTINC :=$(shell $(ROOTSYS)/bin/root-config --incdir) ROOTLIBDIR :=$(shell $(ROOTSYS)/bin/root-config --libdir) ROOTLDFLAGS :=$(shell $(ROOTSYS)/bin/root-config --ldflags) ROOTCFLAGS :=$(shell $(ROOTSYS)/bin/root-config --cflags) ROOTLIBS :=$(shell $(ROOTSYS)/bin/root-config --libs) ROOTLIBS += -lSpectrum -lMinuit -lMinuit2 ROOTLIBS += -lTMVA -lMLP -lTreePlayer ROOTLIBS += -lMathCore -lMathMore -lFumili -Wl,-rpath,$(ROOTLIBDIR) ROOTLIBS += -lTreePlayer -lFoam -lProof -lProofPlayer ROOTLINK = $(ROOTLIBS) $(ROOTCFLAGS) $(ROOTLDFLAGS) #--------configure compiler----------# CXX = g++ #-flto -O3 #-flto -Ofast CXXFLAGS = $(ROOTCFLAGS) -fPIC -O2 LIBS := $(ROOTLIBS) -lm -lz -lutil -lnsl -lpthread LIBS += -L. -L$(shell pwd) -Wl,-R$(PWD) .SUFFIXES: .$(SrcSuf) .$(ObjSuf) .$(DllSuf) #----------configure the Event class-----------# MYSELO = radAnalyzerClass.$(ObjSuf) radAnalyzerClassDict.$(ObjSuf) MYSELS = radAnalyzerClassDict.$(SrcSuf) MYSELSO = radAnalyzerClass.$(DllSuf) MYSELLIB = $(shell pwd)/$(MYSELSO) PROGRAMS := radAnalyzer.x default: all all: $(OBJECTS) $(MYSELSO) $(PROGRAMS) $(MYSELSO): $(MYSELO) @echo "compiling $@" $(CXX) $(CXXFLAGS) $(SOFLAGS) $(OutPutOpt) $@ $^ $(EXPLLINKLIBS) $(LIBS) @echo "$@ done" @echo "=====================================================" #radAnalyzerClass.$(ObjSuf): radAnalyzerClass.h radAnalyzerClassDict.$(SrcSuf): radAnalyzerClass.h radAnalyzerLinkDef.h @echo "Generating dictionary $@..." # @rootcint -f $@ -c $^ @rootcling -f $@ -c $^ @echo "-----------------------------------------------------" .cxx.o: @echo "Compiling $@" $(CXX) $(CXXFLAGS) $(ROOTLINK) -c $< @echo "-----------------------------------------------------" radAnalyzer.x: radAnalyzer.cpp $(MYSELSO) @echo "Compiling $@" $(CXX) $(CXXFLAGS) -o radAnalyzer.x radAnalyzer.cpp $(MYSELO) $(MYSELLIB) \ $(LIBS) -lquadmath -Wno-deprecated @echo "-----------------------------------------------------" clean: rm -f *.o rm -f *Dict.* rm -f *_rdict.pcm rm -f *.so rm -f *.x rm -f *~