diff --git a/mk/build.mk b/mk/build.mk index 937affda..74c331c6 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -3,10 +3,10 @@ include mk/objects.mk include mk/generatedcode.mk $(BINDIR)/bpp: $(BPP_OBJS) $(FLEXBISON_GENERATED_OBJS) $(MAIN_OBJ) - $(CXX) $(CXXFLAGS) $(INCLUDEFLAGS) -o $@ $^ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $^ $(BINDIR)/bpp-lsp: $(LSP_MAIN_OBJ) $(BPP_OBJS) $(FLEXBISON_GENERATED_OBJS) $(LSP_OBJS) - $(CXX) $(CXXFLAGS) $(INCLUDEFLAGS) -o $@ $^ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $^ clean-bin: @rm -f $(BINDIR)/bpp $(BINDIR)/bpp-lsp diff --git a/mk/config.mk b/mk/config.mk index 1070d373..f73b4bd4 100644 --- a/mk/config.mk +++ b/mk/config.mk @@ -1,7 +1,11 @@ # C++ CONFIG -CXX := g++ -CXXFLAGS := -std=gnu++23 -O2 -s -Wall -MMD -MP -INCLUDEFLAGS := -Isrc/ +CXX ?= g++ +CXXFLAGS ?= -O2 -s +# ะก++ required flags +CXXFLAGS += -std=gnu++23 -Wall -MMD -MP +# standard preprocessor and linker variables +CPPFLAGS ?= +CPPFLAGS += -Isrc/ # Can we parse debian/changelog? PARSECHANGELOG := $(shell command -v dpkg-parsechangelog 2>/dev/null) diff --git a/mk/generatedcode.mk b/mk/generatedcode.mk index 0605a7eb..96788208 100644 --- a/mk/generatedcode.mk +++ b/mk/generatedcode.mk @@ -20,7 +20,7 @@ $(FLEXBISON_GENERATED_STAMP): $(FLEXBISONDIR)/lexer.l $(FLEXBISONDIR)/parser.y # LSP CLASSES GENERATION $(LSP_OBJDIR)/generateLSPClasses: $(LSP_GENERATOR_OBJS) - $(CXX) $(CXXFLAGS) $(INCLUDEFLAGS) -o $@ $^ + $(CXX) $(CXXFLAGS) $(CPPFLAGS) -o $@ $^ $(LSP_GENERATED_STAMP): $(LSP_OBJDIR)/generateLSPClasses @mkdir -p $(LSP_GENERATEDDIR) diff --git a/mk/objects.mk b/mk/objects.mk index d5b51588..dda66e22 100644 --- a/mk/objects.mk +++ b/mk/objects.mk @@ -6,13 +6,13 @@ $(OBJDIR)/%.o: $(SRCDIR)/%.cpp @mkdir -p $(dir $@) - $(CXX) $(CXXFLAGS) $(INCLUDEFLAGS) -c $< -o $@ + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ # The LSP generator is not part of the compiler itself. # It's an intermediary tool that we use to generate classes for the LSP implementation $(OBJDIR)/lsp/generator/%.o: $(SRCDIR)/lsp/generator/%.cpp $(LSPDIR)/metaModel.json @mkdir -p $(dir $@) - $(CXX) $(CXXFLAGS) -c $< -o $@ + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ # Generated-code prerequisites #