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
+7 -11
View File
@@ -1,6 +1,6 @@
CC = gcc CC = gcc
LD = $(CC) LD = $(CC)
CFLAGS = -Wall -Wextra -Wno-unused-parameter -ggdb CFLAGS = -std=gnu17 -Wall -Wextra -Wno-unused-parameter -ggdb
CPPFLAGS += -Iinclude CPPFLAGS += -Iinclude
LDFLAGS += LDFLAGS +=
ifndef DEBUG ifndef DEBUG
@@ -15,25 +15,23 @@ SOURCES = $(wildcard src/*.c)
TEST_SOURCES = $(wildcard test/*.c) TEST_SOURCES = $(wildcard test/*.c)
OBJECTS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.o)) OBJECTS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.o))
DEPS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.d)) $(addprefix $(BUILDDIR)/,$(TEST_SOURCES:.c=.d)) 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)) TEST_BINS = $(patsubst test/%.c,$(BUILDDIR)/test/%,$(TEST_SOURCES))
.PHONY: all .PHONY: all
all: $(BUILDDIR)/$(LIB).a all: $(BUILDDIR)/$(LIB)
$(BUILDDIR)/%.o: %.c $(BUILDDIR)/%.o: %.c Makefile
mkdir -p $(@D) mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c -o $@ $< $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c -o $@ $<
$(BUILDDIR)/$(LIB).a: $(OBJECTS) $(BUILDDIR)/$(LIB): $(OBJECTS)
ar crs $@ $^ ar crs $@ $^
$(BUILDDIR)/test/%: test/%.c $(BUILDDIR)/$(LIB)
$(BUILDDIR)/test/%: test/%.c $(BUILDDIR)/$(LIB).a
mkdir -p $(@D) mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -o $@ $< $(BUILDDIR)/$(LIB).a $(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -o $@ $< $(BUILDDIR)/$(LIB)
.PHONY: test .PHONY: test
test: $(TEST_BINS) test: $(TEST_BINS)
@@ -44,8 +42,6 @@ test: $(TEST_BINS)
echo ; \ echo ; \
done done
.PHONY: clean .PHONY: clean
clean: clean:
rm -rf $(BUILDDIR) rm -rf $(BUILDDIR)