llvm.org GIT mirror llvm / ea6c39d test / Makefile
ea6c39d

Tree @ea6c39d (Download .tar.gz)

Makefile @ea6c39d

12d632c
38ead32
12d632c
 
57360d1
 
38ead32
12d632c
 
5eb009a
38ead32
52a4e85
299e15e
9f97b4c
ee29d2a
135e1d8
ee29d2a
d184c67
 
 
12d632c
 
 
 
1b6d3da
 
 
 
684ed3d
 
70a3b77
 
 
684ed3d
 
491e9cd
70a3b77
60bdce6
b18ec66
684ed3d
70a3b77
 
491e9cd
 
2bdc07b
3a9719a
2bdc07b
 
2891dbb
3418579
2891dbb
 
 
 
 
3418579
 
 
2891dbb
 
 
 
 
 
3418579
 
 
0908d49
 
15d4059
0908d49
 
 
 
 
15d4059
 
feada94
 
54f9759
e55db74
feada94
7e43439
 
feada94
7e43439
feada94
7e43439
 
54f9759
03ed625
135e1d8
54f9759
8bb233b
ec68fd4
03ed625
 
33d0a03
03ed625
491e9cd
db5fe93
70a3b77
5ed7be1
70a3b77
2891dbb
3418579
5ed7be1
3418579
9df5561
 
 
 
 
 
64609d3
9df5561
 
 
 
 
1514010
9df5561
 
54f9759
9df5561
 
 
 
9f97b4c
fb15c00
7a7cb4c
6748f04
e55db74
6748f04
 
 
 
802cd84
 
 
 
 
6748f04
b405bbe
 
 
b2f8806
 
2bdc07b
 
 
7a7cb4c
4080d10
 
db4264f
e5190d2
51162ba
492196c
 
840a718
15d4059
 
db4264f
 
3d89bc5
 
802cd84
 
 
 
 
 
4e3e115
b405bbe
2bdc07b
237033e
 
6748f04
7a7cb4c
 
 
 
 
 
70a3b77
 
2891dbb
fb76ffb
 
 
 
 
db5fe93
e1b691f
2891dbb
fb4fb6d
 
 
 
 
ea6c39d
 
fb4fb6d
#===- test/Makefile ----------------------------------------*- Makefile -*--===#
#
#                     The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
#
#===------------------------------------------------------------------------===#

LEVEL = ..
DIRS  =

#
# Make Dejagnu the default for testing
#
all:: check-local

# Include other test rules
include Makefile.tests

#===------------------------------------------------------------------------===#
# DejaGNU testing support
#===------------------------------------------------------------------------===#

ifneq ($(GREP_OPTIONS),)
$(warning GREP_OPTIONS environment variable may interfere with test results)
endif

ifdef VERBOSE
RUNTESTFLAGS := $(VERBOSE)
LIT_ARGS := -v
else
LIT_ARGS := -s -v
endif

ifdef TESTSUITE
LIT_TESTSUITE := $(TESTSUITE)
CLEANED_TESTSUITE := $(patsubst %/,%,$(TESTSUITE))
CLEANED_TESTSUITE := $(patsubst test/%,%,$(CLEANED_TESTSUITE))
RUNTESTFLAGS += --tool $(CLEANED_TESTSUITE)
else
LIT_TESTSUITE := .
endif

ifdef VG
VALGRIND := valgrind --tool=memcheck --quiet --trace-children=yes --error-exitcode=3 --leak-check=full $(VALGRIND_EXTRA_ARGS)
endif

# Check what to run for -all.
LIT_ALL_TESTSUITES := $(LIT_TESTSUITE)

extra-lit-site-cfgs::
.PHONY: extra-lit-site-cfgs

ifneq ($(strip $(filter check-local-all,$(MAKECMDGOALS))),)
ifndef TESTSUITE
ifeq ($(shell test -d $(PROJ_SRC_DIR)/../tools/clang && echo OK), OK)
LIT_ALL_TESTSUITES += $(PROJ_OBJ_DIR)/../tools/clang/test

# Force creation of Clang's lit.site.cfg.
clang-lit-site-cfg: FORCE
	$(MAKE) -C $(PROJ_OBJ_DIR)/../tools/clang/test lit.site.cfg
extra-lit-site-cfgs:: clang-lit-site-cfg
endif
endif
endif

