summaryrefslogtreecommitdiff
path: root/tools/msgenc/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'tools/msgenc/Makefile')
-rw-r--r--tools/msgenc/Makefile33
1 files changed, 30 insertions, 3 deletions
diff --git a/tools/msgenc/Makefile b/tools/msgenc/Makefile
index 2fc4f3a9..b39d97cb 100644
--- a/tools/msgenc/Makefile
+++ b/tools/msgenc/Makefile
@@ -1,13 +1,40 @@
CXXFLAGS := -std=c++17 -O2 -Wall -Wno-switch
CFLAGS := -O2 -Wall -Wno-switch
+ifeq ($(DEBUG),)
+CXXFLAGS += -DNDEBUG
+endif
+
+DEPDIR := .deps
+DEPFLAGS = -MT $@ -MMD -MP -MF $(DEPDIR)/$*.d
+
+define SRCS :=
+ msgenc.cpp
+ MessagesConverter.cpp
+ MessagesDecoder.cpp
+ MessagesEncoder.cpp
+endef
+
+OBJS := $(SRCS:%.cpp=%.o)
+
.PHONY: all clean
all: msgenc
@:
clean:
- $(RM) msgenc msgenc.exe
+ $(RM) -r msgenc msgenc.exe $(OBJS) $(DEPDIR)
+
+msgenc: $(OBJS)
+ $(CXX) $(LDFLAGS) -o $@ $^
+
+%.o: %.cpp
+%.o: %.cpp $(DEPDIR)/%.d | $(DEPDIR)
+ $(CXX) $(CXXFLAGS) $(DEPFLAGS) -c -o $@ $<
+
+$(DEPDIR): ; @mkdir -p $@
+
+DEPFILES := $(SRCS:%.cpp=$(DEPDIR)/%.d)
+$(DEPFILES):
-msgenc: msgenc.cpp
- $(CXX) $(CXXFLAGS) -o $@ $^
+include $(wildcard $(DEPFILES))