WIP: makefile: fixx relative paths
This commit is contained in:
26
Makefile
26
Makefile
@@ -19,13 +19,23 @@ LDFLAGS += -lglib-2.0
|
|||||||
CCFLAGS += $(CCFLAGS_EXTRA)
|
CCFLAGS += $(CCFLAGS_EXTRA)
|
||||||
LDFLAGS += $(LDFLAGS_EXTRA)
|
LDFLAGS += $(LDFLAGS_EXTRA)
|
||||||
|
|
||||||
|
FILTER = $(foreach v,$(2),$(if $(findstring $(1),$(v)),$(v),))
|
||||||
|
|
||||||
C_SOURCES = $(shell find $(SRC_DIR) -name "*.c")
|
C_SOURCES = $(shell find $(SRC_DIR) -name "*.c")
|
||||||
ALL_OBJS = $(patsubst $(SRC_DIR)/%.c, $(OUT)/%.o, $(C_SOURCES))
|
ALL_OBJS = $(patsubst $(SRC_DIR)%.c, $(OUT)%.o, $(C_SOURCES))
|
||||||
APP_OBJS = $(filter $(OUT)/apps/%, $(ALL_OBJS))
|
APP_OBJS = $(filter $(OUT)/apps/%, $(ALL_OBJS))
|
||||||
TEST_OBJS = $(filter $(OUT)%test.o, $(ALL_OBJS))
|
TEST_OBJS = $(call FILTER,/tests/, $(ALL_OBJS))
|
||||||
OBJS = $(filter-out $(TEST_OBJS) $(APP_OBJS), $(ALL_OBJS))
|
OBJS = $(filter-out $(TEST_OBJS) $(APP_OBJS), $(ALL_OBJS))
|
||||||
APPS = $(patsubst %.o, %, $(APP_OBJS))
|
APPS = $(patsubst %.o, %, $(APP_OBJS))
|
||||||
|
|
||||||
|
$(info SRC_DIR is ${SRC_DIR})
|
||||||
|
$(info OUT is ${OUT})
|
||||||
|
$(info C_SOURCES is ${C_SOURCES})
|
||||||
|
$(info OBJSs ${OBJS})
|
||||||
|
$(info ALL_OBJS is ${ALL_OBJS})
|
||||||
|
$(info APP_OBJS is ${APP_OBJS})
|
||||||
|
$(info TEST_OBJS is ${TEST_OBJS})
|
||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: gbdb gbasm tests
|
all: gbdb gbasm tests
|
||||||
|
|
||||||
@@ -38,19 +48,21 @@ gbasm: $(OUT)/apps/gbasm
|
|||||||
TESTS = $(patsubst %.o, %, $(filter %/test.o, $(ALL_OBJS)))
|
TESTS = $(patsubst %.o, %, $(filter %/test.o, $(ALL_OBJS)))
|
||||||
tests: $(TESTS)
|
tests: $(TESTS)
|
||||||
|
|
||||||
$(ALL_APPS) $(ALL_OBJS): $(CONFIG)
|
$(ALL_OBJS): $(CONFIG)
|
||||||
|
|
||||||
$(OUT)/%.o: $(SRC_DIR)/%.c $(CONFIG)
|
$(OUT)%.o: $(SRC_DIR)%.c $(CONFIG)
|
||||||
@echo " CC $@"
|
@echo " CC $@"
|
||||||
@$(shell mkdir -p $(@D))
|
$(shell mkdir -p $(@D))
|
||||||
@$(CC) -c $(CCFLAGS) -o $@ $<
|
$(CC) -c $(CCFLAGS) -o $@ $<
|
||||||
|
|
||||||
|
objs: $(OBJS)
|
||||||
|
$(info OBJS=$(OBJS))
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
.SECONDEXPANSION:
|
||||||
$(APPS) $(TESTS): $(OBJS) $$@.o
|
$(APPS) $(TESTS): $(OBJS) $$@.o
|
||||||
@echo " LD $@"
|
@echo " LD $@"
|
||||||
@$(shell mkdir -p $(@D))
|
@$(shell mkdir -p $(@D))
|
||||||
@$(CC) $^ $(LDFLAGS) -o $@
|
$(CC) $^ $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
|
||||||
.PHONY: check cov-report
|
.PHONY: check cov-report
|
||||||
|
|||||||
Reference in New Issue
Block a user