WIP
This commit is contained in:
49
Makefile
49
Makefile
@@ -2,8 +2,8 @@ CONFIG = config.mak
|
|||||||
|
|
||||||
include $(CONFIG)
|
include $(CONFIG)
|
||||||
|
|
||||||
COV_DIR=$(OUT)/coverage/
|
COV_DIR=$(OUT)coverage/
|
||||||
APP_DIR=$(SRC_DIR)/apps/
|
APP_DIR=$(SRC_DIR)apps/
|
||||||
CC=gcc
|
CC=gcc
|
||||||
SHELL=/bin/bash
|
SHELL=/bin/bash
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ CCFLAGS = -Wall -Werror
|
|||||||
CCFLAGS += -std=c99 -D_POSIX_C_SOURCE=200809L
|
CCFLAGS += -std=c99 -D_POSIX_C_SOURCE=200809L
|
||||||
CCFLAGS += -I$(SRC_DIR)
|
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
|
LDFLAGS += -lglib-2.0
|
||||||
|
|
||||||
CCFLAGS += $(CCFLAGS_EXTRA)
|
CCFLAGS += $(CCFLAGS_EXTRA)
|
||||||
@@ -20,26 +20,18 @@ 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")
|
||||||
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 = $(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))
|
||||||
|
|
||||||
$(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
|
.PHONY: all
|
||||||
all: gbdb gbasm tests
|
all: gbdb gbasm tests
|
||||||
|
|
||||||
.PHONY: gbdb gbasm
|
.PHONY: gbdb gbasm
|
||||||
gbdb: $(OUT)/apps/gbdb
|
gbdb: $(OUT)apps/gbdb
|
||||||
gbasm: $(OUT)/apps/gbasm
|
gbasm: $(OUT)apps/gbasm
|
||||||
|
|
||||||
.PHONY: gbasm-test tests
|
.PHONY: gbasm-test tests
|
||||||
|
|
||||||
@@ -48,7 +40,18 @@ tests: $(TESTS)
|
|||||||
|
|
||||||
$(ALL_OBJS): $(CONFIG)
|
$(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 $@"
|
@echo " CC $@"
|
||||||
$(shell mkdir -p $(@D))
|
$(shell mkdir -p $(@D))
|
||||||
$(CC) -c $(CCFLAGS) -o $@ $<
|
$(CC) -c $(CCFLAGS) -o $@ $<
|
||||||
@@ -59,6 +62,7 @@ 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 $@
|
||||||
|
|
||||||
@@ -78,21 +82,23 @@ endef
|
|||||||
check: $(TESTS)
|
check: $(TESTS)
|
||||||
$(run_tests)
|
$(run_tests)
|
||||||
|
|
||||||
COV_BASE=$(COV_DIR)/cov_base.info
|
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 $(OUT) -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 $(OUT) -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
|
||||||
|
|
||||||
coverage-report: coverage
|
coverage-report: coverage
|
||||||
@mkdir -p $(COV_DIR)/html/
|
@mkdir -p $(COV_DIR)html/
|
||||||
@genhtml -q --prefix $(PWD) --output-directory=$(COV_DIR)/html $(COV_DIR)/coverage.info
|
@genhtml -q --prefix $(PWD) \
|
||||||
|
--output-directory=$(COV_DIR)html \
|
||||||
|
$(COV_DIR)coverage.info
|
||||||
|
|
||||||
.PHONY: clean realclean cov-clean
|
.PHONY: clean realclean cov-clean
|
||||||
|
|
||||||
@@ -105,6 +111,3 @@ clean: cov-clean
|
|||||||
|
|
||||||
realclean: clean
|
realclean: clean
|
||||||
@rm -f $(CONFIG)
|
@rm -f $(CONFIG)
|
||||||
|
|
||||||
%.o:
|
|
||||||
$(info "caught in default rule $@")
|
|
||||||
|
|||||||
4
configure
vendored
4
configure
vendored
@@ -68,7 +68,7 @@ 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 OUT "$output_dir/"
|
||||||
add_define SRC_DIR "$proj_dir/src"
|
add_define SRC_DIR "$proj_dir/src/"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
|||||||
Reference in New Issue
Block a user