Initial
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user