diff --git a/Makefile b/Makefile index 4cdfe7c..46b7b6c 100644 --- a/Makefile +++ b/Makefile @@ -2,16 +2,16 @@ CONFIG=config.mak include $(CONFIG) -COV_DIR=$(OUT)coverage/ -APP_DIR=$(SRC_DIR)apps/ +COV_DIR=./coverage +APP_DIR=$(SRC_DIR)apps CC=gcc SHELL=/bin/bash 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/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 CCFLAGS += $(CCFLAGS_EXTRA) @@ -19,31 +19,33 @@ 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)) +C_SOURCES = $(shell find $(SRC_DIR) -name "*.c" -type f -print) +ALL_OBJS = $(patsubst $(SRC_DIR)/%.c, %.o, $(C_SOURCES)) +APP_OBJS = $(filter apps/%, $(ALL_OBJS)) TEST_OBJS = $(call FILTER,/tests/, $(ALL_OBJS)) OBJS = $(filter-out $(TEST_OBJS) $(APP_OBJS), $(ALL_OBJS)) APPS = $(patsubst %.o, %, $(APP_OBJS)) .PHONY: all -all: gbdb gbasm tests +all: $(APPS) .PHONY: gbdb gbasm -gbdb: $(OUT)apps/gbdb -gbasm: $(OUT)apps/gbasm +gbdb: apps/gbdb +gbasm: apps/gbasm +threading: apps/threading -.PHONY: gbasm-test tests +.PHONY: gbasm-test tests threading TESTS = $(patsubst %.o, %, $(filter %/test.o, $(ALL_OBJS))) tests: $(TESTS) $(ALL_OBJS): $(CONFIG) +.SUFFIXES: + .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}) @@ -51,10 +53,10 @@ info: $(info TEST_OBJS is ${TEST_OBJS}) -$(OUT)%.o: $(SRC_DIR)%.c $(CONFIG) +$(ALL_OBJS): %.o: $(SRC_DIR)/%.c $(CONFIG) @echo " CC $@" $(shell mkdir -p $(@D)) - $(CC) -c $(CCFLAGS) -o $@ $< + @$(CC) -c $(CCFLAGS) -o $@ $< objs: $(OBJS) $(info OBJS=$(OBJS)) @@ -62,9 +64,8 @@ objs: $(OBJS) .SECONDEXPANSION: $(APPS) $(TESTS): $(OBJS) $$@.o @echo " LD $@" - @echo " objs=$^" @$(shell mkdir -p $(@D)) - $(CC) $^ $(LDFLAGS) -o $@ + @$(CC) $^ $(LDFLAGS) -o $@ .PHONY: check cov-report @@ -86,11 +87,11 @@ 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) + @lcov -q -c -i -d ./ -o $(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 -c -d ./ -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 @@ -103,7 +104,7 @@ coverage-report: coverage .PHONY: clean realclean cov-clean cov-clean: - @find $(OUT) \( -iname *.gcno -o -iname *.gcda \) -delete + @find ./ \( -iname *.gcno -o -iname *.gcda \) -delete @rm -rf $(COV_DIR) clean: cov-clean diff --git a/configure b/configure index c0bf4ac..026ecfb 100755 --- a/configure +++ b/configure @@ -68,7 +68,6 @@ 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 SRC_DIR "$proj_dir/src" exit 0