8dc05e39cc8532e0cdb047042e36ee83f21170e7
[m6w6/btr] / share / btr / build / gnu.mk
1 BUILD_CLEAN=false
2 BUILD_ARGS=
3 TEST_ARGS=
4
5 .PHONY: all clean
6 .SUFFIXES:
7
8 CONFIGS=$(wildcard $(BRANCH_DIR)/configure.*)
9
10 all: clean $(REPORT)
11 $(SAY) "Result: $$(cat $(REPORT))"
12
13 clean: $(CONFIG_REPORT)
14 if $(BUILD_CLEAN); \
15 then \
16 cd $(BUILD_DIR) && \
17 make $(SILENT_FLAG) clean; \
18 fi;
19
20 $(REPORT): $(TEST_REPORT)
21 if test -z "$(LAST_REPORT)"; then \
22 echo 0; \
23 elif test -s "$(LAST_REPORT)" -o -s "$(TEST_REPORT)"; then \
24 cmp $(LAST_REPORT) $(TEST_REPORT) 2>&1 || true; \
25 else \
26 echo 0; \
27 fi;
28
29 $(TEST_REPORT): $(BUILD_REPORT)
30 $(SAY) "Running checks..."
31 cd $(BUILD_DIR) && \
32 make check $(TEST_ARGS) >../$@ 2>&1
33
34 $(BUILD_REPORT): $(CONFIG_REPORT)
35 $(SAY) "Making build..."
36 cd $(BUILD_DIR) && \
37 make -j $(CPUS) >../$@ 2>&1
38
39 $(CONFIG_REPORT): $(BRANCH_DIR)/configure $(BUILD_DIR)
40 $(SAY) "Running configure..."
41 cd $(BUILD_DIR) && \
42 ../$(BRANCH_DIR)/configure -C $(BUILD_ARGS) >../$@ 2>&1
43
44 $(BUILD_DIR):
45 mkdir -p $@
46
47 $(BRANCH_DIR)/configure: $(CONFIGS)
48 $(SAY) "Building configure..."
49 cd $(BRANCH_DIR) && \
50 autoreconf -i -f -W none >/dev/null
51
52 # vim: noet