Rebuild all if Makefile changes
This commit is contained in:
@@ -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
|
||||||
@@ -9,31 +9,29 @@ CPPFLAGS += -DNDEBUG
|
|||||||
else
|
else
|
||||||
CPPFLAGS += -DDEBUG
|
CPPFLAGS += -DDEBUG
|
||||||
endif
|
endif
|
||||||
BUILDDIR = build
|
BUILDDIR = build
|
||||||
|
|
||||||
SOURCES = $(wildcard src/*.c)
|
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)
|
||||||
|
|||||||
Reference in New Issue
Block a user