From c367b9bb3ea911fac9b02ec607ed4c366567a95f Mon Sep 17 00:00:00 2001 From: Bob Polis Date: Thu, 9 Feb 2023 18:44:12 +0100 Subject: [PATCH] Modernized Makefile --- Makefile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 3eaa6f5..a3c016f 100644 --- a/Makefile +++ b/Makefile @@ -22,6 +22,7 @@ BUILDDIR := build/intermediates/ PREFIX ?= /usr/local BINDIR ?= $(PREFIX)/bin CONFIGDIR ?= $(PREFIX)/etc + CONFIG := debug INCLUDEDIR ?= $(PREFIX)/include LIBDIR ?= $(PREFIX)/lib DATADIR ?= $(PREFIX)/share @@ -35,10 +36,9 @@ HDRS := $(wildcard src/*.hpp) CXX ?= g++ -CXXFLAGS += -Wshadow -Wall -Wpedantic -Wextra -g -fno-strict-aliasing -std=c++17 -fPIC +CXXFLAGS += -Wshadow -Wall -Wpedantic -Wextra -g -std=c++17 -fPIC ifeq ($(DEBUG),1) CXXFLAGS += -D DEBUG -O0 - CONFIG := debug else CXXFLAGS += -D NDEBUG -O3 CONFIG := release @@ -59,7 +59,7 @@ all: prebuild $(OUTDIR)$(REALNAME) $(OUTDIR)$(STATICLIB) prebuild: @mkdir -p $(BUILDDIR) $(OUTDIR) -$(OUTDIR)$(REALNAME): $(OBJS) $(DEPS) +$(OUTDIR)$(REALNAME): $(OBJS) ifeq ($(UNAME_S),Darwin) $(CXX) -dynamiclib -o $(OUTDIR)$(REALNAME) -current_version $(MAJOR) -compatibility_version $(MINOR) $(LDFLAGS) $(LDLIBS) $(addprefix $(BUILDDIR),$(OBJS)) endif @@ -70,13 +70,11 @@ ifeq ($(UNAME_S),Linux) $(CXX) -g -shared -Wl,-soname,$(SONAME) -o $(OUTDIR)$(REALNAME) $(LDFLAGS) $(LDLIBS) $(addprefix $(BUILDDIR),$(OBJS)) endif -%.o: %.cpp %.d +%.o %.d: %.cpp $(CXX) $(CXXFLAGS) -MMD -MP -MT $@ -MF $*.d -c $< @mv $@ $*.d $(BUILDDIR) --include $(BUILDDIR)*.d - -%.d: ; +-include $(BUILDDIR)$(DEPS) $(OUTDIR)$(STATICLIB): $(OBJS) ar r $(OUTDIR)$(STATICLIB) $(addprefix $(BUILDDIR),$(OBJS))