From 3d55ec973118c07204da7c335fb7297c3b30a420 Mon Sep 17 00:00:00 2001 From: Andrew Scott Date: Mon, 19 Aug 2024 15:46:10 -0400 Subject: [PATCH] Added Makefile --- Makefile | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5258a4d --- /dev/null +++ b/Makefile @@ -0,0 +1,49 @@ +CC = gcc +CFLAGS = -O3 -Wall -Wextra -Wpedantic + + +SRCS = main.c gc.c +OBJS = $(SRCS:.c=.o) +EXE = gc + +DBDIR = debug +DBEXE = $(DBDIR)/$(EXE) +DBOBJS = $(addprefix $(DBDIR)/, $(OBJS)) +DBCFLAGS = -g -O0 -DDEBUG + + +REDIR = build +REEXE = $(REDIR)/$(EXE) +REOBJS = $(addprefix $(REDIR)/, $(OBJS)) + +.PHONY: all clean debug release prep + +all: debug release gc + +gc: $(REEXE) + @cp $< $@ + +debug: prep $(DBEXE) + +$(DBEXE): $(DBOBJS) + $(CC) $(CFLAGS) $(DBCFLAGS) -DTEST -o $@ $^ + +$(DBDIR)/%.o: %.c + $(CC) -c $(CFLAGS) $(DBCFLAGS) -o $@ $< + +release: prep $(REEXE) + +$(REEXE): $(REOBJS) + $(CC) $(CFLAGS) -o $@ $^ + +$(REDIR)/%.o: %.c + $(CC) -c $(CFLAGS) -o $@ $< + +prep: + @mkdir -p $(DBDIR) $(REDIR) + +clean: + rm -rf gc $(DBDIR) $(REDIR) + + +