bd04d06253d2416909329964abf1de256d7c05c2
[ghc-hetmet.git] / ghc / utils / ghc-pkg / Makefile
1 # -----------------------------------------------------------------------------
2 # $Id: Makefile,v 1.19 2002/10/27 10:38:33 mthomas Exp $
3
4 TOP=../..
5 include $(TOP)/mk/boilerplate.mk
6
7 # hack for ghci-inplace script, see below
8 INSTALLING=1
9
10 # -----------------------------------------------------------------------------
11 # ghc-pkg.bin
12
13 SRC_HC_OPTS      += -cpp -DPKG_TOOL -DWANT_PRETTY
14
15 ghc_ge_504 = $(shell if (test $(GhcCanonVersion) -ge 504); then echo YES; else echo NO; fi)
16
17 ifeq "$(ghc_ge_504)" "NO"
18 SRC_HC_OPTS +=  -package lang -package util -package text
19 endif
20
21 HS_PROG           = ghc-pkg.bin
22 INSTALL_LIBEXECS += $(HS_PROG)
23
24 ifeq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
25 HS_PROG           = ghc-pkg.exe
26 INSTALL_PROGS    += $(HS_PROG)
27 SRC_HC_OPTS      += -fglasgow-exts '-\#include <process.h>' -optl "-Wl,-lkernel32"
28 endif
29
30 # -----------------------------------------------------------------------------
31 # ghc-pkg script
32
33 ifeq "$(INSTALLING)" "1"
34 ifeq "$(BIN_DIST)"   "1"
35 GHCPKGBIN=$$\"\"libexecdir/$(HS_PROG)
36 PKGCONF=$$\"\"libdir/package.conf
37 else
38 GHCPKGBIN=$(libexecdir)/$(HS_PROG)
39 PKGCONF=$(libdir)/package.conf
40 endif # BIN_DIST
41 else
42 GHCPKGBIN=$(FPTOOLS_TOP_ABS)/ghc/utils/ghc-pkg/$(HS_PROG)
43 PKGCONF=$(FPTOOLS_TOP_ABS)/ghc/driver/package.conf.inplace
44 endif
45
46 ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
47 INSTALLED_SCRIPT_PROG  = ghc-pkg-$(ProjectVersion)
48 endif
49 INPLACE_SCRIPT_PROG    = ghc-pkg-inplace
50
51 SCRIPT_OBJS       = ghc-pkg.sh
52 INTERP            = $(SHELL)
53 SCRIPT_SUBST_VARS = GHCPKGBIN PKGCONFOPT
54 ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
55 INSTALL_SCRIPTS  += $(SCRIPT_PROG)
56 endif
57 PKGCONFOPT        = -f $(PKGCONF)
58
59 ifeq "$(INSTALLING)" "1"
60 SCRIPT_PROG     =  $(INSTALLED_SCRIPT_PROG)
61 ifneq "$(HOSTPLATFORM)" "i386-unknown-mingw32"
62 LINK            =  ghc-pkg
63 endif
64 else
65 SCRIPT_PROG     =  $(INPLACE_SCRIPT_PROG)
66 endif
67
68 # -----------------------------------------------------------------------------
69 # don't recurse on 'make install'
70 #
71 ifeq "$(INSTALLING)" "1"
72 all :: $(HS_PROG)
73         $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@
74 clean distclean maintainer-clean ::
75         $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@
76 endif
77
78 # ghc-pkg is needed to boot in ghc/rts and library dirs
79 # Do a recursive 'make all' after generating dependencies, because this
80 # will work with 'make -j'.
81 ifneq "$(BootingFromHc)" "YES"
82 boot :: depend
83         $(MAKE) all
84 endif
85
86 include $(TOP)/mk/target.mk