#-----------------------------------------------------------------------------
-# $Id: Makefile,v 1.2 1996/11/21 16:46:26 simonm Exp $
+# $Id: Makefile,v 1.21 2002/07/02 14:15:22 simonmar Exp $
+#
-TOP=..
-include $(TOP)/ghc/mk/ghc.mk
+TOP=.
+include $(TOP)/mk/boilerplate.mk
-line = @echo "------------------------------------------------------------------------------"
-
-define BuildLibs
-$(line)
-@echo "Building Libraries"
-$(line)
-@$(MAKE) -C lib depend all
-endef
-
-define BuildCompiler
-$(line)
-@echo "Building Compiler"
-$(line)
-@$(MAKE) -C compiler depend all
-endef
-
-# dependencies:
+#
+# subdir dependencies:
# everything needs utils
-# includes needs driver (for mkNativeGen.c)
+# includes/ needs driver (to easily c.pile mkNativeGen.c)
# make depend except in {utils,driver} needs includes
# RTS and compiler need includes
-
-boot ::
- $(line)
- @echo "Building Utils"
- $(line)
- @$(MAKE) -C utils depend all
-
- $(line)
- @echo "Building Driver"
- $(line)
- @$(MAKE) -C driver all
-
- $(line)
- @echo "Building Includes"
- $(line)
- @$(MAKE) -C includes all
-
- $(line)
- @echo "Building Runtime System"
- $(line)
- @$(MAKE) -C runtime depend all
-
- $(line)
- @echo "Building Docs"
- $(line)
- @$(MAKE) -C docs depend all
-
-ifeq ($(HaskellCompilerType), HC_USE_HC_FILES)
- $(BuildLibs)
- $(BuildCompiler)
+#
+
+#
+# Order is important! It's e.g. necessary to descend into include/
+# before the rest to have a config.h, etc.
+#
+# If we're booting from .hc files, swap the order
+# we descend into compiler/ and lib/.
+#
+ifeq "$(BootingFromHc)" "YES"
+SUBDIRS = includes utils rts docs compiler driver
+else
+ifneq "$(ILXized)" "YES"
+SUBDIRS = includes utils driver docs compiler rts
else
- $(BuildCompiler)
- $(BuildLibs)
+# No RTS for ILX
+SUBDIRS = includes utils driver docs compiler
+endif
endif
-# "CONTRIB" is also a SUBDIR, but there is nothing to build there.
-SUBDIRS = utils driver includes runtime docs compiler lib
+ifeq ($(IncludeTestDirsInBuild),YES)
+SUBDIRS += tests
+endif
-# Make the required directories for install.
+SRC_DIST_FILES += configure
-install_dirs ::
- $(MKDIRHIER) $(INSTBINDIR_GHC)
- $(MKDIRHIER) $(INSTSCRIPTDIR_GHC)
- $(MKDIRHIER) $(INSTLIBDIR_GHC)
- $(MKDIRHIER) $(INSTLIBDIR_GHC)/includes
- $(MKDIRHIER) $(INSTDATADIR_GHC)
- $(MKDIRHIER) $(INSTDATADIR_GHC)/includes
- $(MKDIRHIER) $(INSTDATADIR_GHC)/imports
+DIST_CLEAN_FILES += ghc.spec config.status
-install :: install_dirs
+ifeq "$(TARGETPLATFORM)" "i386-unknown-mingw32"
+# These files need to be in the InstallShield
+# INSTALL_DATAS rather than INSTALL_DOCS is used so these files go
+# in the top-level directory of the distribution
+INSTALL_DATAS += ANNOUNCE LICENSE README VERSION
+endif
-include $(TOP)/mk/subdir.mk
+include $(TOP)/mk/target.mk