ALLOC_LIB := $(BUILD_DIR)/lib/libnia.a LIB := $(BUILD_DIR)/lib/libnickel.a BIN_DIR := $(BUILD_DIR)/bin 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_OBJS := $(patsubst src/nickel/%.c,$(OBJ_DIR)/nickel/%.o,$(NICKEL_SRCS)) TEST_SRCS := $(wildcard tests/*.c) TEST_BIN := $(BIN_DIR)/tests TOOL_BINS := \ #$(BIN_DIR)/logscan \ #$(BIN_DIR)/dedupe .PHONY: all clean test tools examples all: $(ALLOC_LIB) $(LIB) tools $(TEST_BIN) $(ALLOC_LIB): $(NI_ALLOC_OBJS) @mkdir -p $(dir $@) $(AR) rcs $@ $^ $(RANLIB) $@ $(LIB): $(NICKEL_OBJS) @mkdir -p $(dir $@) $(AR) rcs $@ $^ $(RANLIB) $@ $(OBJ_DIR)/%.o: src/%.c @mkdir -p $(dir $@) $(CC) $(CFLAGS) -c $< -o $@ # Tests link against libnickel.a $(TEST_BIN): $(TEST_SRCS) $(ALLOC_LIB) $(LIB) @mkdir -p $(BIN_DIR) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(TEST_SRCS) $(ALLOC_LIB) $(LIB) $(LDLIBS) # Tools (one main.c each; expand as needed) #$(BIN_DIR)/logscan: tools/logscan/main.c $(LIB) # @mkdir -p $(BIN_DIR) # $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS) #$(BIN_DIR)/dedupe: tools/dedupe/main.c $(LIB) # @mkdir -p $(BIN_DIR) # $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIB) $(LDLIBS) tools: $(TOOL_BINS) test: $(TEST_BIN) $(TEST_BIN) clean: rm -rf $(BUILD_DIR)