Rebuild all if Makefile changes

This commit is contained in:
Nils O. Selåsdal
2026-05-12 00:14:30 +02:00
parent 24718b4956
commit 0180ce47e5
+8 -12
View File
@@ -1,6 +1,6 @@
CC = gcc
LD = $(CC)
CFLAGS = -Wall -Wextra -Wno-unused-parameter -ggdb
CFLAGS = -std=gnu17 -Wall -Wextra -Wno-unused-parameter -ggdb
CPPFLAGS += -Iinclude
LDFLAGS +=
ifndef DEBUG
@@ -9,31 +9,29 @@ CPPFLAGS += -DNDEBUG
else
CPPFLAGS += -DDEBUG
endif
BUILDDIR = build
BUILDDIR = build
SOURCES = $(wildcard src/*.c)
TEST_SOURCES = $(wildcard test/*.c)
OBJECTS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.o))
DEPS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.d)) $(addprefix $(BUILDDIR)/,$(TEST_SOURCES:.c=.d))
LIB = liblilalloc
LIB = liblilalloc.a
TEST_BINS = $(patsubst test/%.c,$(BUILDDIR)/test/%,$(TEST_SOURCES))
.PHONY: all
all: $(BUILDDIR)/$(LIB).a
all: $(BUILDDIR)/$(LIB)
$(BUILDDIR)/%.o: %.c
$(BUILDDIR)/%.o: %.c Makefile
mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c -o $@ $<
$(BUILDDIR)/$(LIB).a: $(OBJECTS)
$(BUILDDIR)/$(LIB): $(OBJECTS)
ar crs $@ $^
$(BUILDDIR)/test/%: test/%.c $(BUILDDIR)/$(LIB).a
$(BUILDDIR)/test/%: test/%.c $(BUILDDIR)/$(LIB)
mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -o $@ $< $(BUILDDIR)/$(LIB).a
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -o $@ $< $(BUILDDIR)/$(LIB)
.PHONY: test
test: $(TEST_BINS)
@@ -44,8 +42,6 @@ test: $(TEST_BINS)
echo ; \
done
.PHONY: clean
clean:
rm -rf $(BUILDDIR)