From 8812d231f30dd7cd47d85279382ad50e95b7475c Mon Sep 17 00:00:00 2001 From: "F. Ye" Date: Fri, 27 Sep 2019 17:08:15 +0200 Subject: [PATCH] update Makefile, avoiding repetitve compiling --- Makefile | 14 ++------------ build/Cpp/Makefile | 12 ++++++------ build/Cpp/Makefile-local | 13 ------------- src/Makefile | 12 ++++++------ src/Problems/Makefile | 12 ++++++------ src/Problems/common_used_functions/Makefile | 12 ++++++------ src/Suites/Makefile | 12 ++++++------ src/Template/Experiments/Makefile | 14 ++++++++------ src/Template/Loggers/Makefile | 12 ++++++------ src/Template/Makefile | 12 ++++++------ 10 files changed, 52 insertions(+), 73 deletions(-) delete mode 100644 build/Cpp/Makefile-local diff --git a/Makefile b/Makefile index 1780f675e..26514037a 100644 --- a/Makefile +++ b/Makefile @@ -5,13 +5,8 @@ SUBDIRS=src ROOT_DIR=$(shell pwd) OBJS_DIR=build/Cpp/obj BIN_DIR=build/Cpp/bin -CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} -HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} - export CC BIN OBJS_DIR BIN_DIR ROOT_DIR CCFLAGS LDFLAGS -all:$(SUBDIRS) $(CPP_OBJS) $(HPP_OBJS) DEBUG +all:$(SUBDIRS) DEBUG $(SUBDIRS):ECHO mkdir -p $(BIN_DIR) mkdir -p $(OBJS_DIR) @@ -20,10 +15,5 @@ DEBUG:ECHO make -C build/Cpp ECHO: @echo $(SUBDIRS) -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} CLEAN: - @rm $(OBJS_DIR)/*.o - @rm -rf $(BIN_DIR)/* + @rm $(OBJS_DIR)/*.o \ No newline at end of file diff --git a/build/Cpp/Makefile b/build/Cpp/Makefile index a39118ed7..e92c0c377 100644 --- a/build/Cpp/Makefile +++ b/build/Cpp/Makefile @@ -7,13 +7,13 @@ BIN1=IOHprofiler_run_experiment BIN2=IOHprofiler_run_suite BIN3=IOHprofiler_run_problem all: bin/$(BIN1) bin/$(BIN2) bin/$(BIN3) -bin/$(BIN1):$(ODIR)/$(OBJS) +bin/$(BIN1):$(ODIR)/$(OBJS) IOHprofiler_run_experiment.cpp cp configuration.ini bin/ - $(CC) ${CCFLAGS} -pthread -o $@ $^ IOHprofiler_run_experiment.cpp ${LDFLAGS} -bin/$(BIN2):$(ODIR)/$(OBJS) - $(CC) ${CCFLAGS} -pthread -o $@ $^ IOHprofiler_run_suite.cpp ${LDFLAGS} -bin/$(BIN3):$(ODIR)/$(OBJS) - $(CC) ${CCFLAGS} -pthread -o $@ $^ IOHprofiler_run_problem.cpp ${LDFLAGS} + $(CC) ${CCFLAGS} -pthread -o $@ $^ ${LDFLAGS} +bin/$(BIN2):$(ODIR)/$(OBJS) IOHprofiler_run_suite.cpp + $(CC) ${CCFLAGS} -pthread -o $@ $^ ${LDFLAGS} +bin/$(BIN3):$(ODIR)/$(OBJS) IOHprofiler_run_problem.cpp + $(CC) ${CCFLAGS} -pthread -o $@ $^ ${LDFLAGS} CLEAN: @rm -rf bin/IOHprofiler_run_experiment @rm -rf bin/IOHprofiler_run_suite diff --git a/build/Cpp/Makefile-local b/build/Cpp/Makefile-local deleted file mode 100644 index c28646a0d..000000000 --- a/build/Cpp/Makefile-local +++ /dev/null @@ -1,13 +0,0 @@ -OBJS=*.o -ODIR=obj -BIN1=IOHprofiler_run_experiment -BIN2=IOHprofiler_run_suite -BIN3=IOHprofiler_run_problem -all: $(ROOT_DIR)/$(BIN_DIR)/$(BIN1) $(ROOT_DIR)/$(BIN_DIR)/$(BIN2) $(ROOT_DIR)/$(BIN_DIR)/$(BIN3) -$(ROOT_DIR)/$(BIN_DIR)/$(BIN1):$(ODIR)/$(OBJS) - $(CC) ${CCFLAGS} -pthread -o $@ $^ IOHprofiler_run_experiment.cpp ${LDFLAGS} - cp configuration.ini $(ROOT_DIR)/$(BIN_DIR)/ -$(ROOT_DIR)/$(BIN_DIR)/$(BIN2):$(ODIR)/$(OBJS) - $(CC) ${CCFLAGS} -pthread -o $@ $^ IOHprofiler_run_suite.cpp ${LDFLAGS} -$(ROOT_DIR)/$(BIN_DIR)/$(BIN3):$(ODIR)/$(OBJS) - $(CC) ${CCFLAGS} -pthread -o $@ $^ IOHprofiler_run_problem.cpp ${LDFLAGS} \ No newline at end of file diff --git a/src/Makefile b/src/Makefile index 0316a0543..aa56d6ac9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -2,15 +2,15 @@ SUBDIRS=Suites \ Problems \ Template CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(SUBDIRS) $(CPP_OBJS) $(HPP_OBJS) $(SUBDIRS):ECHO make -C $@ -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file diff --git a/src/Problems/Makefile b/src/Problems/Makefile index 4bc7ed577..e7c36220b 100644 --- a/src/Problems/Makefile +++ b/src/Problems/Makefile @@ -1,14 +1,14 @@ SUBDIRS=common_used_functions CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(SUBDIRS) $(CPP_OBJS) $(HPP_OBJS) $(SUBDIRS):ECHO make -C $@ -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file diff --git a/src/Problems/common_used_functions/Makefile b/src/Problems/common_used_functions/Makefile index 4c3d5f594..3b3afac89 100644 --- a/src/Problems/common_used_functions/Makefile +++ b/src/Problems/common_used_functions/Makefile @@ -1,13 +1,13 @@ CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(CPP_OBJS) $(HPP_OBJS) $(SUBDIRS):ECHO make -C $@ -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file diff --git a/src/Suites/Makefile b/src/Suites/Makefile index 4c3d5f594..3b3afac89 100644 --- a/src/Suites/Makefile +++ b/src/Suites/Makefile @@ -1,13 +1,13 @@ CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(CPP_OBJS) $(HPP_OBJS) $(SUBDIRS):ECHO make -C $@ -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file diff --git a/src/Template/Experiments/Makefile b/src/Template/Experiments/Makefile index 68b50a3df..3b3afac89 100644 --- a/src/Template/Experiments/Makefile +++ b/src/Template/Experiments/Makefile @@ -1,11 +1,13 @@ CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(CPP_OBJS) $(HPP_OBJS) -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++$^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(SUBDIRS):ECHO + make -C $@ +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file diff --git a/src/Template/Loggers/Makefile b/src/Template/Loggers/Makefile index 4c3d5f594..3b3afac89 100644 --- a/src/Template/Loggers/Makefile +++ b/src/Template/Loggers/Makefile @@ -1,13 +1,13 @@ CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(CPP_OBJS) $(HPP_OBJS) $(SUBDIRS):ECHO make -C $@ -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file diff --git a/src/Template/Makefile b/src/Template/Makefile index 3196ea5ae..6097ad6de 100644 --- a/src/Template/Makefile +++ b/src/Template/Makefile @@ -1,15 +1,15 @@ SUBDIRS=Experiments \ Loggers CPP_SOURCE=${wildcard *.cpp} -CPP_OBJS=${patsubst %.cpp, %.o, $(CPP_SOURCE)} +CPP_OBJS=${patsubst %.cpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(CPP_SOURCE)} HPP_SOURCE=${wildcard *.hpp} -HPP_OBJS=${patsubst %.hpp, %.o, $(HPP_SOURCE)} +HPP_OBJS=${patsubst %.hpp, $(ROOT_DIR)/$(OBJS_DIR)/%.o, $(HPP_SOURCE)} all:$(SUBDIRS) $(CPP_OBJS) $(HPP_OBJS) $(SUBDIRS):ECHO make -C $@ -$(CPP_OBJS):%.o:%.cpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} -$(HPP_OBJS):%.o:%.hpp - $(CC) ${CCFLAGS} -c -x c++ $^ -o $(ROOT_DIR)/$(OBJS_DIR)/$@ ${LDFLAGS} +$(CPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.cpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} +$(HPP_OBJS):$(ROOT_DIR)/$(OBJS_DIR)/%.o:%.hpp + $(CC) ${CCFLAGS} -c -x c++ $^ -o $@ ${LDFLAGS} ECHO: @echo $(SUBDIRS) \ No newline at end of file