This commit is contained in:
Nils O. Selåsdal
2026-05-11 22:37:01 +02:00
commit c9a51a85ea
14 changed files with 809 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
CC = gcc
LD = $(CC)
CFLAGS = -Wall -Wextra -Wno-unused-parameter -ggdb
CPPFLAGS += -Iinclude
LDFLAGS +=
ifndef DEBUG
CFLAGS += -O2
CPPFLAGS += -DNDEBUG
else
CPPFLAGS += -DDEBUG
endif
BUILDDIR = build
SOURCES = $(wildcard src/*.c)
OBJECTS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.o))
DEPS = $(addprefix $(BUILDDIR)/,$(SOURCES:.c=.d))
LIB = liblilalloc
TEST_SOURCES = $(wildcard test/*.c)
TEST_BINS = $(patsubst test/%.c,$(BUILDDIR)/test/%,$(TEST_SOURCES))
.PHONY: all
all: $(BUILDDIR)/$(LIB).a
$(BUILDDIR)/%.o: %.c
mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -c -o $@ $<
$(BUILDDIR)/$(LIB).a: $(OBJECTS)
ar crs $@ $^
$(BUILDDIR)/test/%: test/%.c $(BUILDDIR)/$(LIB).a
mkdir -p $(@D)
$(CC) $(CPPFLAGS) $(CFLAGS) -MMD -MP -o $@ $< $(BUILDDIR)/$(LIB).a
.PHONY: test
test: $(TEST_BINS)
@set -e; \
for test_bin in $(TEST_BINS); do \
echo "Running $$test_bin:" ; \
./$$test_bin; \
echo ; \
done
.PHONY: clean
clean:
rm -rf $(BUILDDIR)
ifeq (,$(findstring clean, $(MAKECMDGOALS)))
-include $(DEPS)
endif