[project @ 2002-01-29 19:26:38 by krasimir]
[ghc-hetmet.git] / ghc / driver / Makefile
index 3306080..a7667bf 100644 (file)
@@ -1,34 +1,67 @@
 #-----------------------------------------------------------------------------
-# $Id: Makefile,v 1.2 1996/11/21 16:47:27 simonm Exp $
+#
 
-TOP=../..
+TOP=..
 CURRENT_DIR=ghc/driver
-UnlitSuffixRules = YES
-include $(TOP)/ghc/mk/ghc.mk
+include $(TOP)/mk/boilerplate.mk
 
-DYN_LOADABLE_BITS = \
-       ghc-asm.prl \
-       ghc-recomp.prl \
-       ghc-iface.prl \
-       ghc-consist.prl \
-       ghc-split.prl
+# hack for ghci-inplace script, see below
+INSTALLING=1
 
-PROG   = ghc
-SRC    = ghc.prl
-INTERP = $(PERL)
-DESTDIR        = $(INSTBINDIR_GHC)
-INSTALLED_NAME = $(GHC_DRIVER_INST_NAME)
+ifeq "$(INSTALLING)" "1"       
+SUBDIRS = mangler split ghc ghci
+endif
 
-all :: $(DYN_LOADABLE_BITS)
+# -----------------------------------------------------------------------------
+# package configuration files...
 
-install :: $(DYN_LOADABLE_BITS)
-       $(INSTALL) $(INSTDATAFLAGS) $(DYN_LOADABLE_BITS) $(INSTLIBDIR_GHC)
+PKGCONF_OPTS = "$(TARGETPLATFORM)"             \
+              "$(CURRENT_DIR)"                 \
+              "$(HaveLibGmp)"                  \
+              "$(LibsReadline)"                \
+              "$(GHC_LIB_DIR)"                 \
+              "$(GHC_RUNTIME_DIR)"             \
+              "$(GHC_UTILS_DIR)"               \
+              "$(GHC_INCLUDE_DIR)"             \
+              "$(X_CFLAGS)"                    \
+              "$(X_LIBS)"
 
-clean::
-       $(RM) ghc.prl
-       $(RM) $(DYN_LOADABLE_BITS)
+# the latter two are needed to setup the package details for hslibs/xlib
 
-# DYN_LOADABLE_LPRLS = $(DYN_LOADABLE_BITS:.prl=.lprl)
-# PerlTagsTarget( ghc.lprl $(DYN_LOADABLE_LPRLS) )
+SRC_HC_OPTS += -fglasgow-exts -cpp 
 
-include $(TOP)/mk/script.mk
+ghc_407_at_least = $(shell if (test $(GhcCanonVersion) -ge 407); then echo YES; else echo NO; fi)
+
+ifeq "$(ghc_407_at_least)" "YES"
+SRC_HC_OPTS += -package concurrent -package text
+ifneq "$(mingw32_TARGET_OS)" "1"
+SRC_HC_OPTS += -package posix
+endif
+else
+SRC_HC_OPTS += -syslib concurrent -syslib posix -syslib misc
+endif
+
+SRC_HC_OPTS += -DWANT_PRETTY
+SRC_HC_OPTS += $(filter -D% -U%,$(GhcRtsCcOpts))
+
+all :: package.conf package.conf.inplace
+
+HS_OBJS = Package.o PackageSrc.o Utils.o
+HS_PROG = pkgconf
+
+package.conf.inplace : $(HS_PROG)
+       ./$(HS_PROG) in-place $(PKGCONF_OPTS) >$@
+
+package.conf : pkgconf
+       ./$(HS_PROG) install $(PKGCONF_OPTS) >$@
+
+Package.o : ../utils/ghc-pkg/Package.hs
+
+override datadir = $(libdir)
+INSTALL_DATAS += package.conf ghc-usage.txt
+
+CLEAN_FILES += Main.hi pkgconf package.conf.inplace package.conf
+
+# -----------------------------------------------------------------------------
+
+include $(TOP)/mk/target.mk