[project @ 2001-02-11 17:01:46 by simonmar]
[ghc-hetmet.git] / ghc / driver / Makefile
1 #-----------------------------------------------------------------------------
2 # $Id: Makefile,v 1.53 2001/02/11 17:01:46 simonmar Exp $
3 #
4
5 TOP=..
6 CURRENT_DIR=ghc/driver
7 include $(TOP)/mk/boilerplate.mk
8
9 # hack for ghci-inplace script, see below
10 INSTALLING=1
11
12 ifeq "$(GhcWithHscBuiltViaC)" "YES"
13 HC=$(GHC_INPLACE)
14 endif
15
16 ghc_407_at_least = $(shell expr "$(GhcMinVersion)" \>= 7)
17 ifeq "$(ghc_407_at_least)" "1"
18 ifneq "$(mingw32_TARGET_OS)" "1"
19 SRC_HC_OPTS += -fglasgow-exts -cpp -package concurrent -package posix -package text
20 else
21 SRC_HC_OPTS += -fglasgow-exts -cpp -package concurrent -package text
22 endif
23 else
24 SRC_HC_OPTS += -fglasgow-exts -cpp -syslib concurrent -syslib posix -syslib misc
25 endif
26
27 ifeq "$(INSTALLING)" "1"        
28 SUBDIRS = mangler split
29 endif
30
31 # -----------------------------------------------------------------------------
32 # Create compiler configuration
33
34 CURRENT_DIR=ghc/compiler
35 CONFIG_HS = Config.hs
36 boot :: $(CONFIG_HS)
37
38 $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile
39         @$(RM) -f $(CONFIG_HS)
40         @echo -n "Creating $(CONFIG_HS) ... "
41         @echo "module Config where" >>$(CONFIG_HS)
42         @echo "cTARGETPLATFORM       = \"$(TARGETPLATFORM)\"" >> $(CONFIG_HS)
43         @echo "cCURRENT_DIR          = \"$(CURRENT_DIR)\"" >> $(CONFIG_HS)
44         @echo "cHaveLibGmp           = \"$(HaveLibGmp)\"" >> $(CONFIG_HS)
45         @echo "cLibsReadline         = \"$(LibsReadline)\"" >> Config.hs
46         @echo "clibdir               = \"$(libdir)\"" >> $(CONFIG_HS)
47         @echo "cGHC_LIB_DIR          = \"$(GHC_LIB_DIR)\"" >> $(CONFIG_HS)
48         @echo "cGHC_RUNTIME_DIR      = \"$(GHC_RUNTIME_DIR)\"" >> $(CONFIG_HS)
49         @echo "cGHC_UTILS_DIR        = \"$(GHC_UTILS_DIR)\"" >> $(CONFIG_HS)
50         @echo "cGHC_INCLUDE_DIR      = \"$(GHC_INCLUDE_DIR)\"" >> $(CONFIG_HS)
51         @echo "cFPTOOLS_TOP_ABS      = \"$(FPTOOLS_TOP_ABS)\"" >> $(CONFIG_HS)
52         @echo done.
53
54 CLEAN_FILES += $(CONFIG_HS)
55
56 # -----------------------------------------------------------------------------
57 # package configuration files...
58
59 all :: package.conf package.conf.inplace
60
61 pkgconf : Config.o Package.o PackageSrc.o Utils.o
62         $(HC) $(HC_OPTS) $(LD_OPTS) Config.o Package.o PackageSrc.o Utils.o -o pkgconf
63
64 package.conf.inplace : pkgconf
65         ./pkgconf in-place >$@
66
67 package.conf : pkgconf
68         ./pkgconf install >$@
69
70 INSTALL_DATAS += package.conf
71
72 CLEAN_FILES += pkgconf package.conf.inplace package.conf
73
74 # -----------------------------------------------------------------------------
75 # ghci script
76
77 ifeq "$(INSTALLING)" "1"
78 ifeq "$(BIN_DIST)"   "1"
79 GHCBIN=$$\"\"bindir/ghc
80 else
81 GHCBIN=$(bindir)/ghc
82 endif # BIN_DIST
83 else
84 GHCBIN=$(FPTOOLS_TOP_ABS)/ghc/compiler/ghc
85 endif
86
87 INSTALLED_SCRIPT_PROG  = ghci-$(ProjectVersion)
88 INPLACE_SCRIPT_PROG    = ghci-inplace
89
90 SCRIPT_OBJS       = ghci.sh
91 INTERP            = $(SHELL)
92 SCRIPT_SUBST_VARS = GHCBIN
93 INSTALL_SCRIPTS  += $(SCRIPT_PROG)
94
95 ifeq "$(INSTALLING)" "1"
96 SCRIPT_PROG     =  $(INSTALLED_SCRIPT_PROG)
97 LINK            =  ghci
98 else
99 SCRIPT_PROG     =  $(INPLACE_SCRIPT_PROG)
100 endif
101
102 # don't recurse on 'make install'
103 #
104 ifeq "$(INSTALLING)" "1"
105 all clean distclean maintainer-clean ::
106         $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@
107 endif
108
109 # -----------------------------------------------------------------------------
110 # installation...
111
112 override datadir=$(libdir)
113 INSTALL_DATAS += ghc-usage.txt
114
115 # -----------------------------------------------------------------------------
116
117 include $(TOP)/mk/target.mk