build: make the build emit relative paths

This commit is contained in:
2017-11-19 18:26:39 -08:00
parent 3976d8635e
commit ebc65ac4a5
2 changed files with 21 additions and 21 deletions

View File

@@ -2,16 +2,16 @@ CONFIG=config.mak
include $(CONFIG) include $(CONFIG)
COV_DIR=$(OUT)coverage/ COV_DIR=./coverage
APP_DIR=$(SRC_DIR)apps/ APP_DIR=$(SRC_DIR)apps
CC=gcc CC=gcc
SHELL=/bin/bash SHELL=/bin/bash
CCFLAGS = -Wall -Werror CCFLAGS = -Wall -Werror
CCFLAGS += -std=c99 -D_POSIX_C_SOURCE=200809L CCFLAGS += -std=c11 -D_POSIX_C_SOURCE=200809L
CCFLAGS += -I$(SRC_DIR) CCFLAGS += -I$(SRC_DIR)
CCFLAGS += -I/usr/include/glib-2.0/ CCFLAGS += -I/usr/include/glib-2.0/ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
LDFLAGS += -lglib-2.0 LDFLAGS += -lglib-2.0
CCFLAGS += $(CCFLAGS_EXTRA) CCFLAGS += $(CCFLAGS_EXTRA)
@@ -19,31 +19,33 @@ LDFLAGS += $(LDFLAGS_EXTRA)
FILTER = $(foreach v,$(2),$(if $(findstring $(1),$(v)),$(v),)) 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" -type f -print)
ALL_OBJS = $(patsubst $(SRC_DIR)%.c, $(OUT)%.o, $(C_SOURCES)) ALL_OBJS = $(patsubst $(SRC_DIR)/%.c, %.o, $(C_SOURCES))
APP_OBJS = $(filter $(OUT)apps/%, $(ALL_OBJS)) APP_OBJS = $(filter apps/%, $(ALL_OBJS))
TEST_OBJS = $(call FILTER,/tests/, $(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))
.PHONY: all .PHONY: all
all: gbdb gbasm tests all: $(APPS)
.PHONY: gbdb gbasm .PHONY: gbdb gbasm
gbdb: $(OUT)apps/gbdb gbdb: apps/gbdb
gbasm: $(OUT)apps/gbasm gbasm: apps/gbasm
threading: apps/threading
.PHONY: gbasm-test tests .PHONY: gbasm-test tests threading
TESTS = $(patsubst %.o, %, $(filter %/test.o, $(ALL_OBJS))) TESTS = $(patsubst %.o, %, $(filter %/test.o, $(ALL_OBJS)))
tests: $(TESTS) tests: $(TESTS)
$(ALL_OBJS): $(CONFIG) $(ALL_OBJS): $(CONFIG)
.SUFFIXES:
.PHONY: info .PHONY: info
info: info:
$(info SRC_DIR is ${SRC_DIR}) $(info SRC_DIR is ${SRC_DIR})
$(info OUT is ${OUT})
$(info C_SOURCES is ${C_SOURCES}) $(info C_SOURCES is ${C_SOURCES})
$(info OBJSs is ${OBJS}) $(info OBJSs is ${OBJS})
$(info ALL_OBJS is ${ALL_OBJS}) $(info ALL_OBJS is ${ALL_OBJS})
@@ -51,10 +53,10 @@ info:
$(info TEST_OBJS is ${TEST_OBJS}) $(info TEST_OBJS is ${TEST_OBJS})
$(OUT)%.o: $(SRC_DIR)%.c $(CONFIG) $(ALL_OBJS): %.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) objs: $(OBJS)
$(info OBJS=$(OBJS)) $(info OBJS=$(OBJS))
@@ -62,9 +64,8 @@ objs: $(OBJS)
.SECONDEXPANSION: .SECONDEXPANSION:
$(APPS) $(TESTS): $(OBJS) $$@.o $(APPS) $(TESTS): $(OBJS) $$@.o
@echo " LD $@" @echo " LD $@"
@echo " objs=$^"
@$(shell mkdir -p $(@D)) @$(shell mkdir -p $(@D))
$(CC) $^ $(LDFLAGS) -o $@ @$(CC) $^ $(LDFLAGS) -o $@
.PHONY: check cov-report .PHONY: check cov-report
@@ -86,11 +87,11 @@ COV_BASE=$(COV_DIR)cov_base.info
.PHONY: $(COV_BASE) .PHONY: $(COV_BASE)
$(COV_BASE): $(COV_BASE):
@mkdir -p $(COV_DIR) @mkdir -p $(COV_DIR)
@lcov -q -c -i -d $(OUT) -o $(COV_BASE) @lcov -q -c -i -d ./ -o $(COV_BASE)
$(COV_DIR)coverage.info coverage: $(TESTS) $(COV_BASE) $(COV_DIR)coverage.info coverage: $(TESTS) $(COV_BASE)
$(call run_tests) $(call run_tests)
@lcov -q -c -d $(OUT) -o $(COV_DIR)results.info -t results @lcov -q -c -d ./ -o $(COV_DIR)results.info -t results
@lcov -q -a $(COV_DIR)results.info -o $(COV_DIR)coverage.info @lcov -q -a $(COV_DIR)results.info -o $(COV_DIR)coverage.info
@lcov --summary $(COV_DIR)coverage.info @lcov --summary $(COV_DIR)coverage.info
@@ -103,7 +104,7 @@ coverage-report: coverage
.PHONY: clean realclean cov-clean .PHONY: clean realclean cov-clean
cov-clean: cov-clean:
@find $(OUT) \( -iname *.gcno -o -iname *.gcda \) -delete @find ./ \( -iname *.gcno -o -iname *.gcda \) -delete
@rm -rf $(COV_DIR) @rm -rf $(COV_DIR)
clean: cov-clean clean: cov-clean

3
configure vendored
View File

@@ -68,7 +68,6 @@ fi
add_define CCFLAGS_EXTRA "$ccflags_extra" add_define CCFLAGS_EXTRA "$ccflags_extra"
add_define LDFLAGS_EXTRA "$ldflags_extra" add_define LDFLAGS_EXTRA "$ldflags_extra"
add_define OUT "$output_dir/" add_define SRC_DIR "$proj_dir/src"
add_define SRC_DIR "$proj_dir/src/"
exit 0 exit 0