X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc.mk;h=c9b280984a405bcdbc4bc14263479e35c6afb60d;hb=7f995ef4d41815cd2d9fab774a638b5493d33910;hp=053432ec0a44c44ffb14bdb2c625558e07081730;hpb=61bf169b2dd40f9e2870b2e93a0d4861fbbac606;p=ghc-hetmet.git diff --git a/ghc.mk b/ghc.mk index 053432e..c9b2809 100644 --- a/ghc.mk +++ b/ghc.mk @@ -1,3 +1,15 @@ +# ----------------------------------------------------------------------------- +# +# (c) 2009 The University of Glasgow +# +# This file is part of the GHC build system. +# +# To understand how the build system works and how to modify it, see +# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture +# http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying +# +# ----------------------------------------------------------------------------- + # ToDo List. # # Before we can merge the new build system into HEAD: @@ -12,21 +24,28 @@ # * need to fix Cabal for new Windows layout, see # Distribution/Simple/GHC.configureToolchain. # -# As we merge the new build system into HEAD: +# Once the new build system is in HEAD, and before 6.12: # # * remove old Makefiles, add new stubs for building in subdirs # * utils/hsc2hs/Makefile # * utils/haddock/Makefile # * mk/oldconfig.mk.in -# -# Once the new build system is in HEAD, and before 6.12: -# +# * docs/Makefile +# * docs/docbook-cheat-sheet/Makefile +# * docs/ext-core/Makefile +# * docs/man/Makefile +# * docs/storage-mgmt/Makefile +# * docs/users_guide/Makefile +# * docs/vh/Makefile +# * driver/Makefile +# * driver/ghc/Makefile +# * libraries/Makefile +# * rts/dotnet/Makefile +# * utils/Makefile # * docbook PDFs, e.g. "dblatex -T db2latex users_guide.xml" # * GhcProfiled # * optionally install stage3? -# * why does so much stuff get rebuilt after re-configuring? # * shared libraries, way dyn -# * add pointers to wiki docs from the build system source # * get HC bootstrapping working # * add Makefiles for the rest of the utils/ programs that aren't built # by default (need to exclude them from 'make all' too) @@ -55,12 +74,6 @@ # a state where the package database is out of date, and the build # system doesn't know. -# NOTES on how to debug: -# make --debug=b --debug=m shows dependencies -# make -p prints all generated makefile rules and variables -# make show VALUE=VAR prints the value of VAR -# $(warning stuff) prints stuff when reading the makefile - # Approximate build order. # # The actual build order is defined by dependencies, and the phase @@ -295,7 +308,15 @@ PACKAGES += \ syb \ template-haskell \ base3-compat \ - Cabal + Cabal \ + mtl \ + utf8-string + +ifneq "$(Windows)" "YES" +PACKAGES += terminfo +endif + +PACKAGES += haskeline BOOT_PKGS = Cabal hpc extensible-exceptions @@ -372,8 +393,8 @@ libraries/ghc-prim/GHC/Prim.hs : $(GENPRIMOP_INPLACE) $(PRIMOPS_TXT) # ----------------------------------------------------------------------------- # Include build instructions from all subdirs -# See commentary in the top-level Makefile for why we divide the build -# into phases. +# For the rationale behind the build phases, see +# http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering # Setting foo_dist_DISABLE=YES means "in directory foo, for build # "dist", just read the package-data.mk file, do not build anything". @@ -827,12 +848,22 @@ clean_files : distclean : clean $(RM) config.cache config.status config.log mk/config.h mk/stamp-h - $(RM) mk/config.mk mk/are-validating.mk + $(RM) mk/config.mk mk/are-validating.mk mk/project.mk $(RM) extra-gcc-opts docs/users_guide/ug-book.xml $(RM) compiler/ghc.cabal ghc/ghc-bin.cabal $(RM) libraries/base/include/HsBaseConfig.h $(RM) libraries/directory/include/HsDirectoryConfig.h + $(RM) libraries/process/include/HsProcessConfig.h + $(RM) libraries/unix/include/HsUnixConfig.h + $(RM) libraries/old-time/include/HsTimeConfig.h maintainer-clean : distclean + $(RM) configure mk/config.h.in + $(RM) -r autom4te.cache libraries/*/autom4te.cache $(RM) ghc.spec - $(RM) libraries/*/GNUmakefile + $(RM) libraries/*/GNUmakefile libraries/*/ghc.mk libraries/*/configure + $(RM) libraries/base/include/HsBaseConfig.h.in + $(RM) libraries/directory/include/HsDirectoryConfig.h.in + $(RM) libraries/process/include/HsProcessConfig.h.in + $(RM) libraries/unix/include/HsUnixConfig.h.in + $(RM) libraries/old-time/include/HsTimeConfig.h.in