1 #===- test/Makefile ----------------------------------------*- Makefile -*--===#
3 # The LLVM Compiler Infrastructure
5 # This file is distributed under the University of Illinois Open Source
6 # License. See LICENSE.TXT for details.
8 #===------------------------------------------------------------------------===#
15 # Include other test rules
16 include Makefile.tests
18 #===------------------------------------------------------------------------===#
19 # DejaGNU testing support
20 #===------------------------------------------------------------------------===#
22 ifneq ($(GREP_OPTIONS
),)
23 $(warning GREP_OPTIONS environment variable may interfere with
test results
)
33 LIT_TESTSUITE
:= $(TESTSUITE
)
38 # Check what to run for -all.
39 LIT_ALL_TESTSUITES
:= $(LIT_TESTSUITE
)
42 .PHONY
: extra-site-cfgs
44 ifneq ($(strip $(filter check-local-all
,$(MAKECMDGOALS
))),)
46 ifeq ($(shell test -f
$(PROJ_OBJ_DIR
)/..
/tools
/clang
/Makefile
&& echo OK
), OK
)
47 LIT_ALL_TESTSUITES
+= $(PROJ_OBJ_DIR
)/..
/tools
/clang
/test
49 # Force creation of Clang's lit.site.cfg.
51 $(MAKE
) -C
$(PROJ_OBJ_DIR
)/..
/tools
/clang
/test lit.site.cfg Unit
/lit.site.cfg
52 extra-site-cfgs
:: clang-site-cfg
55 ifeq ($(shell test -f
$(PROJ_OBJ_DIR
)/..
/tools
/clang
/tools
/extra
/Makefile
&& echo OK
), OK
)
56 LIT_ALL_TESTSUITES
+= $(PROJ_OBJ_DIR
)/..
/tools
/clang
/tools
/extra
/test
58 # Force creation of Clang Tools' lit.site.cfg.
59 clang-tools-site-cfg
: FORCE
60 $(MAKE
) -C
$(PROJ_OBJ_DIR
)/..
/tools
/clang
/tools
/extra
/test lit.site.cfg Unit
/lit.site.cfg
61 extra-site-cfgs
:: clang-tools-site-cfg
64 ifeq ($(shell test -f
$(PROJ_OBJ_DIR
)/..
/tools
/lld
/Makefile
&& echo OK
), OK
)
65 LIT_ALL_TESTSUITES
+= $(PROJ_OBJ_DIR
)/..
/tools
/lld
/test
67 # Force creation of lld's lit.site.cfg.
69 $(MAKE
) -C
$(PROJ_OBJ_DIR
)/..
/tools
/lld
/test lit.site.cfg Unit
/lit.site.cfg
70 extra-site-cfgs
:: lld-site-cfg
73 ifeq ($(shell test -f
$(PROJ_OBJ_DIR
)/..
/tools
/polly
/Makefile
&& echo OK
), OK
)
74 LIT_ALL_TESTSUITES
+= $(PROJ_OBJ_DIR
)/..
/tools
/polly
/test
76 # Force creation of Polly's lit.site.cfg.
77 polly-tools-site-cfg
: FORCE
78 $(MAKE
) -C
$(PROJ_OBJ_DIR
)/..
/tools
/polly
/test lit.site.cfg
79 extra-site-cfgs
:: polly-tools-site-cfg
84 # ulimits like these are redundantly enforced by the buildbots, so
85 # just removing them here won't work.
86 # Solaris does not have the -m flag for ulimit
87 ifeq ($(HOST_OS
),SunOS
)
88 ULIMIT
=ulimit
-t
600 ; ulimit
-d
512000 ; ulimit
-v
512000 ;
90 # 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.
92 # When -v is not used, then -s has to be used to limit the stack size.
93 # FIXME: Those limits should be enforced by lit instead of globally.
94 ULIMIT
=ulimit
-t
600 ; ulimit
-d
512000 ; ulimit
-m
512000 ; ulimit
-s
8192 ;
97 check-local
:: lit.site.cfg Unit
/lit.site.cfg
99 $(PYTHON
) $(LLVM_SRC_ROOT
)/utils
/lit
/lit.py
$(LIT_ARGS
) $(LIT_TESTSUITE
) )
101 # This is a legacy alias dating from when both DejaGNU and lit were in use.
102 check-local-lit
:: check-local
104 check-local-all
:: lit.site.cfg Unit
/lit.site.cfg extra-site-cfgs
106 $(PYTHON
) $(LLVM_SRC_ROOT
)/utils
/lit
/lit.py
$(LIT_ARGS
) $(LIT_ALL_TESTSUITES
) )
109 $(RM
) -rf
`find $(LLVM_OBJ_ROOT)/test -name Output -type d -print`
113 ifeq ($(DISABLE_ASSERTIONS
),1)
120 @echo
"Making LLVM 'lit.site.cfg' file..."
121 @
$(ECHOPATH
) s
=@LLVM_HOST_TRIPLE@
=$(HOST_TRIPLE
)=g
> lit.tmp
122 @
$(ECHOPATH
) s
=@TARGET_TRIPLE@
=$(TARGET_TRIPLE
)=g
>> lit.tmp
123 @
$(ECHOPATH
) s
=@LLVM_SOURCE_DIR@
=$(LLVM_SRC_ROOT
)=g
>> lit.tmp
124 @
$(ECHOPATH
) s
=@LLVM_BINARY_DIR@
=$(LLVM_OBJ_ROOT
)=g
>> lit.tmp
125 @
$(ECHOPATH
) s
=@LLVM_TOOLS_DIR@
=$(ToolDir
)=g
>> lit.tmp
126 @
$(ECHOPATH
) s
=@LLVM_LIBRARY_DIR@
=$(LibDir
)=g
>> lit.tmp
127 @
$(ECHOPATH
) s
=@SHLIBDIR@
=$(SharedLibDir
)=g
>> lit.tmp
128 @
$(ECHOPATH
) s
=@SHLIBEXT@
=$(SHLIBEXT
)=g
>> lit.tmp
129 @
$(ECHOPATH
) s
=@EXEEXT@
=$(EXEEXT
)=g
>> lit.tmp
130 @
$(ECHOPATH
) s
=@PYTHON_EXECUTABLE@
=$(PYTHON
)=g
>> lit.tmp
131 @
$(ECHOPATH
) s
=@OCAMLFIND@
=$(OCAMLFIND
)=g
>> lit.tmp
132 @
$(ECHOPATH
) s
!@OCAMLFLAGS@
!$(addprefix -cclib
,$(LDFLAGS
))!g
>> lit.tmp
133 @
$(ECHOPATH
) s
=@HAVE_OCAMLOPT@
=$(HAVE_OCAMLOPT
)=g
>> lit.tmp
134 @
$(ECHOPATH
) s
=@HAVE_OCAML_OUNIT@
=$(HAVE_OCAML_OUNIT
)=g
>> lit.tmp
135 @
$(ECHOPATH
) s
=@GO_EXECUTABLE@
=$(GO
)=g
>> lit.tmp
136 @
$(ECHOPATH
) s
!@HOST_CC@
!$(CC
)!g
>> lit.tmp
137 @
$(ECHOPATH
) s
!@HOST_CXX@
!$(CXX
)!g
>> lit.tmp
138 @
$(ECHOPATH
) s
!@HOST_LDFLAGS@
!$(LDFLAGS
)!g
>> lit.tmp
139 @
$(ECHOPATH
) s
=@ENABLE_SHARED@
=$(ENABLE_SHARED
)=g
>> lit.tmp
140 @
$(ECHOPATH
) s
=@ENABLE_ASSERTIONS@
=$(ENABLE_ASSERTIONS
)=g
>> lit.tmp
141 @
$(ECHOPATH
) s
=@TARGETS_TO_BUILD@
=$(TARGETS_TO_BUILD
)=g
>> lit.tmp
142 @
$(ECHOPATH
) s
=@LLVM_BINDINGS@
=$(BINDINGS_TO_BUILD
)=g
>> lit.tmp
143 @
$(ECHOPATH
) s
=@HOST_OS@
=$(HOST_OS
)=g
>> lit.tmp
144 @
$(ECHOPATH
) s
=@HOST_ARCH@
=$(HOST_ARCH
)=g
>> lit.tmp
145 @
$(ECHOPATH
) s
=@HAVE_LIBZ@
=$(HAVE_LIBZ
)=g
>> lit.tmp
146 @sed
-f lit.tmp
$(PROJ_SRC_DIR
)/lit.site.cfg.in
> $@
149 Unit
/lit.site.cfg
: $(PROJ_OBJ_DIR
)/Unit
/.
dir FORCE
150 @echo
"Making LLVM unittest 'lit.site.cfg' file..."
151 @
$(ECHOPATH
) s
=@LLVM_SOURCE_DIR@
=$(LLVM_SRC_ROOT
)=g
> unit.tmp
152 @
$(ECHOPATH
) s
=@LLVM_BINARY_DIR@
=$(LLVM_OBJ_ROOT
)=g
>> unit.tmp
153 @
$(ECHOPATH
) s
=@LLVM_TOOLS_DIR@
=$(ToolDir
)=g
>> unit.tmp
154 @
$(ECHOPATH
) s
=@LLVM_BUILD_MODE@
=$(BuildMode
)=g
>> unit.tmp
155 @
$(ECHOPATH
) s
=@ENABLE_SHARED@
=$(ENABLE_SHARED
)=g
>> unit.tmp
156 @
$(ECHOPATH
) s
=@SHLIBDIR@
=$(SharedLibDir
)=g
>> unit.tmp
157 @
$(ECHOPATH
) s
=@HOST_OS@
=$(HOST_OS
)=g
>> unit.tmp
158 @
$(ECHOPATH
) s
=@HOST_ARCH@
=$(HOST_ARCH
)=g
>> lit.tmp
159 @sed
-f unit.tmp
$(PROJ_SRC_DIR
)/Unit
/lit.site.cfg.in
> $@