REPO_DIR=$(shell pwd) INCLUDE_DIR=$(REPO_DIR)/include SRC_DIR=$(REPO_DIR)/src SUBMOD_DIR=$(REPO_DIR)/submodule BUILD_DIR=$(REPO_DIR)/build CXX=clang++ CXX_FLAGS=-g -std=c++14 \ -I/usr/local/include \ -I$(INCLUDE_DIR) \ -I$(SUBMOD_DIR)/json/single_include LD_FLAGS=-L/usr/local/lib \ -lboost_system \ -lboost_filesystem \ -l:libexchange_server.a \ -l:libomniDynamic4.a \ -l:libCOSNotify4.a \ -l:libCOS4.a \ -l:libomniZIOP4.a \ -l:libomniCodeSets4.a \ -l:libomniORB4.a \ -l:libomnithread.a \ -lz \ -lpthread XSTEST_HDRS=$(INCLUDE_DIR)/test/Config.h $(INCLUDE_DIR)/test/Service.h $(INCLUDE_DIR)/test/Tester.h $(INCLUDE_DIR)/test/Expectation.h XSTEST_SRCS=$(SRC_DIR)/xs-test.cc $(SRC_DIR)/test/Config.cc $(SRC_DIR)/test/Service.cc $(SRC_DIR)/test/Tester.cc $(SRC_DIR)/test/Expectation.cc XSTEST_OBJS=$(subst $(REPO_DIR),$(BUILD_DIR),$(XSTEST_SRCS:.cc=.o)) GREETING_SRCS=$(REPO_DIR)/example/greeting.cc GREETING_OBJS=$(subst $(REPO_DIR),$(BUILD_DIR),$(GREETING_SRCS:.cc=.o)) all: $(BUILD_DIR)/xs-test example $(BUILD_DIR)/xs-test: $(XSTEST_OBJS) $(CXX) -o $@ $(XSTEST_OBJS) $(LD_FLAGS) $(BUILD_DIR)/%.o: $(REPO_DIR)/%.cc $(XSTEST_HDRS) mkdir -p $(dir $@) $(CXX) -o $@ -c $(CXX_FLAGS) $< example: $(BUILD_DIR)/greeting $(BUILD_DIR)/greeting: $(GREETING_OBJS) $(CXX) -o $@ $(GREETING_OBJS) $(LD_FLAGS) clean: rm -rf $(BUILD_DIR)/xs-test rm -rf $(BUILD_DIR)/greeting rm -rf $(XSTEST_OBJS) rm -rf $(GREETING_OBJS)