From 31e6fb2ba5fe9fd04722971a13a72ec71e846e46 Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Wed, 7 Dec 2022 23:22:05 +0100 Subject: Make make portable --- Makefile | 57 +++++++++++---------------------------------------------- 1 file changed, 11 insertions(+), 46 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index fe8ac93..2e61bd1 100644 --- a/Makefile +++ b/Makefile @@ -1,50 +1,15 @@ -.PHONY: default clean check run debug debug-tests +# BSD-compatible makefile -default: dged +.include "common.mk" -headers != find src/ -type f -name '*.h' -srcs != find src/ -type f -name '*.c' ! -name 'main.c' +.include "$(UNAME_S).mk" -test_headers != find test/ -type f -name '*.h' -test_srcs != find test/ -type f -name '*.c' +# in this case we need a separate depend target +depend: $(DEPS) + @: -objs-path = objs -objs = $(patsubst %.c,$(objs-path)/%.o, $(srcs)) -test_objs = $(patsubst %.c,$(objs-path)/test/%.o, $(test_srcs)) - -UNAME_S != uname -s - -CFLAGS = -Werror -g -std=c99 - -ifeq ($(UNAME_S),Linux) - DEFINES += -DLINUX -D_XOPEN_SOURCE=700 -endif - -$(objs-path)/test/%.o: %.c $(headers) - @mkdir -p $(dir $@) - $(CC) $(CFLAGS) $(DEFINES) -I ./src -I ./test -c $< -o $@ - -$(objs-path)/%.o: %.c $(headers) - @mkdir -p $(dir $@) - $(CC) $(CFLAGS) $(DEFINES) -I ./src -c $< -o $@ - -dged: $(objs) $(objs-path)/src/main.o - $(CC) $(LDFLAGS) $(objs) $(objs-path)/src/main.o -o dged - -run-tests: $(test_objs) $(objs) - $(CC) $(LDFLAGS) $(test_objs) $(objs) -o run-tests - -check: run-tests - ./run-tests - -run: dged - ./dged - -debug: dged - gdb ./dged - -debug-tests: run-tests - gdb ./run-tests - -clean: - rm -rf $(objs-path) dged run-tests +.if !(make(clean)) +. for o in ${DEPS} +. sinclude "$o" +. endfor +.endif -- cgit v1.2.3