IGNORE_TESTS :=

ifndef RUNLLVM2CPP
IGNORE_TESTS += llvm2cpp.exp
endif

ifdef IGNORE_TESTS
RUNTESTFLAGS += --ignore "$(strip $(IGNORE_TESTS))"
endif

# ulimits like these are redundantly enforced by the buildbots, so
# just removing them here won't work.
# Both AuroraUX & Solaris do not have the -m flag for ulimit
ifeq ($(HOST_OS),SunOS)
ULIMIT=ulimit -t 600 ; ulimit -d 512000 ; ulimit -v 512000 ;
else # !SunOS
ifeq ($(HOST_OS),AuroraUX)
ULIMIT=ulimit -t 600 ; ulimit -d 512000 ; ulimit -v 512000 ;
else # !AuroraUX
ULIMIT=ulimit -t 600 ; ulimit -d 512000 ; ulimit -m 512000 ; ulimit -v 512000 ;
endif # AuroraUX
endif # SunOS

ifneq ($(RUNTEST),)
check-local:: site.exp
	( $(ULIMIT) \
	  PATH="$(LLVMToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$(LLVMGCCDIR)/bin:$(PATH)" \
	  $(RUNTEST) $(RUNTESTFLAGS) )
else
check-local:: site.exp
	@echo "*** dejagnu not found.  Make sure 'runtest' is in your PATH, then reconfigure LLVM."
endif

check-local-lit:: lit.site.cfg Unit/lit.site.cfg
	( $(ULIMIT) \
	  $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_TESTSUITE) )

check-local-all:: lit.site.cfg Unit/lit.site.cfg extra-lit-site-cfgs
	( $(ULIMIT) \
	  $(LLVM_SRC_ROOT)/utils/lit/lit.py $(LIT_ARGS) $(LIT_ALL_TESTSUITES) )

ifdef TESTONE
CLEANED_TESTONE := $(patsubst %/,%,$(TESTONE))
CLEANED_TESTONE := $(patsubst test/%,%,$(CLEANED_TESTONE))
SUBDIR := $(shell dirname $(CLEANED_TESTONE))
TESTPATH := $(LLVM_SRC_ROOT)/test/$(CLEANED_TESTONE)
check-one: site.exp $(TCLSH)
	$(Verb)( echo "source $(LLVM_OBJ_ROOT)/test/site.exp" ; \
	  echo "set subdir $(SUBDIR)" ; \
	  echo "proc pass  { msg } { puts \"PASS: \$$msg\" } "; \
	  echo "proc fail  { msg } { puts \"FAIL: \$$msg\" }" ; \
	  echo "proc xfail { msg } { puts \"XFAIL: \$$msg\" }" ; \
	  echo "proc xpass { msg } { puts \"XPASS: \$$msg\" }" ; \
	  echo "proc verbose args { }" ; \
	  echo "source $(LLVM_SRC_ROOT)/test/lib/llvm.exp" ; \
	  echo "RunLLVMTests $(TESTPATH)" ) | \
	( $(ULIMIT) \
	  PATH="$(LLVMToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$(PATH)" \
	  $(TCLSH) )
endif

clean::
	$(RM) -rf `find $(LLVM_OBJ_ROOT)/test -name Output -type d -print`

# dsymutil is used on the Darwin to manipulate DWARF debugging information.
ifeq ($(TARGET_OS),Darwin)
DSYMUTIL=dsymutil
else
DSYMUTIL=true
endif
ifdef TargetCommonOpts
BUGPOINT_TOPTS="-gcc-tool-args $(TargetCommonOpts)"
else
BUGPOINT_TOPTS=""
endif

ifneq ($(OCAMLOPT),)
CC_FOR_OCAMLOPT := $(shell $(OCAMLOPT) -config | grep native_c_compiler | sed -e 's/native_c_compiler: //')
CXX_FOR_OCAMLOPT := $(subst gcc,g++,$(CC_FOR_OCAMLOPT))
endif

FORCE:

