Commit 1957057d authored by simonmar's avatar simonmar
Browse files

[project @ 2005-06-16 09:45:28 by simonmar]

Move the boilerplate Makefile code for using libghccompat.a into a
shared .mk file, lib/compat/compat.mk.  libghccompat.a is really a
poor-mans package, but to make it a real package would mean dealing
with variationg in the package support of different GHC versions, so
this is easier for now.
parent e8d07af1
......@@ -649,30 +649,9 @@ primop-usage.hs-incl: prelude/primops.txt
# Include libghccompat in stage1 only. In stage2 onwards, all these
# libraries will be available from the main libraries.
ifeq "$(stage)" "1"
SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
ifeq "$(Windows)" "YES"
# not very nice, but required for -lghccompat on Windows
SRC_LD_OPTS += -lshell32
endif
# This is horrible. We ought to be able to omit the entire directory
# from mkDependHS.
SRC_MKDEPENDHS_OPTS += \
-optdep--exclude-module=Compat.RawSystem \
-optdep--exclude-module=Compat.Directory \
-optdep--exclude-module=Distribution.Compat.ReadP \
-optdep--exclude-module=Distribution.Extension \
-optdep--exclude-module=Distribution.GetOpt \
-optdep--exclude-module=Distribution.InstalledPackageInfo \
-optdep--exclude-module=Distribution.License \
-optdep--exclude-module=Distribution.Package \
-optdep--exclude-module=Distribution.ParseUtils \
-optdep--exclude-module=Distribution.Setup \
-optdep--exclude-module=Distribution.Version \
-optdep--exclude-module=System.Directory.Internals
include $(GHC_LIB_COMPAT_DIR)/compat.mk
endif
SRC_LD_OPTS += -no-link-chk
......
# Settings for using the libghccompat.a library elsewhere in the build
# tree: this file is just included into Makefiles, see
# ghc/utils/ghc-pkg/Makefile for example.
#
# This is a poor-mans package, but simpler because we don't
# have to deal with variations in the package support of different
# versions of GHC.
# Use libghccompat.a:
SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
# And similarly for when booting from .hc files:
HC_BOOT_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR)
HC_BOOT_LIBS += -lghccompat
ifeq "$(Windows)" "YES"
# not very nice, but required for -lghccompat on Windows
SRC_LD_OPTS += -lshell32
endif
# This is horrible. We ought to be able to omit the entire directory
# from mkDependHS.
SRC_MKDEPENDHS_OPTS += \
-optdep--exclude-module=Compat.RawSystem \
-optdep--exclude-module=Compat.Directory \
-optdep--exclude-module=Distribution.Compat.ReadP \
-optdep--exclude-module=Distribution.Extension \
-optdep--exclude-module=Distribution.GetOpt \
-optdep--exclude-module=Distribution.InstalledPackageInfo \
-optdep--exclude-module=Distribution.License \
-optdep--exclude-module=Distribution.Package \
-optdep--exclude-module=Distribution.ParseUtils \
-optdep--exclude-module=Distribution.Compiler \
-optdep--exclude-module=Distribution.Version \
-optdep--exclude-module=System.Directory.Internals
......@@ -11,11 +11,8 @@ INSTALLING=1
SRC_HC_OPTS += -cpp -Wall -fno-warn-name-shadowing -fno-warn-unused-matches
SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
# And similarly for when booting from .hc files:
HC_BOOT_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR)
HC_BOOT_LIBS += -lghccompat
# This causes libghccompat.a to be used:
include $(GHC_LIB_COMPAT_DIR)/compat.mk
# This is required because libghccompat.a must be built with
# $(GhcHcOpts) because it is linked to the compiler, and hence
......@@ -48,22 +45,6 @@ HS_PROG = ghc-pkg.bin
INSTALL_LIBEXECS += $(HS_PROG)
endif
# This is horrible. We ought to be able to omit the entire directory
# from mkDependHS.
SRC_MKDEPENDHS_OPTS += \
-optdep--exclude-module=Compat.RawSystem \
-optdep--exclude-module=Compat.Directory \
-optdep--exclude-module=Distribution.Compat.ReadP \
-optdep--exclude-module=Distribution.Extension \
-optdep--exclude-module=Distribution.GetOpt \
-optdep--exclude-module=Distribution.InstalledPackageInfo \
-optdep--exclude-module=Distribution.License \
-optdep--exclude-module=Distribution.Package \
-optdep--exclude-module=Distribution.ParseUtils \
-optdep--exclude-module=Distribution.Setup \
-optdep--exclude-module=Distribution.Version \
-optdep--exclude-module=System.Directory.Internals
# -----------------------------------------------------------------------------=
# Create the Version.hs file
......
......@@ -10,8 +10,8 @@ INCLUDE_DIR=ghc/includes
INSTALLING=1
SRC_HC_OPTS += -i$(GHC_LIB_COMPAT_DIR)
SRC_LD_OPTS += -L$(GHC_LIB_COMPAT_DIR) -lghccompat
# This causes libghccompat.a to be used:
include $(GHC_LIB_COMPAT_DIR)/compat.mk
# This is required because libghccompat.a must be built with
# $(GhcHcOpts) because it is linked to the compiler, and hence
......@@ -87,22 +87,6 @@ endif
override datadir=$(libdir)
INSTALL_DATAS += template-hsc.h
# This is horrible. We ought to be able to omit the entire directory
# from mkDependHS.
SRC_MKDEPENDHS_OPTS += \
-optdep--exclude-module=Compat.RawSystem \
-optdep--exclude-module=Compat.Directory \
-optdep--exclude-module=Distribution.Compat.ReadP \
-optdep--exclude-module=Distribution.Extension \
-optdep--exclude-module=Distribution.GetOpt \
-optdep--exclude-module=Distribution.InstalledPackageInfo \
-optdep--exclude-module=Distribution.License \
-optdep--exclude-module=Distribution.Package \
-optdep--exclude-module=Distribution.ParseUtils \
-optdep--exclude-module=Distribution.Setup \
-optdep--exclude-module=Distribution.Version \
-optdep--exclude-module=System.Directory.Internals
# -----------------------------------------------------------------------------
# don't recurse on 'make install'
#
......
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