[project @ 2001-03-15 15:54:35 by simonmar]
[ghc-hetmet.git] / ghc / driver / Makefile
1 #-----------------------------------------------------------------------------
2 # $Id: Makefile,v 1.55 2001/03/15 15:54:35 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 "$(INSTALLING)" "1"        
13 SUBDIRS = mangler split
14 endif
15
16 # -----------------------------------------------------------------------------
17 # Create compiler configuration
18
19 CURRENT_DIR=ghc/compiler
20 CONFIG_HS = Config.hs
21 boot :: $(CONFIG_HS)
22
23 $(CONFIG_HS) : $(FPTOOLS_TOP)/mk/config.mk Makefile
24         @$(RM) -f $(CONFIG_HS)
25         @echo -n "Creating $(CONFIG_HS) ... "
26         @echo "module Config where" >>$(CONFIG_HS)
27         @echo "cTARGETPLATFORM       = \"$(TARGETPLATFORM)\"" >> $(CONFIG_HS)
28         @echo "cCURRENT_DIR          = \"$(CURRENT_DIR)\"" >> $(CONFIG_HS)
29         @echo "cHaveLibGmp           = \"$(HaveLibGmp)\"" >> $(CONFIG_HS)
30         @echo "cLibsReadline         = \"$(LibsReadline)\"" >> Config.hs
31         @echo "clibdir               = \"$(libdir)\"" >> $(CONFIG_HS)
32         @echo "cGHC_LIB_DIR          = \"$(GHC_LIB_DIR)\"" >> $(CONFIG_HS)
33         @echo "cGHC_RUNTIME_DIR      = \"$(GHC_RUNTIME_DIR)\"" >> $(CONFIG_HS)
34         @echo "cGHC_UTILS_DIR        = \"$(GHC_UTILS_DIR)\"" >> $(CONFIG_HS)
35         @echo "cGHC_INCLUDE_DIR      = \"$(GHC_INCLUDE_DIR)\"" >> $(CONFIG_HS)
36         @echo "cFPTOOLS_TOP_ABS      = \"$(FPTOOLS_TOP_ABS)\"" >> $(CONFIG_HS)
37         @echo done.
38
39 CLEAN_FILES += $(CONFIG_HS)
40
41 # -----------------------------------------------------------------------------
42 # package configuration files...
43
44 ghc_407_at_least = $(shell expr "$(GhcMinVersion)" \>= 7)
45 ifeq "$(ghc_407_at_least)" "1"
46 ifneq "$(mingw32_TARGET_OS)" "1"
47 SRC_HC_OPTS += -fglasgow-exts -cpp -package concurrent -package posix -package text
48 else
49 SRC_HC_OPTS += -fglasgow-exts -cpp -package concurrent -package text
50 endif
51 else
52 SRC_HC_OPTS += -fglasgow-exts -cpp -syslib concurrent -syslib posix -syslib misc
53 endif
54
55 SRC_HC_OPTS += -DWANT_PRETTY
56
57 all :: package.conf package.conf.inplace
58
59 pkgconf : Config.o Package.o PackageSrc.o Utils.o
60         $(HC) $(HC_OPTS) $(LD_OPTS) Config.o Package.o PackageSrc.o Utils.o -o pkgconf
61
62 package.conf.inplace : pkgconf
63         ./pkgconf in-place >$@
64
65 package.conf : pkgconf
66         ./pkgconf install >$@
67
68 Package.o : ../utils/ghc-pkg/Package.hs
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 TOPDIROPT
93 INSTALL_SCRIPTS  += $(SCRIPT_PROG)
94
95 ifeq "$(INSTALLING)" "1"
96 SCRIPT_PROG     =  $(INSTALLED_SCRIPT_PROG)
97 TOPDIROPT       =  
98 LINK            =  ghci
99 else
100 TOPDIROPT       =  -B$(FPTOOLS_TOP_ABS)
101 SCRIPT_PROG     =  $(INPLACE_SCRIPT_PROG)
102 endif
103
104 # don't recurse on 'make install'
105 #
106 ifeq "$(INSTALLING)" "1"
107 all clean distclean maintainer-clean ::
108         $(MAKE) INSTALLING=0 BIN_DIST=0 $(MFLAGS) $@
109 endif
110
111 # -----------------------------------------------------------------------------
112 # installation...
113
114 override datadir=$(libdir)
115 INSTALL_DATAS += ghc-usage.txt
116
117 # -----------------------------------------------------------------------------
118
119 include $(TOP)/mk/target.mk