Fold testsuite.git into ghc.git (re #8545)
[ghc.git] / testsuite / mk / test.mk
index e7604bd..0cc3f21 100644 (file)
@@ -37,6 +37,14 @@ else
 exeext = .exe
 endif
 
+ifneq "$(filter $(TargetOS_CPP),cygwin32 mingw32)" ""
+dllext = .dll
+else ifeq "$(TargetOS_CPP)" "darwin"
+dllext = .dylib
+else
+dllext = .so
+endif
+
 RUNTEST_OPTS += -e ghc_compiler_always_flags="'$(TEST_HC_OPTS)'"
 
 RUNTEST_OPTS += -e ghc_debugged=$(GhcDebugged)
@@ -47,10 +55,10 @@ else
 RUNTEST_OPTS += -e ghc_with_native_codegen=0
 endif
 
-BASE_LIBDIR := $(shell "$(GHC_PKG)" field base library-dirs | sed 's/^[^:]*: *//')
-HAVE_VANILLA := $(shell if [ -f $(subst \,/,$(BASE_LIBDIR))/Prelude.hi ]; then echo YES; else echo NO; fi)
-HAVE_DYNAMIC := $(shell if [ -f $(subst \,/,$(BASE_LIBDIR))/Prelude.dyn_hi ]; then echo YES; else echo NO; fi)
-HAVE_PROFILING := $(shell if [ -f $(subst \,/,$(BASE_LIBDIR))/Prelude.p_hi ]; then echo YES; else echo NO; fi)
+GHC_PRIM_LIBDIR := $(shell "$(GHC_PKG)" field ghc-prim library-dirs --simple-output)
+HAVE_VANILLA := $(shell if [ -f $(subst \,/,$(GHC_PRIM_LIBDIR))/GHC/PrimopWrappers.hi ]; then echo YES; else echo NO; fi)
+HAVE_DYNAMIC := $(shell if [ -f $(subst \,/,$(GHC_PRIM_LIBDIR))/GHC/PrimopWrappers.dyn_hi ]; then echo YES; else echo NO; fi)
+HAVE_PROFILING := $(shell if [ -f $(subst \,/,$(GHC_PRIM_LIBDIR))/GHC/PrimopWrappers.p_hi ]; then echo YES; else echo NO; fi)
 
 ifeq "$(HAVE_VANILLA)" "YES"
 RUNTEST_OPTS += -e ghc_with_vanilla=1
@@ -104,13 +112,26 @@ RUNTEST_OPTS += -e ghc_dynamic_by_default=False
 CABAL_MINIMAL_BUILD = --enable-library-vanilla --disable-shared
 endif
 
+ifeq "$(GhcDynamic)" "YES"
+RUNTEST_OPTS += -e ghc_dynamic=True
+CABAL_PLUGIN_BUILD = --enable-shared --disable-library-vanilla
+else
+RUNTEST_OPTS += -e ghc_dynamic=False
+CABAL_PLUGIN_BUILD = --enable-library-vanilla --disable-shared
+endif
+
 ifeq "$(GhcWithSMP)" "YES"
 RUNTEST_OPTS += -e ghc_with_smp=1
 else
 RUNTEST_OPTS += -e ghc_with_smp=0
 endif
 
-ifneq "$(shell $(SHELL) -c 'llc --version | grep version' 2> /dev/null)" ""
+ifeq "$(LLC)" ""
+RUNTEST_OPTS += -e ghc_with_llvm=0
+else ifneq "$(LLC)" "llc"
+# If we have a real detected value for LLVM, then it really ought to work
+RUNTEST_OPTS += -e ghc_with_llvm=1
+else ifneq "$(shell $(SHELL) -c 'llc --version | grep version' 2> /dev/null)" ""
 RUNTEST_OPTS += -e ghc_with_llvm=1
 else
 RUNTEST_OPTS += -e ghc_with_llvm=0
@@ -138,6 +159,14 @@ ifneq "$(THREADS)" ""
 RUNTEST_OPTS += --threads=$(THREADS)
 endif
 
+ifneq "$(VERBOSE)" ""
+RUNTEST_OPTS += --verbose=$(VERBOSE)
+endif
+
+ifeq "$(SKIP_PERF_TESTS)" "YES"
+RUNTEST_OPTS += --skip-perf-tests
+endif
+
 ifneq "$(CLEAN_ONLY)" ""
 RUNTEST_OPTS += -e clean_only=True
 else