From 23898c72b687c621a5e7d6b637ec98a9ddccbb98 Mon Sep 17 00:00:00 2001 From: Max Regan Date: Sun, 17 Sep 2017 19:02:46 -0400 Subject: [PATCH] WIP --- Makefile | 51 +++++++++++++++++++++++++++------------------------ configure | 4 ++-- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/Makefile b/Makefile index 31cb696..4cdfe7c 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,9 @@ -CONFIG = config.mak +CONFIG=config.mak include $(CONFIG) -COV_DIR=$(OUT)/coverage/ -APP_DIR=$(SRC_DIR)/apps/ +COV_DIR=$(OUT)coverage/ +APP_DIR=$(SRC_DIR)apps/ CC=gcc SHELL=/bin/bash @@ -11,7 +11,7 @@ CCFLAGS = -Wall -Werror CCFLAGS += -std=c99 -D_POSIX_C_SOURCE=200809L CCFLAGS += -I$(SRC_DIR) -CCFLAGS += -I/usr/include/glib-2.0/ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include +CCFLAGS += -I/usr/include/glib-2.0/ LDFLAGS += -lglib-2.0 CCFLAGS += $(CCFLAGS_EXTRA) @@ -20,26 +20,18 @@ LDFLAGS += $(LDFLAGS_EXTRA) FILTER = $(foreach v,$(2),$(if $(findstring $(1),$(v)),$(v),)) C_SOURCES = $(shell find $(SRC_DIR) -name "*.c") -ALL_OBJS = $(patsubst $(SRC_DIR)/%.c, $(OUT)/%.o, $(C_SOURCES)) -APP_OBJS = $(filter $(OUT)/apps/%, $(ALL_OBJS)) +ALL_OBJS = $(patsubst $(SRC_DIR)%.c, $(OUT)%.o, $(C_SOURCES)) +APP_OBJS = $(filter $(OUT)apps/%, $(ALL_OBJS)) TEST_OBJS = $(call FILTER,/tests/, $(ALL_OBJS)) OBJS = $(filter-out $(TEST_OBJS) $(APP_OBJS), $(ALL_OBJS)) APPS = $(patsubst %.o, %, $(APP_OBJS)) -$(info SRC_DIR is ${SRC_DIR}) -$(info OUT is ${OUT}) -$(info C_SOURCES is ${C_SOURCES}) -$(info OBJSs is ${OBJS}) -$(info ALL_OBJS is ${ALL_OBJS}) -$(info APP_OBJS is ${APP_OBJS}) -$(info TEST_OBJS is ${TEST_OBJS}) - .PHONY: all all: gbdb gbasm tests .PHONY: gbdb gbasm -gbdb: $(OUT)/apps/gbdb -gbasm: $(OUT)/apps/gbasm +gbdb: $(OUT)apps/gbdb +gbasm: $(OUT)apps/gbasm .PHONY: gbasm-test tests @@ -48,7 +40,18 @@ tests: $(TESTS) $(ALL_OBJS): $(CONFIG) -$(OUT)/%.o: $(SRC_DIR)/%.c $(CONFIG) +.PHONY: info +info: + $(info SRC_DIR is ${SRC_DIR}) + $(info OUT is ${OUT}) + $(info C_SOURCES is ${C_SOURCES}) + $(info OBJSs is ${OBJS}) + $(info ALL_OBJS is ${ALL_OBJS}) + $(info APP_OBJS is ${APP_OBJS}) + $(info TEST_OBJS is ${TEST_OBJS}) + + +$(OUT)%.o: $(SRC_DIR)%.c $(CONFIG) @echo " CC $@" $(shell mkdir -p $(@D)) $(CC) -c $(CCFLAGS) -o $@ $< @@ -59,6 +62,7 @@ objs: $(OBJS) .SECONDEXPANSION: $(APPS) $(TESTS): $(OBJS) $$@.o @echo " LD $@" + @echo " objs=$^" @$(shell mkdir -p $(@D)) $(CC) $^ $(LDFLAGS) -o $@ @@ -78,21 +82,23 @@ endef check: $(TESTS) $(run_tests) -COV_BASE=$(COV_DIR)/cov_base.info +COV_BASE=$(COV_DIR)cov_base.info .PHONY: $(COV_BASE) $(COV_BASE): @mkdir -p $(COV_DIR) @lcov -q -c -i -d $(OUT) -o $(COV_BASE) -$(COV_DIR)/coverage.info coverage: $(TESTS) $(COV_BASE) +$(COV_DIR)coverage.info coverage: $(TESTS) $(COV_BASE) $(call run_tests) @lcov -q -c -d $(OUT) -o $(COV_DIR)results.info -t results @lcov -q -a $(COV_DIR)results.info -o $(COV_DIR)coverage.info @lcov --summary $(COV_DIR)coverage.info coverage-report: coverage - @mkdir -p $(COV_DIR)/html/ - @genhtml -q --prefix $(PWD) --output-directory=$(COV_DIR)/html $(COV_DIR)/coverage.info + @mkdir -p $(COV_DIR)html/ + @genhtml -q --prefix $(PWD) \ + --output-directory=$(COV_DIR)html \ + $(COV_DIR)coverage.info .PHONY: clean realclean cov-clean @@ -105,6 +111,3 @@ clean: cov-clean realclean: clean @rm -f $(CONFIG) - -%.o: - $(info "caught in default rule $@") diff --git a/configure b/configure index 4fcfacc..c0bf4ac 100755 --- a/configure +++ b/configure @@ -68,7 +68,7 @@ fi add_define CCFLAGS_EXTRA "$ccflags_extra" add_define LDFLAGS_EXTRA "$ldflags_extra" -add_define OUT "$output_dir" -add_define SRC_DIR "$proj_dir/src" +add_define OUT "$output_dir/" +add_define SRC_DIR "$proj_dir/src/" exit 0