[project @ 2001-03-23 16:36:20 by simonmar]
[ghc-hetmet.git] / ghc / Makefile
index effd0a9..c62f588 100644 (file)
@@ -1,79 +1,43 @@
 #-----------------------------------------------------------------------------
-# $Id: Makefile,v 1.2 1996/11/21 16:46:26 simonm Exp $
+# $Id: Makefile,v 1.15 2001/03/23 16:36:20 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 driver rts docs lib compiler
 else
-       $(BuildCompiler)
-       $(BuildLibs)
+SUBDIRS = includes utils driver docs compiler rts lib
 endif
 
-# "CONTRIB" is also a SUBDIR, but there is nothing to build there.
-SUBDIRS = utils driver includes runtime docs compiler lib
+# Easier to copy
+ifeq "$(BIN_DIST)" "1"
+SUBDIRS := $(filter-out docs,$(SUBDIRS))
+endif
 
-# Make the required directories for install.
+ifeq ($(IncludeTestDirsInBuild),YES)
+SUBDIRS += tests
+endif
 
-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
+SRC_DIST_FILES += configure
 
-install :: install_dirs
+DIST_CLEAN_FILES += ghc.spec config.status
+MAINTAINER_CLEAN_FILES += configure
 
-include $(TOP)/mk/subdir.mk
+include $(TOP)/mk/target.mk