add rules to build allocator lib

This commit is contained in:
2026-01-15 17:23:15 -05:00
parent 3e346312e2
commit cbc8d0a7c5

View File

@@ -1,9 +1,13 @@
ALLOC_LIB := $(BUILD_DIR)/lib/libnia.a
LIB := $(BUILD_DIR)/lib/libnickel.a LIB := $(BUILD_DIR)/lib/libnickel.a
BIN_DIR := $(BUILD_DIR)/bin BIN_DIR := $(BUILD_DIR)/bin
OBJ_DIR := $(BUILD_DIR)/obj OBJ_DIR := $(BUILD_DIR)/obj
NI_ALLOC_SRCS := $(wildcard src/nickel/ni_alloc/*.c)
NI_ALLOC_OBJS := $(patsubst src/ni_alloc/%.c,$(OBJ_DIR)/ni_alloc/%.o,$(NI_ALLOC_SRCS))
NICKEL_SRCS := $(wildcard src/nickel/*.c) NICKEL_SRCS := $(wildcard src/nickel/*.c)
NICKEL_OBJS := $(patsubst src/%.c,$(OBJ_DIR)/%.o,$(NICKEL_SRCS)) NICKEL_OBJS := $(patsubst src/nickel/%.c,$(OBJ_DIR)/nickel/%.o,$(NICKEL_SRCS))
TEST_SRCS := $(wildcard tests/*.c) TEST_SRCS := $(wildcard tests/*.c)
TEST_BIN := $(BIN_DIR)/tests TEST_BIN := $(BIN_DIR)/tests
@@ -14,7 +18,12 @@ TOOL_BINS := \
.PHONY: all clean test tools examples .PHONY: all clean test tools examples
all: $(LIB) tools $(TEST_BIN) all: $(ALLOC_LIB) $(LIB) tools $(TEST_BIN)
$(ALLOC_LIB): $(NI_ALLOC_OBJS)
@mkdir -p $(dir $@)
$(AR) rcs $@ $^
$(RANLIB) $@
$(LIB): $(NICKEL_OBJS) $(LIB): $(NICKEL_OBJS)
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@@ -26,9 +35,9 @@ $(OBJ_DIR)/%.o: src/%.c
$(CC) $(CFLAGS) -c $< -o $@ $(CC) $(CFLAGS) -c $< -o $@
# Tests link against libnickel.a # Tests link against libnickel.a
$(TEST_BIN): $(TEST_SRCS) $(LIB) $(TEST_BIN): $(TEST_SRCS) $(ALLOC_LIB) $(LIB)
@mkdir -p $(BIN_DIR) @mkdir -p $(BIN_DIR)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TEST_SRCS) $(LIB) $(LDLIBS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TEST_SRCS) $(ALLOC_LIB) $(LIB) $(LDLIBS)
# Tools (one main.c each; expand as needed) # Tools (one main.c each; expand as needed)
#$(BIN_DIR)/logscan: tools/logscan/main.c $(LIB) #$(BIN_DIR)/logscan: tools/logscan/main.c $(LIB)
@@ -39,10 +48,10 @@ $(TEST_BIN): $(TEST_SRCS) $(LIB)
# @mkdir -p $(BIN_DIR) # @mkdir -p $(BIN_DIR)
# $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS) # $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS)
tools: $(TOOL_BINS)
test: $(TEST_BIN) test: $(TEST_BIN)
$(TEST_BIN) $(TEST_BIN)
tools: $(TOOL_BINS)
clean: clean:
rm -rf $(BUILD_DIR) rm -rf $(BUILD_DIR)