site.exp: FORCE
	@echo 'Making a new site.exp file...'
	@echo '## Autogenerated by LLVM configuration.' > site.tmp
	@echo '# Do not edit!' >> site.tmp
	@echo 'set target_triplet "$(TARGET_TRIPLE)"' >> site.tmp
	@echo 'set TARGETS_TO_BUILD "$(TARGETS_TO_BUILD)"' >> site.tmp
	@echo 'set llvmgcc_langs "$(LLVMGCC_LANGS)"' >> site.tmp
	@echo 'set llvmtoolsdir "$(ToolDir)"' >>site.tmp
	@echo 'set llvmlibsdir "$(LibDir)"' >>site.tmp
	@echo 'set llvm_bindings "$(BINDINGS_TO_BUILD)"' >> site.tmp
	@echo 'set srcroot "$(LLVM_SRC_ROOT)"' >>site.tmp
	@echo 'set objroot "$(LLVM_OBJ_ROOT)"' >>site.tmp
	@echo 'set srcdir "$(LLVM_SRC_ROOT)/test"' >>site.tmp
	@echo 'set objdir "$(LLVM_OBJ_ROOT)/test"' >>site.tmp
	@echo 'set gccpath "$(CC)"' >>site.tmp
	@echo 'set gxxpath "$(CXX)"' >>site.tmp
	@echo 'set compile_c "' $(CC) $(CPP.Flags) $(TargetCommonOpts) $(CompileCommonOpts) -c '"' >>site.tmp
	@echo 'set compile_cxx "' $(CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) $(CompileCommonOpts) -c '"' >> site.tmp
	@echo 'set link "' $(CXX) $(CPP.Flags) $(CXX.Flags) $(TargetCommonOpts) $(CompileCommonOpts) $(LD.Flags) '"' >>site.tmp
	@echo 'set llvmgcc "$(LLVMGCC) $(TargetCommonOpts) $(EXTRA_OPTIONS)"' >> site.tmp
	@echo 'set llvmgxx "$(LLVMGCC) $(TargetCommonOpts) $(EXTRA_OPTIONS)"' >> site.tmp
	@echo 'set bugpoint_topts $(BUGPOINT_TOPTS)' >> site.tmp
	@echo 'set shlibext "$(SHLIBEXT)"' >> site.tmp
	@echo 'set ocamlopt "$(OCAMLOPT) -cc \"$(CXX_FOR_OCAMLOPT)\" -I $(LibDir)/ocaml"' >> site.tmp
	@echo 'set valgrind "$(VALGRIND)"' >> site.tmp
	@echo 'set grep "$(GREP)"' >>site.tmp
	@echo 'set gas "$(GAS)"' >>site.tmp
	@echo 'set llvmdsymutil "$(DSYMUTIL)"' >>site.tmp
	@echo '## All variables above are generated by configure. Do Not Edit ## ' >>site.tmp
	@test ! -f site.exp || \
	sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp
	@-rm -f site.bak
	@test ! -f site.exp || mv site.exp site.bak
	@mv site.tmp site.exp

lit.site.cfg: site.exp
	@echo "Making LLVM 'lit.site.cfg' file..."
	@sed -e "s#@LLVM_SOURCE_DIR@#$(LLVM_SRC_ROOT)#g" \
	     -e "s#@LLVM_BINARY_DIR@#$(LLVM_OBJ_ROOT)#g" \
	     -e "s#@LLVM_TOOLS_DIR@#$(ToolDir)#g" \
	     -e "s#@LLVMGCCDIR@#$(LLVMGCCDIR)#g" \
	     $(PROJ_SRC_DIR)/lit.site.cfg.in > $@

Unit/lit.site.cfg: $(PROJ_OBJ_DIR)/Unit/.dir FORCE
	@echo "Making LLVM unittest 'lit.site.cfg' file..."
	@sed -e "s#@LLVM_SOURCE_DIR@#$(LLVM_SRC_ROOT)#g" \
	     -e "s#@LLVM_BINARY_DIR@#$(LLVM_OBJ_ROOT)#g" \
	     -e "s#@LLVM_TOOLS_DIR@#$(ToolDir)#g" \
	     -e "s#@LLVMGCCDIR@#$(LLVMGCCDIR)#g" \
	     -e "s#@LLVM_BUILD_MODE@#$(BuildMode)#g" \
	     -e "s#@ENABLE_SHARED@#$(ENABLE_SHARED)#g" \
	     -e "s#@SHLIBPATH_VAR@#$(SHLIBPATH_VAR)#g" \
	     $(PROJ_SRC_DIR)/Unit/lit.site.cfg.in > $@