From 4510ddc6ce2cabd95db6483874425fba204ad5c4 Mon Sep 17 00:00:00 2001 From: Blake Romero Date: Sun, 5 Oct 2025 22:37:41 +0100 Subject: Fix Makefile build & add run directive --- Makefile | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 79be005..eb0495c 100644 --- a/Makefile +++ b/Makefile @@ -5,38 +5,41 @@ CC=gcc CFLAGS=-std=c17 -Wall -Werror -g # Directory paths -src:=src -bin:=bin -obj:=obj +srcdir:=src +bindir:=bin +objdir:=obj # Files -srcs=$(filter-out $(src)/main.c, $(wildcard $(src)/*.c)) -objs=$(patsubst $(src)/%.c, $(obj)/%.o, $(srcs)) +srcfiles=$(filter-out $(srcdir)/main.c,$(wildcard $(srcdir)/*.c)) +objfiles=$(srcfiles:.c=.o) -# Directives .PHONY: build -build: $(bin)/$(proj) +build: $(bindir)/$(proj) .PHONY: clean clean: - -rm -r $(bin) $(obj) + -rm -r $(bindir) $(objdir) .PHONY: info info: - @echo srcs: $(srcs) - @echo objs: $(objs) + @echo srcfiles: $(srcfiles) + @echo objfiles: $(objfiles) -# Make object files -$(obj)/%.o: $(srcs) $(obj) - $(CC) $(CFLAGS) -o $@ -c $< - -# Build executable including any object files -$(bin)/$(proj): $(bin) $(objs) $(src)/main.c - $(CC) $(CFLAGS) -o $@ $(filter-out $<,$^) +.PHONY: run +run: build + $(bindir)/$(proj) # Make directories -$(bin): +$(bindir): mkdir $@ -$(obj): +$(objdir): mkdir $@ + +# Create object files +$(objdir)/%.o: $(objdir) $(srcfiles) + $(CC) $(CFLAGS) -o $@ -c $(patsubst %.o,$(srcdir)/%.c,$(notdir $@)) + +# Build executable including any object files +$(bindir)/$(proj): $(bindir) $(objfiles) $(srcdir)/main.c + $(CC) $(CFLAGS) -o $@ $(filter-out $<,$^) -- cgit