Fix infinite recursion in TestCodeError::TestInvalidDerivation()
[hiphop-php.git] / Makefile
blobf01584502631df805b591069fa4b907af35d8194
1 PROJECT_ROOT = .
2 include src/dirs.mk
4 TEST := $(if $(OUT_TOP),$(OUT_TOP),test/)test
6 ifneq ($(OUT_TOP),)
7 COPY = && cp $(OUT_TOP)/hphpi src/hphpi/hphpi && cp $(OUT_TOP)/hphp src/hphp/hphp
8 else
9 COPY =
10 endif
12 TOBUILD := $(filter clean% clobber% both debug release, $(MAKECMDGOALS))
13 CLEAN := $(filter clean% clobber%,$(MAKECMDGOALS))
14 TOTEST := $(filter-out $(TOBUILD), $(MAKECMDGOALS))
16 ifeq ($(if $(TOBUILD),1)$(if $(TOTEST),1),11)
17 $(TOTEST) : $(TOBUILD)
18 endif
20 ifneq ($(filter fast_tests slow_tests $(FAST_TESTS) $(SLOW_TESTS) TestCodeRun%,$(MAKECMDGOALS)),)
21 # run all tests, even if some fail
22 MAKEFLAGS += k
23 .NOTPARALLEL:
24 endif
26 QuickTests = "" "" $@
27 TestExt = "" "" $@
28 FAST_TESTS := QuickTests TestExt TestCodeRunEval
29 SLOW_TESTS := TestCodeRun TestServer
31 all: fast_tests
32 tags: ctags etags
33 ctags:
34 -$(V)cd src && ct
35 etags:
36 -$(V)cd src && ct -e
37 .PHONY: tags ctags etags
39 $(FAST_TESTS) $(SLOW_TESTS) TestCodeRunStatic: % : setup
40 cd src && $(TEST) $(if $($@),$($@),$@)
42 setup: $(CLEAN)
43 $(MAKE) -C src $(COPY)
45 fast_tests: $(FAST_TESTS)
46 slow_tests: $(SLOW_TESTS)
48 .PHONY: $(FAST_TESTS) $(SLOW_TESTS) TestCodeRun%
50 TestCodeRun-% TestCodeRunEval-% TestCodeRunStatic-% : setup
51 cd src && $(TEST) $(patsubst %-$*,%,$@) Test$*
53 .PHONY: debug release both check_by_type fast_tests slow_tests setup
54 check_by_type: $(CLEAN)
55 @if [ -z "$$OUTDIR_BY_TYPE" ] ; then \
56 echo "You need to set OUTDIR_BY_TYPE to build both DEBUG and RELEASE into the same client"; \
57 exit 1; \
60 release: check_by_type
61 $(MAKE) -Csrc RELEASE=1 DEBUG=
63 debug: check_by_type
64 $(MAKE) -Csrc RELEASE= DEBUG=1
66 both: debug release
68 clobber:
69 $(MAKE) -C src clobber
70 $(MAKE) -C facebook clobber
72 clean: clobber