summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile57
1 files changed, 11 insertions, 46 deletions
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