Update Trac ticket URLs to point to GitLab
[ghc.git] / testsuite / tests / th / Makefile
index 0dca106..2962327 100644 (file)
@@ -2,19 +2,31 @@ TOP=../..
 include $(TOP)/mk/boilerplate.mk
 include $(TOP)/mk/test.mk
 
-# Trac 2386 requires batch-compile not --make
-# Very important: without -O 
+# #2386 requires batch-compile not --make
+# Very important: without -O
 T2386:
-       '$(TEST_HC)' $(TEST_HC_OPTS) -v0 -c T2386_Lib.hs -fforce-recomp
-       '$(TEST_HC)' $(TEST_HC_OPTS) -v0 -c T2386.hs -fforce-recomp
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) -v0 -c T2386_Lib.hs
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) -v0 -c T2386.hs
 
+T7445:
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) -v0 -c T7445a.hs
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) -v0 -c T7445.hs
 
 HC_OPTS = -XTemplateHaskell -package template-haskell
 
 TH_spliceE5_prof::
-       $(RM) TH_spliceE5_prof*.o TH_spliceE5_prof*.hi TH_spliceE5_prof*.p.o 
-       '$(TEST_HC)' $(TEST_HC_OPTS) $(HC_OPTS) --make -v0 TH_spliceE5_prof.hs -c
-       '$(TEST_HC)' $(TEST_HC_OPTS) $(HC_OPTS) --make -v0 TH_spliceE5_prof.hs -prof -auto-all -osuf p.o -o $@
+       $(RM) TH_spliceE5_prof*.o TH_spliceE5_prof*.hi TH_spliceE5_prof*.dyn_o TH_spliceE5_prof*.dyn_hi TH_spliceE5_prof
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(HC_OPTS) $(ghcThWayFlags) --make -no-link -v0 TH_spliceE5_prof.hs
+       # Using `-osuf .p.o` should work. Note the dot before the `p` (#9760), and
+       # the dot between the `p` and the `o` (#5554).
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(HC_OPTS) --make -v0 TH_spliceE5_prof.hs -prof -fprof-auto -osuf .p.o -o $@
+       ./$@
+
+# With -fexternal-interpreter, we don't have to build the non-profiled
+# objects first.
+TH_spliceE5_prof_ext::
+       $(RM) TH_spliceE5_prof_ext*.o TH_spliceE5_prof_ext*.hi TH_spliceE5_prof_ext*.p.o
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(HC_OPTS) --make -v0 TH_spliceE5_prof_ext.hs -prof -fprof-auto -fexternal-interpreter -o $@
        ./$@
 
 .PHONY: TH_Depends
@@ -24,10 +36,19 @@ TH_Depends:
        $(RM) TH_Depends.o TH_Depends.hi
        $(RM) TH_Depends_External.o TH_Depends_External.hi
        echo "first run" > TH_Depends_external.txt
-       '$(TEST_HC)' $(TEST_HC_OPTS) --make -v0 TH_Depends
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) --make -v0 TH_Depends
        ./TH_Depends
        sleep 2
        echo "second run" > TH_Depends_external.txt
-       '$(TEST_HC)' $(TEST_HC_OPTS) --make -v0 TH_Depends
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) --make -v0 TH_Depends
        ./TH_Depends
 
+
+T8333:
+       '$(TEST_HC)' $(TEST_HC_OPTS_INTERACTIVE) $(ghcThWayFlags) T8333.hs < /dev/null
+
+# This was an easy way to re-use the stdout testing
+# to check the contents of a generated file.
+T8624:
+       '$(TEST_HC)' $(TEST_HC_OPTS) $(ghcThWayFlags) -v0 -c T8624.hs && cat T8624.th.hs
+        $(RM) T8624.th.hs