1afed099bd2e759efd4bb63fdc525d3445f94cc13Daniel DunbarCLANG_LEVEL := ..
2afed099bd2e759efd4bb63fdc525d3445f94cc13Daniel Dunbarinclude $(CLANG_LEVEL)/Makefile
35f016e2cb5d11daeb237544de1c5d59f20fe1a6eReid Spencer
40126e5e9de7707253c9a129dfa03470f068da3a3Daniel Dunbar# Test in all immediate subdirectories if unset.
52f42d4a5f859f6ed19490f1b69ae66c204f9abfdDaniel Dunbarifdef TESTSUITE
62f42d4a5f859f6ed19490f1b69ae66c204f9abfdDaniel DunbarTESTDIRS := $(TESTSUITE:%=$(PROJ_SRC_DIR)/%)
72f42d4a5f859f6ed19490f1b69ae66c204f9abfdDaniel Dunbarelse
810aebbb5c8d928c4faa672c47d076cba1edefab7Daniel DunbarTESTDIRS ?= $(PROJ_SRC_DIR)
92f42d4a5f859f6ed19490f1b69ae66c204f9abfdDaniel Dunbarendif
1015bd799214ece987cc7eb8351a1a3bca6addfc7eChris Lattner
115e01e3cae6d0437b4c72b26402fa14e3c909ba7fDaniel Dunbar# 'lit' wants objdir paths, so it will pick up the lit.site.cfg.
125e01e3cae6d0437b4c72b26402fa14e3c909ba7fDaniel DunbarTESTDIRS := $(TESTDIRS:$(PROJ_SRC_DIR)%=$(PROJ_OBJ_DIR)%)
1358033318b10c68056382f7c523c7dcaa3ba14941Daniel Dunbar
146516813f776c51e3df05b1c6b5d4ffc94d9eb31aDaniel Dunbar# Allow EXTRA_TESTDIRS to provide additional test directories.
156516813f776c51e3df05b1c6b5d4ffc94d9eb31aDaniel DunbarTESTDIRS += $(EXTRA_TESTDIRS)
166516813f776c51e3df05b1c6b5d4ffc94d9eb31aDaniel Dunbar
17d5134b03c3fc1f3692bd9c9471310de997797bd4Daniel Dunbarifndef TESTARGS
189d294b9957f57512db8de37452024e82f0fe4f50Chris Lattnerifdef VERBOSE
19984ec4800958220226659f77196e826bff066a33Chris LattnerTESTARGS = -v
20039df91439aeccc6b8490ddd12b28d9541d80026Mike Stumpelse
2162c37119940e76b8b8923d99551a779e686f9d2fAndrew TrickTESTARGS = -s -v
229a2f1acf79b3f9960deeffe3fca1b8ee38572b84Mike Stumpendif
239d294b9957f57512db8de37452024e82f0fe4f50Chris Lattnerendif
249d294b9957f57512db8de37452024e82f0fe4f50Chris Lattner
25b258d8f961212490800f96b97275dd6961ca1cc0Daniel Dunbar# Make sure any extra test suites can find the main site config.
26b258d8f961212490800f96b97275dd6961ca1cc0Daniel DunbarLIT_ARGS := --param clang_site_config=$(PROJ_OBJ_DIR)/lit.site.cfg
27b258d8f961212490800f96b97275dd6961ca1cc0Daniel Dunbar
28a7afc452918bae2f7bc26f903e16b183ae92b1abNuno Lopesifdef VG
29b258d8f961212490800f96b97275dd6961ca1cc0Daniel Dunbar  LIT_ARGS += "--vg"
30a7afc452918bae2f7bc26f903e16b183ae92b1abNuno Lopesendif
31a7afc452918bae2f7bc26f903e16b183ae92b1abNuno Lopes
327a17889829b3f3655c47e2b01e282832fdb466d6Jeffrey Yasskinall:: lit.site.cfg Unit/lit.site.cfg
33724827ff93b2c563c4a90ea43aed959f4af35e54Daniel Dunbar	@ echo '--- Running clang tests for $(TARGET_TRIPLE) ---'
34b3496c7efda26c6c89c1e4403d8bb80b2eb9041bDouglas Gregor	@ $(PYTHON) $(LLVM_SRC_ROOT)/utils/lit/lit.py \
35b258d8f961212490800f96b97275dd6961ca1cc0Daniel Dunbar	  $(LIT_ARGS) $(TESTARGS) $(TESTDIRS)
3617feadf7529d7017588d716accc3717ccf2739f2Gabor Greif
3758033318b10c68056382f7c523c7dcaa3ba14941Daniel DunbarFORCE:
3858033318b10c68056382f7c523c7dcaa3ba14941Daniel Dunbar
3958033318b10c68056382f7c523c7dcaa3ba14941Daniel Dunbarlit.site.cfg: FORCE
401b720a90f20801c67bdd9036e1e6f3d222816665Daniel Dunbar	@echo "Making Clang 'lit.site.cfg' file..."
4141d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g > lit.tmp
4241d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> lit.tmp
4341d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_TOOLS_DIR@=$(ToolDir)=g >> lit.tmp
4441d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_LIBS_DIR@=$(LibDir)=g >> lit.tmp
4541d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@CLANG_SOURCE_DIR@=$(PROJ_SRC_DIR)/..=g >> lit.tmp
4641d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@CLANG_BINARY_DIR@=$(PROJ_OBJ_DIR)/..=g >> lit.tmp
47651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	@$(ECHOPATH) s=@CLANG_TOOLS_DIR@=$(ToolDir)=g >> lit.tmp
4841d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@TARGET_TRIPLE@=$(TARGET_TRIPLE)=g >> lit.tmp
49176edba5311f6eff0cad2631449885ddf4fbc9eaStephen Hines	@$(ECHOPATH) s=@LLVM_HOST_TRIPLE@=$(HOST_TRIPLE)=g >> lit.tmp
502450b82b7d110ac1a11ffde3be90b8255767381dRoman Divacky	@$(ECHOPATH) s=@ENABLE_CLANG_ARCMT@=$(ENABLE_CLANG_ARCMT)=g >> lit.tmp
512450b82b7d110ac1a11ffde3be90b8255767381dRoman Divacky	@$(ECHOPATH) s=@ENABLE_CLANG_STATIC_ANALYZER@=$(ENABLE_CLANG_STATIC_ANALYZER)=g >> lit.tmp
52651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	@$(ECHOPATH) s=@ENABLE_CLANG_EXAMPLES@=$(ENABLE_CLANG_EXAMPLES)=g >> lit.tmp
53651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines	@$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> lit.tmp
5441d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@sed -f lit.tmp $(PROJ_SRC_DIR)/lit.site.cfg.in > $@
5541d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@-rm -f lit.tmp
5658033318b10c68056382f7c523c7dcaa3ba14941Daniel Dunbar
577a17889829b3f3655c47e2b01e282832fdb466d6Jeffrey YasskinUnit/lit.site.cfg: FORCE
587a17889829b3f3655c47e2b01e282832fdb466d6Jeffrey Yasskin	@echo "Making Clang 'Unit/lit.site.cfg' file..."
597a17889829b3f3655c47e2b01e282832fdb466d6Jeffrey Yasskin	@$(MKDIR) $(dir $@)
6041d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g > unit.tmp
6141d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> unit.tmp
6241d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_TOOLS_DIR@=$(ToolDir)=g >> unit.tmp
6341d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_LIBS_DIR@=$(LibDir)=g >> unit.tmp
6441d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@CLANG_SOURCE_DIR@=$(PROJ_SRC_DIR)/..=g >> unit.tmp
6541d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@CLANG_BINARY_DIR@=$(PROJ_OBJ_DIR)/..=g >> unit.tmp
6641d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@TARGET_TRIPLE@=$(TARGET_TRIPLE)=g >> unit.tmp
6741d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@LLVM_BUILD_MODE@=$(BuildMode)=g >> unit.tmp
6841d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> unit.tmp
6941d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@SHLIBDIR@=$(SharedLibDir)=g >> unit.tmp
7041d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@$(ECHOPATH) s=@SHLIBPATH_VAR@=$(SHLIBPATH_VAR)=g >> unit.tmp
7141d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@sed -f unit.tmp $(PROJ_SRC_DIR)/Unit/lit.site.cfg.in > $@
7241d6d6984d84f28dc7fd6f1c5fa33c2c75c5cfddNAKAMURA Takumi	@-rm -f unit.tmp
737a17889829b3f3655c47e2b01e282832fdb466d6Jeffrey Yasskin
7417feadf7529d7017588d716accc3717ccf2739f2Gabor Greifclean::
75f758dc0812e7d0a846d2e07047a9c675e2ecb191Nuno Lopes	@ find . -name Output | xargs rm -fr
7617feadf7529d7017588d716accc3717ccf2739f2Gabor Greif
779d294b9957f57512db8de37452024e82f0fe4f50Chris Lattner.PHONY: all report clean
78