UNAME = $(shell uname -a) # name your executable EXE = sim CSUF = cc HSUF = hh # List the source files relevant for your project SRCS = src/action.cc \ src/construction.cc \ src/detector.cc \ src/event.cc \ src/generator.cc \ src/physics.cc \ src/run.cc \ src/stepping.cc \ src/Sim.cc OBJS = $(patsubst %.$(CSUF), %.o, $(SRCS)) VPATH = $(PWD)/include vpath %.$(HSUF) $(PWD)/include ROOT_CXXFLAGS = $(shell root-config --cflags) GEANT4_CXXFLAGS = $(shell geant4-config --cflags) ROOT_LIBS = $(shell root-config --libs) GEANT4_LIBS = $(shell geant4-config --libs) $(info "-------------------------- Information -----------------------") $(info ROOT_CXXFLAGS ==>> $(ROOT_CXXFLAGS)) $(info ROOT_LIBS ==>> $(ROOT_LIBS)) $(info GEANT4_CXXFLAGS ==>> $(GEANT4_CXXFLAGS)) $(info GEANT4_LIBS ==>> $(GEANT4_LIBS)) $(info "-------------------------- End -------------------------------") DEBUG_FLAG = -g0 -O2 CXX = g++ LDFLAGS = $(DEBUG_FLAG) SOFLAGS = -shared CXXFLAGS = $(DEBUG_FLAG) -Wall -Wextra -Wno-deprecated -pedantic -I./include $(ROOT_CXXFLAGS) $(GEANT4_CXXFLAGS) LIBS = $(ROOT_LIBS) $(GEANT4_LIBS) bin: $(EXE) all: gmake bin $(EXE): $(OBJS) $(CXX) $(LDFLAGS) $^ -o $@ $(LIBS) # Create object files %.o : %.$(CSUF) $(CXX) $(CXXFLAGS) -o $@ -c $< # makedepend depend: $(SRCS:.$(CSUF)=.$(CSUF).dep) @cat $(notdir $^) > Makefile.dep @-rm -f $(notdir $^) $(patsubst %,%.bak,$(notdir $^)) %.dep: @touch $(notdir $@) rmkdepend -f$(notdir $@) -- $(CXXFLAGS) -- $* include Makefile.dep # Clean .PHONY : clean clean : @-rm $(OBJS) $(EXE)