Reorganisation of the source tree
[ghc-hetmet.git] / ghc / Makefile
index effd0a9..cacc3f7 100644 (file)
@@ -1,79 +1,54 @@
 #-----------------------------------------------------------------------------
-# $Id: Makefile,v 1.2 1996/11/21 16:46:26 simonm Exp $
+# $Id: Makefile,v 1.30 2005/03/02 14:35:05 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)
+#      utils needs lib
+#      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 subdirs - to boot utils must be before driver.
+#
+ifeq "$(BootingFromHc)" "YES"
+SUBDIRS = includes rts docs compiler lib utils driver
+else
+ifneq "$(ILXized)" "YES"
+SUBDIRS = includes lib utils driver docs compiler rts
 else
-       $(BuildCompiler)
-       $(BuildLibs)
+# No RTS for ILX
+SUBDIRS = includes lib utils driver docs compiler
 endif
+endif
+
+SRC_DIST_FILES += configure
 
-# "CONTRIB" is also a SUBDIR, but there is nothing to build there.
-SUBDIRS = utils driver includes runtime docs compiler lib
+# Clean everything created by configure:
+DIST_CLEAN_FILES += VERSION config.cache config.status ghc.spec \
+       docs/users_guide/ug-book.xml
 
-# Make the required directories for install.
+# don't clean version.mk: it's needed when cleaning stuff later on
+LATE_DIST_CLEAN_FILES += mk/config.mk 
 
-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
+extraclean::
+       $(RM) -rf autom4te.cache
 
-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