diff options
| author | Blake Romero <blake@blkrom.com> | 2025-10-05 22:37:41 +0100 |
|---|---|---|
| committer | Blake Romero <blake@blkrom.com> | 2025-10-07 20:25:15 +0100 |
| commit | 4510ddc6ce2cabd95db6483874425fba204ad5c4 (patch) | |
| tree | c387701999d3686e0d9674758c8b19c24883b295 /Makefile | |
| parent | 0e2feecdec32dd852f368c5b9be7d0569644f393 (diff) | |
Diffstat (limited to 'Makefile')
| -rw-r--r-- | Makefile | 41 |
1 files changed, 22 insertions, 19 deletions
@@ -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 $<,$^) |
