refactor: decouple trie into static library
This commit is contained in:
parent
17dcc1db06
commit
fb4a9a3b2e
12 changed files with 1967 additions and 7 deletions
27
Makefile
27
Makefile
|
|
@ -9,7 +9,10 @@ BUILD_DIR ?= build
|
|||
SRC_DIR ?= src
|
||||
TEST_DIR ?= test
|
||||
THIRDPARTY_DIR ?= thirdparty
|
||||
INC_DIRS ?= include $(THIRDPARTY_DIR)/include
|
||||
|
||||
INC_DIRS ?= include $(THIRDPARTY_DIR)/include trie/include
|
||||
LIBS ?= trie m
|
||||
LIB_DIRS ?= ./trie/build
|
||||
|
||||
BIN := $(BUILD_DIR)/$(BIN_FILENAME)
|
||||
|
||||
|
|
@ -36,7 +39,12 @@ INC_FLAGS := $(addprefix -I,$(INC_DIRS))
|
|||
# -MP: generate a dummy target for every header file (according to the docs it
|
||||
# prevents some errors when removing header files)
|
||||
CFLAGS ?= -MMD -MP -g
|
||||
INTERNALCFLAGS := $(INC_FLAGS) $(CFLAGS) -Wall -Wextra -DLANDER_VERSION=\"$(VERSION)\"
|
||||
_CFLAGS := $(INC_FLAGS) $(CFLAGS) -Wall -Wextra -DLANDER_VERSION=\"$(VERSION)\"
|
||||
|
||||
_LDFLAGS := $(addprefix -L,$(LIB_DIRS)) $(addprefix -l,$(LIBS)) $(LDFLAGS)
|
||||
|
||||
export CFLAGS
|
||||
export LDFLAGS
|
||||
|
||||
.PHONY: all
|
||||
all: bin
|
||||
|
|
@ -47,18 +55,22 @@ all: bin
|
|||
.PHONY: objs
|
||||
objs: $(OBJS)
|
||||
|
||||
.PHONY: libtrie
|
||||
libtrie:
|
||||
$(MAKE) -C trie
|
||||
|
||||
.PHONY: bin
|
||||
bin: $(BIN)
|
||||
$(BIN): $(OBJS)
|
||||
$(CC) $(INTERNALCFLAGS) $(LDFLAGS) -lm -o $@ $^
|
||||
$(BIN): $(OBJS) libtrie
|
||||
$(CC) -o $@ $(OBJS) $(_LDFLAGS)
|
||||
|
||||
$(BUILD_DIR)/$(SRC_DIR)/%.c.o: $(SRC_DIR)/%.c
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) $(INTERNALCFLAGS) -c $< -o $@
|
||||
$(CC) $(_CFLAGS) -c $< -o $@
|
||||
|
||||
$(BUILD_DIR)/$(THIRDPARTY_DIR)/%.c.o: $(THIRDPARTY_DIR)/%.c
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) $(INTERNALCFLAGS) -c $< -o $@
|
||||
$(CC) $(_CFLAGS) -c $< -o $@
|
||||
|
||||
|
||||
# =====TESTING=====
|
||||
|
|
@ -95,7 +107,7 @@ $(BINS_TEST): %: %.c.o
|
|||
# exposed.
|
||||
$(BUILD_DIR)/$(TEST_DIR)/%.c.o: $(TEST_DIR)/%.c
|
||||
mkdir -p $(dir $@)
|
||||
$(CC) $(INTERNALCFLAGS) -I$(TEST_DIR) \
|
||||
$(CC) $(_CFLAGS) -I$(TEST_DIR) \
|
||||
-I$(dir $(@:$(BUILD_DIR)/$(TEST_DIR)/%=$(SRC_DIR)/%)) \
|
||||
-c $< -o $@
|
||||
|
||||
|
|
@ -111,6 +123,7 @@ fmt:
|
|||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
$(MAKE) -C trie clean
|
||||
|
||||
|
||||
.PHONY: bear
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue