1 # -----------------------------------------------------------------------------
4 include $(TOP)/mk/boilerplate.mk
6 # hack for ghci-inplace script, see below
9 # -----------------------------------------------------------------------------
12 ghc_ge_504 = $(shell if (test $(GhcCanonVersion) -ge 504); then echo YES; else echo NO; fi)
13 ghc_le_600 = $(shell if (test $(GhcCanonVersion) -le 600); then echo YES; else echo NO; fi)
15 SRC_HC_OPTS += -cpp -DPKG_TOOL -DWANT_PRETTY
17 ifeq "$(HOSTPLATFORM)$(ghc_le_600)" "i386-unknown-mingw32YES"
18 SRC_HC_OPTS += -D'GHC_PKG_VERSION=\"$(ProjectVersion)\"'
20 SRC_HC_OPTS += -D'GHC_PKG_VERSION="$(ProjectVersion)"'
23 ifeq "$(ghc_ge_504)" "NO"
24 SRC_HC_OPTS += -package lang -package util -package text
27 # On Windows, ghc-pkg is a standalone program
28 # ($bindir/ghc-pkg.exe), whereas on Unix it needs a wrapper script
29 # to pass the appropriate flag to the real binary
30 # ($libexecdir/ghc-pkg.bin) so that it can find package.conf.
31 ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
33 INSTALL_PROGS += $(HS_PROG)
36 INSTALL_LIBEXECS += $(HS_PROG)
39 # -----------------------------------------------------------------------------
42 ifeq "$(INSTALLING)" "1"
43 ifeq "$(BIN_DIST)" "1"
44 GHCPKGBIN=$$\"\"libexecdir/$(HS_PROG)
45 PKGCONF=$$\"\"libdir/package.conf
47 GHCPKGBIN=$(libexecdir)/$(HS_PROG)
48 PKGCONF=$(libdir)/package.conf
51 GHCPKGBIN=$(FPTOOLS_TOP_ABS)/ghc/utils/ghc-pkg/$(HS_PROG)
52 PKGCONF=$(FPTOOLS_TOP_ABS_PLATFORM)/ghc/driver/package.conf.inplace
55 ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
56 INSTALLED_SCRIPT_PROG = ghc-pkg-$(ProjectVersion)
58 INPLACE_SCRIPT_PROG = ghc-pkg-inplace
60 SCRIPT_OBJS = ghc-pkg.sh
62 SCRIPT_SUBST_VARS = GHCPKGBIN PKGCONFOPT
63 ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
64 INSTALL_SCRIPTS += $(SCRIPT_PROG)
66 PKGCONFOPT = -f $(PKGCONF)
68 ifeq "$(INSTALLING)" "1"
69 SCRIPT_PROG = $(INSTALLED_SCRIPT_PROG)
70 ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
74 SCRIPT_PROG = $(INPLACE_SCRIPT_PROG)
77 # -----------------------------------------------------------------------------
78 # don't recurse on 'make install'
80 ifeq "$(INSTALLING)" "1"
82 $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@
83 clean distclean maintainer-clean ::
84 $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@
87 # ghc-pkg is needed to boot in ghc/rts and library dirs
88 # Do a recursive 'make all' after generating dependencies, because this
89 # will work with 'make -j'.
90 ifneq "$(BootingFromHc)" "YES"
95 include $(TOP)/mk/target.mk