Commit f9d1d672 authored by Simon Marlow's avatar Simon Marlow
Browse files

add new cabal test

parent c0d4e935
TOP=../../../..
include $(TOP)/mk/boilerplate.mk
include $(TOP)/mk/test.mk
CABAL_SETUP = $(FPTOOLS_TOP_ABS)/libraries/Cabal/cabal-setup/cabal-setup
CONFIG_ARGS = --with-compiler=$(TEST_HC) --with-hc-pkg=$(GHC_PKG_DIR_ABS)/$(GHC_PKG_INPLACE_PGM)
# We have 3 packages, P-1.0, P-2.0, and Q. Q depends on P-1.0.
# We have an executable R, that depends on P-2.0 and Q, so the resulting
# executable will link to both P-1.0 and P-2.0.
cabal02 :
(cd P1 && $(CABAL_SETUP) configure $(CONFIG_ARGS))
(cd P1 && $(CABAL_SETUP) build)
(cd P1 && $(CABAL_SETUP) register --inplace --user)
(cd P2 && $(CABAL_SETUP) configure $(CONFIG_ARGS))
(cd P2 && $(CABAL_SETUP) build)
(cd P2 && $(CABAL_SETUP) register --inplace --user)
(cd Q && $(CABAL_SETUP) configure $(CONFIG_ARGS))
(cd Q && $(CABAL_SETUP) build)
(cd Q && $(CABAL_SETUP) register --inplace --user)
(cd R && $(CABAL_SETUP) configure $(CONFIG_ARGS))
(cd R && $(CABAL_SETUP) build)
$(MAKE) clean
clean ::
(cd P1 && $(CABAL_SETUP) unregister --user)
(cd P2 && $(CABAL_SETUP) unregister --user)
(cd Q && $(CABAL_SETUP) unregister --user)
(cd P1 && $(CABAL_SETUP) clean)
(cd P2 && $(CABAL_SETUP) clean)
(cd Q && $(CABAL_SETUP) clean)
Name: P
Version: 1.0
Exposed-Modules: A
Build-depends: base>=1.0, haskell98
Name: P
Version: 2.0
Exposed-Modules: A
Build-depends: base>=1.0, haskell98
module B where
import A -- from package P
b = a
Name: Q
Version: 1.0
Build-depends: base>=1.0, haskell98, P==1.0
Exposed-modules: B
import A
import B
main = do print a; print b
Name: R
Version: 1.0
Build-depends: base>=1.0, haskell98, P==2.0, Q
Executable: R
Main-is: Main.hs
test('cabal02', skip_if_fast, run_command_ignore_output, ['$MAKE cabal02'])
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment