summaryrefslogtreecommitdiff
path: root/testsuite/tests/ghc-regress/rename/prog006/Makefile
blob: d1f4dc0764611821961752054d437609184074ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
TOP=../../../..
include $(TOP)/mk/boilerplate.mk
include $(TOP)/mk/test.mk

# Original comments relating to GHC 6.4:
# This test caused a panic in GHC 6.4, but in reality it is user
# error, caused by compiling separate modules in the program using
# different search paths.  GHC gets confused when it can't find a
# module mentioned as a dependency in another interface file.

# Update for GHC 6.6:
# This test now succeeds, because A.hi records the fact that B.C
# came from the package test-1.0, so there's no conflict.

# If the package format changes, we might have to re-generate pkg.conf
# using the supplied Cabal configuration.

LOCAL_PKGCONF=local.package.conf
LOCAL_GHC_PKG = '$(GHC_PKG)' --no-user-package-conf -f $(LOCAL_PKGCONF)

rn.prog006:
	rm -f A.hi A.o B/C.hi B/C.o Main.hi Main.o pkg.conf
	rm -f pwd pwd.exe pwd.exe.manifest pwd.hi pwd.o
	'$(TEST_HC)' $(TEST_HC_OPTS) --make pwd -v0
	'$(TEST_HC)' $(TEST_HC_OPTS) --make -package-name test-1.0 B.C -fforce-recomp -v0
	rm -f pkg.conf
	echo "name: test" >>pkg.conf
	echo "version: 1.0" >>pkg.conf
	echo "id: test-XXX" >>pkg.conf
	echo "import-dirs: `./pwd`" >>pkg.conf
	echo "exposed-modules: B.C" >>pkg.conf
	echo "[]" >$(LOCAL_PKGCONF)
	$(LOCAL_GHC_PKG) register pkg.conf -v0
	'$(TEST_HC)' $(TEST_HC_OPTS) -c -package-conf $(LOCAL_PKGCONF) -package test -fforce-recomp A.hs -i
# The -i clears the search path, so A.hs will find B.C from package test
	-'$(TEST_HC)' $(TEST_HC_OPTS) -c -package-conf $(LOCAL_PKGCONF) -package test -fforce-recomp Main.hs
# No -i when compiling Main, so a from-scratch search would find a home-pkg module B.C
# However, A.hi remembers that B.C came from package test, so all is ok.