1. 15 Nov, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-11-15 11:20:30 by simonmar] · 805fcaad
      simonmar authored
      - get rid of $(FptoolsHcOpts), it was ill-conceived.  As it was,
        $(FptoolsHcOpts) was overriding options in $(GhcHcOpts).  Now,
        we just use $(SRC_HC_OPTS) instead, which can be overriden
        by $(GhcHcOpts).
      
      - Don't bother adding -ldl to $(SRC_HC_OPTS) in config.mk.  It is
        added to the RTS's package configuration if necessary.
      805fcaad
  2. 13 Nov, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-11-13 12:21:08 by simonmar] · 351afa5a
      simonmar authored
      Add support for gcc-style "make bootstrap" which will build the stage
      1, 2 and 3 compilers in the same build tree.
      
      The idea is to simplify building a stage 2 or 3 compiler (now you only
      need one build tree), and also speed up the build: there's no need to
      compile the libraries more than once, because the stage 1 libraries
      are used for stages 2 & 3.
      
      In ghc/compiler, the objects and .hi files are now placed in
      subdirectories: ghc/compiler/stage1 has the stage1 objects,
      ghc/compiler/stage2 has the stage2 objects, etc.
      
      The story from the top-level (fptools) is this:
      
        make all 	  works as before (i.e. builds ghc (stage 1),
      		  libraries, etc.)
      
        make stage2     builds the stage 2 compiler
        make stage3     builds the stage 3 compiler
      
        make bootstrap  does 'make all' followed by 'make stage2'
        make bootstrap3 does 'make all' followed by 'make stage2; make stage3'
      
      In ghc/compiler, the story is now:
      
        make all	     works as before (i.e. builds stage 1 only)
      
        make boot          generate build dirs and dependencies for stage 1
        make boot stage=N  generate build dirs and dependencies for stage N
      
        make stageN
        make stage=N       builds stage N compiler.  Run it in-place using
      		    ./stageN/ghc-inplace.
      
      I haven't decided what to do about 'make install' yet, and this still
      needs documenting in the Building Guide.  Also, you still get the same
      $(GhcHcOpts) for each stage.
      351afa5a
  3. 30 Sep, 2002 1 commit
  4. 23 Jul, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-07-23 11:25:27 by simonmar] · de309222
      simonmar authored
      if $(STAMP_PKG_CONF) is non-null, then wait for it before generating
      dependencies.  This avoids a race with 'make -j' where package.conf
      could get modified while the compiler is reading it.
      de309222
  5. 16 Jul, 2002 1 commit
  6. 02 Jul, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-07-02 13:50:56 by simonmar] · b1a806e7
      simonmar authored
      Install SGML docs in the right places:
      
      	$(datadir)/html for HTML docs
      	$(datedir)      for everything else
      
      (our main HTML documentation tree will live in $(datadir)/html now).
      b1a806e7
  7. 20 Jun, 2002 1 commit
  8. 22 May, 2002 1 commit
    • sof's avatar
      [project @ 2002-05-22 18:36:19 by sof] · 7a6b4575
      sof authored
      HC_SPLIT_POST: reduce the risk of exceeding command line length limits.
      
      [As was, constructing the relocatable ".o"s from split object files
      failed with stuff inside of libraries/haskell-src/Language/Haskell/
      under cygwin(&bash).]
      7a6b4575
  9. 01 May, 2002 2 commits
  10. 11 Mar, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-03-11 10:55:11 by simonmar] · b274236c
      simonmar authored
      Re-instate ifeq "$(way)" "" around the rule for recursively descending
      into SUBDIRS that I removed a while back.  This will fix a bug in
      nofib whereby if NoFibWays is set to anything then we do O(n^2)
      traversals of the tree, but it also means you can't sit at the top of
      the tree and say 'make way=p' to just build profiling libraries (which
      was the reason I made the change in the first place).  We'll have to
      find another way to do this.
      b274236c
  11. 18 Feb, 2002 1 commit
  12. 14 Feb, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-02-14 15:14:00 by simonmar] · 4f0e92bc
      simonmar authored
      Fixes to 'make install' in fptools/libraries.  We have to maintain the
      directory structure when installing the .hi files, rather than just
      dumping them in a single directory as we do for packages in
      fptools/hslibs.
      4f0e92bc
  13. 13 Feb, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-02-13 10:40:24 by simonmar] · 9f66c841
      simonmar authored
      Fixes to SplitObjs: we now put the split object files in a
      subdirectory M_split/ rather than just M/, because the latter
      interacts badly with our hierarchical module structure.
      9f66c841
  14. 12 Feb, 2002 1 commit
    • simonmar's avatar
      [project @ 2002-02-12 15:17:13 by simonmar] · 2cc5b907
      simonmar authored
      Switch over to the new hierarchical libraries
      ---------------------------------------------
      
      This commit reorganises our libraries to use the new hierarchical
      module namespace extension.
      
      The basic story is this:
      
         - fptools/libraries contains the new hierarchical libraries.
           Everything in here is "clean", i.e. most deprecated stuff has
           been removed.
      
      	- fptools/libraries/base is the new base package
      	  (replacing "std") and contains roughly what was previously
      	  in std, lang, and concurrent, minus deprecated stuff.
      	  Things that are *not allowed* in libraries/base include:
      		Addr, ForeignObj, ByteArray, MutableByteArray,
      		_casm_, _ccall_, ``'', PrimIO
      
      	  For ByteArrays and MutableByteArrays we use UArray and
      	  STUArray/IOUArray respectively now.
      
      	  Modules previously called PrelFoo are now under
      	  fptools/libraries/GHC.  eg. PrelBase is now GHC.Base.
      
      	- fptools/libraries/haskell98 provides the Haskell 98 std.
      	  libraries (Char, IO, Numeric etc.) as a package.  This
      	  package is enabled by default.
      
      	- fptools/libraries/network is a rearranged version of
      	  the existing net package (the old package net is still
      	  available; see below).
      
      	- Other packages will migrate to fptools/libraries in
      	  due course.
      
           NB. you need to checkout fptools/libraries as well as
           fptools/hslibs now.  The nightly build scripts will need to be
           tweaked.
      
         - fptools/hslibs still contains (almost) the same stuff as before.
           Where libraries have moved into the new hierarchy, the hslibs
           version contains a "stub" that just re-exports the new version.
           The idea is that code will gradually migrate from fptools/hslibs
           into fptools/libraries as it gets cleaned up, and in a version or
           two we can remove the old packages altogether.
      
         - I've taken the opportunity to make some changes to the build
           system, ripping out the old hslibs Makefile stuff from
           mk/target.mk; the new package building Makefile code is in
           mk/package.mk (auto-included from mk/target.mk).
      
           The main improvement is that packages now register themselves at
           make boot time using ghc-pkg, and the monolithic package.conf
           in ghc/driver is gone.
      
           I've updated the standard packages but haven't tested win32,
           graphics, xlib, object-io, or OpenGL yet.  The Makefiles in
           these packages may need some further tweaks, and they'll need
           pkg.conf.in files added.
      
         - Unfortunately all this rearrangement meant I had to bump the
           interface-file version and create a bunch of .hi-boot-6 files :-(
      2cc5b907
  15. 30 Jan, 2002 1 commit
  16. 23 Jan, 2002 1 commit
  17. 09 Jan, 2002 1 commit
  18. 13 Dec, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-12-13 11:42:47 by simonmar] · 6ecddfb5
      simonmar authored
      SUBDIR builds now happen *after* the current directory, to alleviate
      problems caused by the including of _hsc.o files in cbits libs - if
      the .hsc file was touched and we recurse into the cbits lib first,
      then hsc2hs got run in the cbits lib generating a bogus Foo.hs file in
      the current directory which refers to ../Foo_hsc.h.
      
      There was a comment saying that the SUBDIR builds were first because
      of something to do with building DLLs in hslibs, but didn't give any
      more detail.  If/when DLLs are re-enabled we can revisit this.
      6ecddfb5
  19. 16 Nov, 2001 1 commit
  20. 12 Nov, 2001 1 commit
    • simonmar's avatar
      [project @ 2001-11-12 14:13:35 by simonmar] · cc863b02
      simonmar authored
      Generate .a files into a temporary file before renaming to the actual
      target, to avoid a problem whereby 'ar' could leave a partially-built
      archive lying around.
      cc863b02
  21. 09 Nov, 2001 1 commit
    • sof's avatar
      [project @ 2001-11-09 16:29:06 by sof] · 41a551e3
      sof authored
      Auto-rule for INSTALL_DATAS and cbits/ header files:
      
      Nuke $(shell perl -e '...') use, i.e., don't load in and start up
      a 3M binary just to capitalise a word (which gets done twice per
      invocation of 'make').
      41a551e3
  22. 24 Oct, 2001 5 commits
  23. 23 Oct, 2001 2 commits
    • rrt's avatar
      [project @ 2001-10-23 14:41:12 by rrt] · 1125663a
      rrt authored
      Since you can only have one SGML_DOC per directory, may as well only
      have one INSTALL_SGML_DOC too. Remove the machinery for handling more
      than one.
      1125663a
    • rrt's avatar
      [project @ 2001-10-23 14:34:24 by rrt] · 60d2f334
      rrt authored
      Add rules for building and installing documentation. The story is as
      follows:
      
      GhcDocWays is set to a list of ways to build SGML docs (typically in
      build.mk; it defaults to empty).
      SGML_DOC = foo causes foo to be built for each way.
      SGML_INSTALL_DOCS are then installed for each way;
      INSTALL_DOCS are just taken as literal filenames.
      make install-docs causes documents to be installed.
      
      Also some other clearups:
      
      Use $(if ...) where a comment lamented its non-existence.
      Remove a comment about a "weird" use of exit which has vanished.
      60d2f334
  24. 03 Oct, 2001 1 commit
    • rrt's avatar
      [project @ 2001-10-03 15:30:57 by rrt] · d1bf2fc3
      rrt authored
      Dear Sigbjorn,
      
      next time you turn an
      
      if...endif
      
      into an
      
      if...else..endif
      
      remember to check the sense of the test. Sometimes, it needs to be reversed
      (there was in this case a hint in the surrounding code).
      
      Love,
      
      Reuben.
      d1bf2fc3
  25. 28 Sep, 2001 1 commit
    • sof's avatar
      [project @ 2001-09-28 23:36:50 by sof] · 53ededd0
      sof authored
      Provide finer-grained control for turning off mk/target.mk's
      'all', 'boot' and 'install' rules. i.e., instead of having
      the variable NO_ALL_TARGETS control the defnition of rules
      for all three, NO_ALL_TARGET, NO_BOOT_TARGET, and NO_INSTALL_TARGET
      lets you individually control which ones you don't want.
      
      Sub-projects (GC and HDirect, for example) have the need
      to turn off the 'boot' rule, which is what motivated this
      change.
      53ededd0
  26. 24 Sep, 2001 1 commit
  27. 08 Sep, 2001 1 commit
    • sof's avatar
      [project @ 2001-09-08 21:42:07 by sof] · ec2e177f
      sof authored
      Remove ugly special casing - if you want to turn off the
      default rule for GHCI_LIBRARY, set DONT_WANT_STD_GHCI_LIB_RULE
      to YES in your Makefile prior to including $(TOP)/mk/target.mk
      
      ghc/lib/std and hslibs/win32 both do this now on mingw32.
      ec2e177f
  28. 04 Sep, 2001 1 commit
  29. 17 Aug, 2001 1 commit
  30. 16 Aug, 2001 1 commit
    • sof's avatar
      [project @ 2001-08-16 22:54:24 by sof] · 48e7208b
      sof authored
      Death to GHC_INCLUDE_DIR (well, almost).
      
      - mk/target.mk: get rid off the abomination of having SRC_CC_OPTS include
        GHC_INCLUDE_DIR and GHC_RUNTIME_DIR for all fptools/ projects.
      - mk/suffix.mk: %.pp suffix rule no longer hardwires in the use of GHC_INCLUDE_DIR;
        just $(CPP_OPTS). ==> If you want GHC_INCLUDE_DIR on the include path, better
        add it to SRC_CPP_OPTS (say) at the point where you need it (ghc/compiler/Makefile
        and ghc/lib/std/Makefile do this now).
      - wipe out the use of -I$(GHC_INCLUDE_DIR) in HC_OPTS in hslibs/; not needed.
      - hslibs/mk/boilerplate.mk still define GHC_{IO_}INCLUDE_DIR for the purpose
        of using it when compiling .c files. It should be possible to get rid off it
        by having CC=$(HC), but I haven't imposed that change (yet).
      48e7208b
  31. 06 Aug, 2001 1 commit
  32. 04 Aug, 2001 1 commit
    • ken's avatar
      [project @ 2001-08-04 06:11:24 by ken] · 225d2513
      ken authored
      Changed
      
          # Add _hsc.c files to the cbits library
          SRCS += $(wildcard ../*_hsc.c)
      
      (which didn't work because SRCS has already been pattern-matched and
      substituted into other make variables to death by then) to
      
          # Add _hsc.c files to the cbits library
          C_SRCS += $(wildcard ../*_hsc.c)
      225d2513
  33. 30 Jul, 2001 1 commit
  34. 23 Jul, 2001 1 commit
    • ken's avatar
      [project @ 2001-07-23 22:52:33 by ken] · e99733ff
      ken authored
      Improved how we build library archives:
      
      On Digital UNIX (or where otherwise available), use the "Z" option to
      compress archives as we build them.
      
      On Digital UNIX 5 (or where otherwise available), use the "-input" option,
      which reads from a specified file the list of objects to archive.  This is
      significantly faster than piping the list of objects to xargs when the
      number of objects to archive is large.
      e99733ff