diff --git a/Make-9.3.4.in b/Make-9.3.4.in index 2907960259d9f731f6e1f92395d4001a29c8ea99..720c31b22a9118403b764a41fdcfe7d09926ac15 100644 --- a/Make-9.3.4.in +++ b/Make-9.3.4.in @@ -26,12 +26,17 @@ ifeq ($(origin SDKTARGETSYSROOT),undefined) CXXFLAGS += -std=c++0x endif else - CXXFLAGS += -std=c++11 + CXXFLAGS += -std=gnu++14 endif INC_DIR = -I${TANGO_INC} -I${LOG4TANGO_INC} -I${OMNIORB_INC} -I${ZMQ_INC} -I${RUNTIME_INC} LIB_DIR = -L${TANGO_LIB} -L${OMNIORB_LIB} -L${ZMQ_LIB} -L${RUNTIME_LIB} -L/usr/local/lib else - CXXFLAGS += -std=gnu++11 + HASH = $(shell echo $(SDKTARGETSYSROOT) $(OECORE_DISTRO_VERSION) $(CXX) | md5sum | cut -d ' ' -f 1) + HASHDIR = $(HASH)/ + HASHEDIR = $(HASH)\/ + POINTHASH = .$(HASH) + + CXXFLAGS += -std=gnu++14 INC_DIR = -I${SDKTARGETSYSROOT}/usr/include/tango endif @@ -62,26 +67,26 @@ LDFLAGS += $(LIB_DIR) -ltango -lomniORB4 -lomniDynamic4 \ # Set dependencies #----------------------------------------- SRC_FILES += $(wildcard src/*.cpp) -OBJ_FILES += $(addprefix obj/,$(notdir $(SRC_FILES:.cpp=.o))) +OBJ_FILES += $(addprefix obj/$(HASHDIR),$(notdir $(SRC_FILES:.cpp=.o))) -obj/%.o: $(SRC_FILES:%.cpp) +obj/$(HASHDIR)%.o: $(SRC_FILES:%.cpp) $(CXX) $(CXXFLAGS) -c -o $@ $< -.nse_depinfo: $(SRC_FILES) - @$(CXX) $(CXXFLAGS) -M -MM $^ | sed 's/\(.*\)\.o/obj\/\1.o/g' > $@ --include .nse_depinfo +.nse_depinfo$(POINTHASH): $(SRC_FILES) + @$(CXX) $(CXXFLAGS) -M -MM $^ | sed 's/\(.*\)\.o/obj\/$(HASHEDIR)\1.o/g' > $@ +-include .nse_depinfo$(POINTHASH) #----------------------------------------- # Main make entries #----------------------------------------- -bin/$(NAME_SRV): bin obj $(OBJ_FILES) +bin/$(NAME_SRV): bin obj/$(HASH) $(OBJ_FILES) $(CXX) $(CXXFLAGS) $(OBJ_FILES) -o bin/$(NAME_SRV) $(LDFLAGS) clean: - @rm -fr obj/ bin/ core* .nse_depinfo src/*~ + @rm -fr obj/ bin/ core* .nse_depinfo* src/*~ -bin obj: - @ test -d $@ || mkdir $@ +bin obj/$(HASH): + @test -d $@ || mkdir -p $@ #----------------------------------------- # Target specific options