aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorBlake Romero <blake@blkrom.com>2025-10-05 22:37:41 +0100
committerBlake Romero <blake@blkrom.com>2025-10-07 20:25:15 +0100
commit4510ddc6ce2cabd95db6483874425fba204ad5c4 (patch)
treec387701999d3686e0d9674758c8b19c24883b295 /Makefile
parent0e2feecdec32dd852f368c5b9be7d0569644f393 (diff)
Fix Makefile build & add run directiveHEADmain
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile41
1 files 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 $<,$^)