btr-hook and some generalizations
[m6w6/btr] / share / btr / build / php.mk
1 BTR_BUILD_CLEAN=false
2 BTR_BUILD_ARGS= --enable-debug
3 BTR_TEST_ARGS= -q
4
5 .PHONY: all clean
6 .SUFFIXES:
7
8 CONFIGS=$(wildcard $(BTR_BRANCH_DIR)/ext/*/config*.m4)
9
10 all: clean $(BTR_REPORT)
11 $(SAY) "Result: $$(cat $(BTR_REPORT))"
12
13 clean: $(BTR_CONFIG_REPORT)
14 if $(BTR_BUILD_CLEAN); \
15 then \
16 cd $(BTR_BUILD_DIR) && \
17 make $(BTR_SILENT_FLAG) clean; \
18 fi;
19
20 $(BTR_REPORT): $(BTR_TEST_REPORT)
21 @(\
22 TESTS_PASSED=$$(awk '/^Tests passed/{print $$4}' < $(BTR_TEST_REPORT)); \
23 TESTS_FAILED=$$(awk '/^Tests failed/{print $$4}' < $(BTR_TEST_REPORT)); \
24 printf "%d/%d" $$TESTS_PASSED $$TESTS_FAILED >$@; \
25 if test -s "$(BTR_LAST_REPORT)"; then \
26 LAST_PASSED=$$(awk '/^Tests passed/{print $$4}' < $(BTR_LAST_REPORT)); \
27 LAST_FAILED=$$(awk '/^Tests failed/{print $$4}' < $(BTR_LAST_REPORT)); \
28 DIFF_PASSED=$$(bc <<<"$$TESTS_PASSED - $$LAST_PASSED"); \
29 DIFF_FAILED=$$(bc <<<"$$TESTS_FAILED - $$LAST_FAILED"); \
30 printf " %+d/%+d" $$DIFF_PASSED $$DIFF_FAILED >>$@; \
31 fi; \
32 printf "\n" >>$@; \
33 )
34
35 $(BTR_TEST_REPORT): $(BTR_BUILD_REPORT)
36 $(SAY) "Running tests... "
37 cd $(BTR_BUILD_DIR) && \
38 make test TESTS="$(BTR_TEST_ARGS) -s ../../$@"
39
40 $(BTR_BUILD_REPORT): $(BTR_CONFIG_REPORT)
41 $(SAY) "Making build..."
42 (cd $(BTR_BUILD_DIR) && \
43 make -j $(BTR_CPUS) \
44 ) >$@ 2>&1
45
46 $(BTR_CONFIG_REPORT): $(BTR_BRANCH_DIR)/configure | $(BTR_BUILD_DIR) $(BTR_LOG_DIR)
47 $(SAY) "Running 'configure'..."
48 (cd $(BTR_BUILD_DIR) && \
49 ../../$(BTR_BRANCH_DIR)/configure -C $(BTR_BUILD_ARGS) \
50 ) >$@ 2>&1
51
52 $(BTR_BUILD_DIR):
53 mkdir -p $@
54
55 $(BTR_LOG_DIR):
56 mkdir -p $@
57
58 $(BTR_BRANCH_DIR)/configure: $(BTR_BRANCH_DIR)/buildconf $(CONFIGS)
59 $(SAY) "Building configure..."
60 cd $(BTR_BRANCH_DIR) && \
61 ./buildconf >/dev/null
62
63 # vim: noet