From d735c3c05ea1640aa9134dc58cdad90310d1cc26 Mon Sep 17 00:00:00 2001 From: Pedro Souza Date: Tue, 2 Apr 2024 17:34:34 -0300 Subject: Added Makefile --- Makefile | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Makefile (limited to 'Makefile') diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..2e857bc --- /dev/null +++ b/Makefile @@ -0,0 +1,48 @@ +MKDIR := mkdir +RMDIR := rm -r +RM := rm +CC := gcc +BINDIR := ./bin +TESTDIR := ./test +SRCDIRS := ./ +SRCS := $(foreach fd, $(SRCDIRS), $(wildcard $(fd)/*.c)) +OBJS := $(patsubst %.c,$(BINDIR)/%.o,$(SRCS)) +ARCFIND := $(BINDIR)/arcfind +EXES := $(ARCFIND) +CFLAGS := $(addprefix -I,$(SRCDIRS)) $(XTRAFLAGS) +LDLIBS := + +ARCFIND_O := $(addprefix ./bin/, main.o) + +all: $(EXES) +.PHONY: all + +$(BINDIR)/%.o: %.c | $(BINDIR) + $(CC) $(CFLAGS) -c -o $@ $^ $(LDLIBS) + +include $(DEPS) + +$(ARCFIND): $(ARCFIND_O) | $(BINDIR) + $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS) + +# TODO: one good rule for the test bins + +$(BINDIR): + $(MKDIR) $@ + +$(TESTDIR): + $(MKDIR) $@ + +debug: + $(MAKE) XTRAFLAGS:="-g -fsanitize=undefined -fsanitize-undefined-trap-on-error -fno-omit-frame-pointer -O0 -DDEBUG -Wuninitialized" +.PHONY: debug + +release: + $(MAKE) XTRAFLAGS:="-O3" +.PHONY: release + +clean: + -$(RM) $(OBJS) + -$(RM) $(EXES) +.PHONY: clean + -- cgit v1.2.3