Files
Z80/tracker/Makefile
2026-08-28 13:32:51 +02:00

44 lines
992 B
Makefile

TARGET := tracker
BUILDDIR := build
.DEFAULT_GOAL := all
SRCDIRS := src
SRCFILES := $(shell find $(SRCDIRS) -type f -name "*.c")
OBJFILES := $(SRCFILES:%.c=$(BUILDDIR)/%.c.o)
DEPFILES := $(SRCFILES:%.c=$(BUILDDIR)/%.c.d)
CC := gcc
CFLAGS := -Wall -Wextra
CPPFLAGS := -I src $(shell pkg-config --cflags sdl2)
LDLIBS := $(shell pkg-config --libs sdl2)
.PHONY: $(TARGET) all clean
all: $(TARGET)
# PHONY RULES
# -----------
$(TARGET): $(BUILDDIR)/$(TARGET)
clean:
echo CLEAN FILES FOR $(TARGET)
rm -rf $(BUILDDIR)
# SPECIFIC BUILD RULES
# --------------------
$(BUILDDIR)/$(TARGET): $(OBJFILES)
echo 'LD ' $@
mkdir -p $(@D)
$(CC) $(LDFLAGS) -o $@ $(OBJFILES) $(LDLIBS)
$(OBJFILES): $(BUILDDIR)/%.c.o: %.c
echo 'CC ' $@
mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -o $@ -c $<
# Header dependencies generated by -MMD. Keep this after the real targets so
# included files can never accidentally become Make's default goal.
-include $(DEPFILES)