blob: f4ed151cfe9407a749c09f67904664d1ebf97b26 [file] [log] [blame]
Chris Lattner12d632c2004-11-07 05:05:37 +00001#===- test/Makefile ----------------------------------------*- Makefile -*--===#
Mikhail Glushenkov38ead322009-03-06 12:25:56 +00002#
Chris Lattner12d632c2004-11-07 05:05:37 +00003# The LLVM Compiler Infrastructure
4#
Chris Lattner57360d12007-12-29 20:11:13 +00005# This file is distributed under the University of Illinois Open Source
6# License. See LICENSE.TXT for details.
Mikhail Glushenkov38ead322009-03-06 12:25:56 +00007#
Chris Lattner12d632c2004-11-07 05:05:37 +00008#===------------------------------------------------------------------------===#
9
Misha Brukman5eb009a2008-12-31 17:38:27 +000010LEVEL = ..
Mikhail Glushenkov38ead322009-03-06 12:25:56 +000011DIRS =
Chris Lattner52a4e852002-01-23 21:36:59 +000012
Reid Spencer135e1d82004-12-06 05:35:38 +000013all:: check-local
John Criswellee29d2a2003-09-06 15:12:21 +000014
John Criswelld184c672003-10-27 17:46:42 +000015# Include other test rules
John Criswelld184c672003-10-27 17:46:42 +000016include Makefile.tests
17
Chris Lattner12d632c2004-11-07 05:05:37 +000018#===------------------------------------------------------------------------===#
19# DejaGNU testing support
20#===------------------------------------------------------------------------===#
21
Shantonu Sen1b6d3da2009-06-26 05:44:53 +000022ifneq ($(GREP_OPTIONS),)
23$(warning GREP_OPTIONS environment variable may interfere with test results)
24endif
25
Gabor Greif684ed3d2008-02-26 12:08:55 +000026ifdef VERBOSE
Chris Lattner0dd0d492010-04-17 19:04:03 +000027LIT_ARGS := -v
Daniel Dunbar70a3b772009-09-08 05:31:44 +000028else
29LIT_ARGS := -s -v
Gabor Greif684ed3d2008-02-26 12:08:55 +000030endif
31
Tanya Lattner491e9cd2004-11-07 21:39:41 +000032ifdef TESTSUITE
Daniel Dunbar70a3b772009-09-08 05:31:44 +000033LIT_TESTSUITE := $(TESTSUITE)
Daniel Dunbar70a3b772009-09-08 05:31:44 +000034else
35LIT_TESTSUITE := .
Tanya Lattner491e9cd2004-11-07 21:39:41 +000036endif
37
Daniel Dunbar2891dbb2009-09-20 19:04:28 +000038# Check what to run for -all.
Daniel Dunbar34185792009-09-20 06:17:21 +000039LIT_ALL_TESTSUITES := $(LIT_TESTSUITE)
Daniel Dunbar2891dbb2009-09-20 19:04:28 +000040
Chandler Carruth2378aa72012-06-28 00:03:15 +000041extra-site-cfgs::
42.PHONY: extra-site-cfgs
Daniel Dunbar2891dbb2009-09-20 19:04:28 +000043
44ifneq ($(strip $(filter check-local-all,$(MAKECMDGOALS))),)
Daniel Dunbar34185792009-09-20 06:17:21 +000045ifndef TESTSUITE
NAKAMURA Takumi40a43602011-10-16 02:54:14 +000046ifeq ($(shell test -f $(PROJ_OBJ_DIR)/../tools/clang/Makefile && echo OK), OK)
Daniel Dunbar34185792009-09-20 06:17:21 +000047LIT_ALL_TESTSUITES += $(PROJ_OBJ_DIR)/../tools/clang/test
Daniel Dunbar2891dbb2009-09-20 19:04:28 +000048
49# Force creation of Clang's lit.site.cfg.
Chandler Carruth2378aa72012-06-28 00:03:15 +000050clang-site-cfg: FORCE
NAKAMURA Takumiee0056d2011-02-03 07:36:02 +000051 $(MAKE) -C $(PROJ_OBJ_DIR)/../tools/clang/test lit.site.cfg Unit/lit.site.cfg
Chandler Carruth2378aa72012-06-28 00:03:15 +000052extra-site-cfgs:: clang-site-cfg
Daniel Dunbar2891dbb2009-09-20 19:04:28 +000053endif
Chandler Carruthf5ecf022012-08-09 20:26:41 +000054
55ifeq ($(shell test -f $(PROJ_OBJ_DIR)/../tools/clang/tools/extra/Makefile && echo OK), OK)
56LIT_ALL_TESTSUITES += $(PROJ_OBJ_DIR)/../tools/clang/tools/extra/test
Galina Kistanova57ba1222013-03-22 18:54:14 +000057
58# Force creation of Clang Tools' lit.site.cfg.
59clang-tools-site-cfg: FORCE
Benjamin Kramer45513422014-08-13 20:41:26 +000060 $(MAKE) -C $(PROJ_OBJ_DIR)/../tools/clang/tools/extra/test lit.site.cfg Unit/lit.site.cfg
Galina Kistanova57ba1222013-03-22 18:54:14 +000061extra-site-cfgs:: clang-tools-site-cfg
Chandler Carruthf5ecf022012-08-09 20:26:41 +000062endif
Sebastian Popb02834c2013-05-20 18:49:15 +000063
Iain Sandoed276b152014-06-06 09:06:25 +000064ifeq ($(shell test -f $(PROJ_OBJ_DIR)/../tools/lld/Makefile && echo OK), OK)
65LIT_ALL_TESTSUITES += $(PROJ_OBJ_DIR)/../tools/lld/test
66
67# Force creation of lld's lit.site.cfg.
68lld-site-cfg: FORCE
69 $(MAKE) -C $(PROJ_OBJ_DIR)/../tools/lld/test lit.site.cfg Unit/lit.site.cfg
70extra-site-cfgs:: lld-site-cfg
71endif
72
Sebastian Popb02834c2013-05-20 18:49:15 +000073ifeq ($(shell test -f $(PROJ_OBJ_DIR)/../tools/polly/Makefile && echo OK), OK)
74LIT_ALL_TESTSUITES += $(PROJ_OBJ_DIR)/../tools/polly/test
75
76# Force creation of Polly's lit.site.cfg.
77polly-tools-site-cfg: FORCE
78 $(MAKE) -C $(PROJ_OBJ_DIR)/../tools/polly/test lit.site.cfg
79extra-site-cfgs:: polly-tools-site-cfg
80endif
Daniel Dunbar34185792009-09-20 06:17:21 +000081endif
82endif
83
Jeffrey Yasskinfeada942009-11-16 23:32:30 +000084# ulimits like these are redundantly enforced by the buildbots, so
85# just removing them here won't work.
Rafael Espindola1c9cace2014-08-14 15:15:09 +000086# Solaris does not have the -m flag for ulimit
Anton Korobeynikove55db742009-08-18 00:40:33 +000087ifeq ($(HOST_OS),SunOS)
Dimitry Andric95c105e2015-02-13 19:45:19 +000088ULIMIT=ulimit -t 1200 ; ulimit -d 512000 ; ulimit -v 512000 ;
Edward O'Callaghan7e434392009-10-26 02:37:56 +000089else # !SunOS
Benjamin Kramerf81093a2012-12-09 10:34:22 +000090# Newer versions of python try to allocate an insane amount of address space for
91# its thread-local storage, don't set a limit here.
Patrik Hagglund775a2662013-03-12 12:38:10 +000092# When -v is not used, then -s has to be used to limit the stack size.
Benjamin Kramerf81093a2012-12-09 10:34:22 +000093# FIXME: Those limits should be enforced by lit instead of globally.
Dimitry Andric95c105e2015-02-13 19:45:19 +000094ULIMIT=ulimit -t 1200 ; ulimit -d 512000 ; ulimit -m 512000 ; ulimit -s 8192 ;
Edward O'Callaghan7e434392009-10-26 02:37:56 +000095endif # SunOS
Daniel Dunbar54f97592009-08-01 03:37:54 +000096
Chandler Carruth2378aa72012-06-28 00:03:15 +000097check-local:: lit.site.cfg Unit/lit.site.cfg
Daniel Dunbar70a3b772009-09-08 05:31:44 +000098 ( $(ULIMIT) \
Saleem Abdulrasool3ef8b0a2013-01-30 04:07:37 +000099 $(PYTHON) $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) )
Daniel Dunbar70a3b772009-09-08 05:31:44 +0000100
Chandler Carruth2378aa72012-06-28 00:03:15 +0000101# This is a legacy alias dating from when both DejaGNU and lit were in use.
102check-local-lit:: check-local
103
104check-local-all:: lit.site.cfg Unit/lit.site.cfg extra-site-cfgs
Daniel Dunbar34185792009-09-20 06:17:21 +0000105 ( $(ULIMIT) \
Saleem Abdulrasool3ef8b0a2013-01-30 04:07:37 +0000106 $(PYTHON) $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_ALL_TESTSUITES) )
Daniel Dunbar34185792009-09-20 06:17:21 +0000107
Tanya Lattner9f97b4c2004-12-04 06:25:08 +0000108clean::
Reid Spencerfb15c002007-01-17 07:59:14 +0000109 $(RM) -rf `find $(LLVM_OBJ_ROOT)/test -name Output -type d -print`
Tanya Lattner7a7cb4c2004-11-07 04:59:52 +0000110
Nuno Lopes2bdc07b2008-10-07 14:48:14 +0000111FORCE:
112
Andrew Trickf2a58422011-06-22 23:23:19 +0000113ifeq ($(DISABLE_ASSERTIONS),1)
114ENABLE_ASSERTIONS=0
115else
116ENABLE_ASSERTIONS=1
117endif
118
Chandler Carruth96f41a12012-06-28 00:16:51 +0000119lit.site.cfg: FORCE
Daniel Dunbar2891dbb2009-09-20 19:04:28 +0000120 @echo "Making LLVM 'lit.site.cfg' file..."
Tim Northoverd66ad6c2013-05-04 07:36:23 +0000121 @$(ECHOPATH) s=@LLVM_HOST_TRIPLE@=$(HOST_TRIPLE)=g > lit.tmp
Peter Collingbournefbb662f2013-01-16 17:27:22 +0000122 @$(ECHOPATH) s=@TARGET_TRIPLE@=$(TARGET_TRIPLE)=g >> lit.tmp
Chandler Carruth96f41a12012-06-28 00:16:51 +0000123 @$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g >> lit.tmp
NAKAMURA Takumi02724852011-03-08 12:25:10 +0000124 @$(ECHOPATH) s=@LLVM_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> lit.tmp
125 @$(ECHOPATH) s=@LLVM_TOOLS_DIR@=$(ToolDir)=g >> lit.tmp
Peter Zotov91bf8872014-12-30 03:24:11 +0000126 @$(ECHOPATH) s=@LLVM_LIBRARY_DIR@=$(LibDir)=g >> lit.tmp
Chandler Carruth96f41a12012-06-28 00:16:51 +0000127 @$(ECHOPATH) s=@SHLIBDIR@=$(SharedLibDir)=g >> lit.tmp
128 @$(ECHOPATH) s=@SHLIBEXT@=$(SHLIBEXT)=g >> lit.tmp
Alp Toker1214e712014-01-22 21:52:35 +0000129 @$(ECHOPATH) s=@EXEEXT@=$(EXEEXT)=g >> lit.tmp
Saleem Abdulrasool3ef8b0a2013-01-30 04:07:37 +0000130 @$(ECHOPATH) s=@PYTHON_EXECUTABLE@=$(PYTHON)=g >> lit.tmp
Chandler Carruth15db8182015-02-14 09:43:57 +0000131 @$(ECHOPATH) s=@GOLD_EXECUTABLE@=ld=g >> lit.tmp
Peter Zotov47f88b52014-10-30 08:29:45 +0000132 @$(ECHOPATH) s=@OCAMLFIND@=$(OCAMLFIND)=g >> lit.tmp
Hal Finkel6fef94e2014-11-13 09:29:30 +0000133 @$(ECHOPATH) s!@OCAMLFLAGS@!$(addprefix -cclib ,$(LDFLAGS))!g >> lit.tmp
Peter Zotov47f88b52014-10-30 08:29:45 +0000134 @$(ECHOPATH) s=@HAVE_OCAMLOPT@=$(HAVE_OCAMLOPT)=g >> lit.tmp
135 @$(ECHOPATH) s=@HAVE_OCAML_OUNIT@=$(HAVE_OCAML_OUNIT)=g >> lit.tmp
Peter Collingbourne798ace22014-10-16 22:48:02 +0000136 @$(ECHOPATH) s=@GO_EXECUTABLE@=$(GO)=g >> lit.tmp
137 @$(ECHOPATH) s!@HOST_CC@!$(CC)!g >> lit.tmp
138 @$(ECHOPATH) s!@HOST_CXX@!$(CXX)!g >> lit.tmp
Chandler Carruth14e55b12014-10-21 00:36:28 +0000139 @$(ECHOPATH) s!@HOST_LDFLAGS@!$(LDFLAGS)!g >> lit.tmp
NAKAMURA Takumi02724852011-03-08 12:25:10 +0000140 @$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> lit.tmp
Andrew Trick75d33872011-06-23 17:52:36 +0000141 @$(ECHOPATH) s=@ENABLE_ASSERTIONS@=$(ENABLE_ASSERTIONS)=g >> lit.tmp
Eli Bendersky0f0c4112012-02-16 06:28:33 +0000142 @$(ECHOPATH) s=@TARGETS_TO_BUILD@=$(TARGETS_TO_BUILD)=g >> lit.tmp
143 @$(ECHOPATH) s=@LLVM_BINDINGS@=$(BINDINGS_TO_BUILD)=g >> lit.tmp
Danil Malyshevbb8cef52012-05-17 21:07:47 +0000144 @$(ECHOPATH) s=@HOST_OS@=$(HOST_OS)=g >> lit.tmp
145 @$(ECHOPATH) s=@HOST_ARCH@=$(HOST_ARCH)=g >> lit.tmp
Alexey Samsonov005159e2013-04-23 10:17:34 +0000146 @$(ECHOPATH) s=@HAVE_LIBZ@=$(HAVE_LIBZ)=g >> lit.tmp
Zachary Turnerca27e722015-02-22 07:01:41 +0000147 @$(ECHOPATH) s=@HAVE_DIA_SDK@=0=g >> lit.tmp
NAKAMURA Takumi02724852011-03-08 12:25:10 +0000148 @sed -f lit.tmp $(PROJ_SRC_DIR)/lit.site.cfg.in > $@
149 @-rm -f lit.tmp
Daniel Dunbardb5fe932009-09-14 02:39:01 +0000150
Torok Edwine1b691f2009-10-02 09:30:03 +0000151Unit/lit.site.cfg: $(PROJ_OBJ_DIR)/Unit/.dir FORCE
Daniel Dunbar2891dbb2009-09-20 19:04:28 +0000152 @echo "Making LLVM unittest 'lit.site.cfg' file..."
NAKAMURA Takumi02724852011-03-08 12:25:10 +0000153 @$(ECHOPATH) s=@LLVM_SOURCE_DIR@=$(LLVM_SRC_ROOT)=g > unit.tmp
154 @$(ECHOPATH) s=@LLVM_BINARY_DIR@=$(LLVM_OBJ_ROOT)=g >> unit.tmp
155 @$(ECHOPATH) s=@LLVM_TOOLS_DIR@=$(ToolDir)=g >> unit.tmp
NAKAMURA Takumi02724852011-03-08 12:25:10 +0000156 @$(ECHOPATH) s=@LLVM_BUILD_MODE@=$(BuildMode)=g >> unit.tmp
157 @$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> unit.tmp
158 @$(ECHOPATH) s=@SHLIBDIR@=$(SharedLibDir)=g >> unit.tmp
Danil Malyshevbb8cef52012-05-17 21:07:47 +0000159 @$(ECHOPATH) s=@HOST_OS@=$(HOST_OS)=g >> unit.tmp
160 @$(ECHOPATH) s=@HOST_ARCH@=$(HOST_ARCH)=g >> lit.tmp
NAKAMURA Takumi02724852011-03-08 12:25:10 +0000161 @sed -f unit.tmp $(PROJ_SRC_DIR)/Unit/lit.site.cfg.in > $@
162 @-rm -f unit.tmp