ENDLIST = #CXXFLAGS = -std=c++11 -Wall -DTRACE_ON -I../include -O0 -g -pg -DNS_THREADED CXXFLAGS = -std=c++11 -Wall -DTRACE_ON -I../include -O3 -DNDEBUG -DNS_THREADED #-DNS_THREADED -- implemented but no significant performance gain VPATH = ../include ../lib #LDFLAGS = -pthread -pg LDFLAGS = -pthread LDPATH = -L ../lib LDLIBS = -lutil EXECUTABLES = \ gil \ columns \ mat \ $(ENDLIST) all: $(EXECUTABLES) git_ignore COMMON_OBJECTS = \ $(ENDLIST) GIL_OBJECTS = \ gil_main.o \ Gillespie.o \ $(ENDLIST) COLUMNS_OBJECTS = \ columns.o \ $(ENDLIST) MAT_OBJECTS = \ mat.o \ $(ENDLIST) OBJECTS = \ $(COMMON_OBJECTS) \ $(GIL_OBJECTS) \ $(COLUMNS_OBJECTS) \ $(MAT_OBJECTS) \ $(ENDLIST) gil: \ $(GIL_OBJECTS) $(LDLIBS) $(CXX) $(LDFLAGS) $(GIL_OBJECTS) $(LDPATH) $(LDLIBS) -o $@ columns: \ $(COLUMNS_OBJECTS) $(LDLIBS) $(CXX) $(LDFLAGS) $(COLUMNS_OBJECTS) $(LDPATH) $(LDLIBS) -o $@ mat: \ $(MAT_OBJECTS) $(LDLIBS) $(CXX) $(LDFLAGS) $(MAT_OBJECTS) $(LDPATH) $(LDLIBS) -o $@ DEPS = $(subst .o,.d,$(OBJECTS)) clean: /bin/rm -f $(DEPS) $(OBJECTS) veryclean: clean /bin/rm -f $(EXECUTABLES) .gitignore git_ignore: @touch .gitignore @for e in $(EXECUTABLES); do \ if ! egrep "^$$e$$" .gitignore>/dev/null; then \ echo $$e >> .gitignore; \ fi; \ done # Automated dependency management %.o: %.cc $(CXX) -c $(CXXFLAGS) $*.cc -o $*.o $(CXX) -MM $(CXXFLAGS) $*.cc > $*.d @mv -f $*.d $*.d.tmp @sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ sed -e 's/^ *//' -e 's/$$/:/' >> $*.d @rm -f $*.d.tmp -include $(OBJECTS:.o=.d)