From 62ec52f619fdddc9ca932824b553e6f614e7dd85 Mon Sep 17 00:00:00 2001 From: Jeremy Baxter Date: Sun, 11 Feb 2024 18:15:57 +1300 Subject: [PATCH] improve makefile o add 'install' target o shorten the name of INCLUDE_PATHS to IMPORTS o use filename prerequisities and targets rather than phony keywords o add a dependency on .git/refs/tags for the githash target o add githash.txt and dfmt-test to the clean target o add more targets to .PHONY --- makefile | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/makefile b/makefile index d790c0c..9cc11a8 100644 --- a/makefile +++ b/makefile @@ -1,33 +1,39 @@ +PREFIX = /usr/local + SRC := $(shell find src -name "*.d") \ $(shell find libdparse/src -name "*.d") \ $(shell find stdx-allocator/source -name "*.d") -INCLUDE_PATHS := -Ilibdparse/src -Istdx-allocator/source -Isrc -Jbin -DMD_COMMON_FLAGS := -dip25 -w $(INCLUDE_PATHS) +IMPORTS := -Ilibdparse/src -Istdx-allocator/source -Isrc -Jbin + +DC ?= dmd +LDC ?= ldc2 +GDC ?= gdc + +DMD_COMMON_FLAGS := -w $(IMPORTS) DMD_DEBUG_FLAGS := -debug -g $(DMD_COMMON_FLAGS) DMD_FLAGS := -O -inline $(DMD_COMMON_FLAGS) DMD_TEST_FLAGS := -unittest -g $(DMD_COMMON_FLAGS) -LDC_FLAGS := -g -w -oq $(INCLUDE_PATHS) -GDC_FLAGS := -g -w -oq $(INCLUDE_PATHS) +LDC_FLAGS := -g -w -oq $(IMPORTS) +GDC_FLAGS := -g -w -oq $(IMPORTS) override DMD_FLAGS += $(DFLAGS) override LDC_FLAGS += $(DFLAGS) override GDC_FLAGS += $(DFLAGS) -DC ?= dmd -LDC ?= ldc2 -GDC ?= gdc -.PHONY: dmd ldc gdc test +.PHONY: all clean install debug dmd ldc gdc githash pkg release test -dmd: bin/dfmt +all: bin/dfmt githash: mkdir -p bin git describe --tags > bin/githash.txt +dmd: bin/dfmt + ldc: githash $(LDC) $(SRC) $(LDC_FLAGS) -ofbin/dfmt -rm -f *.o -gdc:githash +gdc: githash $(GDC) $(SRC) $(GDC_FLAGS) -obin/dfmt test: debug @@ -46,8 +52,13 @@ pkg: dmd $(MAKE) -f makd/Makd.mak pkg clean: - $(RM) bin/dfmt + $(RM) bin/dfmt bin/dfmt-test bin/githash.txt + +install: + chmod +x bin/dfmt + mkdir -p $(DESTDIR)$(PREFIX)/bin + cp -f bin/dfmt $(DESTDIR)$(PREFIX)/bin/dfmt release: ./release.sh - githash + $(MAKE) githash