1. 25 Jul, 2006 1 commit
  2. 28 Apr, 2006 1 commit
  3. 07 Apr, 2006 1 commit
    • Simon Marlow's avatar
      Reorganisation of the source tree · 0065d5ab
      Simon Marlow authored
      Most of the other users of the fptools build system have migrated to
      Cabal, and with the move to darcs we can now flatten the source tree
      without losing history, so here goes.
      
      The main change is that the ghc/ subdir is gone, and most of what it
      contained is now at the top level.  The build system now makes no
      pretense at being multi-project, it is just the GHC build system.
      
      No doubt this will break many things, and there will be a period of
      instability while we fix the dependencies.  A straightforward build
      should work, but I haven't yet fixed binary/source distributions.
      Changes to the Building Guide will follow, too.
      0065d5ab
  4. 22 Jan, 2006 1 commit
  5. 13 May, 2005 1 commit
  6. 29 Apr, 2005 1 commit
    • krasimir's avatar
      [project @ 2005-04-29 13:09:27 by krasimir] · 9f0cc714
      krasimir authored
      Small fixes that adds chm and HxS targets to the build system. The former is used
      to build all documentation in HtmlHelp format while the letter uses HtmlHelp2 format.
      9f0cc714
  7. 15 Apr, 2005 1 commit
  8. 29 Mar, 2005 2 commits
  9. 24 Mar, 2005 1 commit
    • sof's avatar
      [project @ 2005-03-24 18:44:16 by sof] · c0cca2ea
      sof authored
      SRC_HC_OPTS: only add -ignore-package if supported by underlying GHC.
                   (reqd to be able to compile greencard/lib, hdirect/(com)lib with
      	     non-cutting edge GHCen.)
      
      Merge to STABLE.
      c0cca2ea
  10. 03 Mar, 2005 1 commit
  11. 10 Feb, 2005 1 commit
  12. 09 Feb, 2005 1 commit
  13. 08 Feb, 2005 1 commit
  14. 23 Jan, 2005 1 commit
    • panne's avatar
      [project @ 2005-01-23 17:05:31 by panne] · fa8246c7
      panne authored
      In the installed package.conf, all includeDirs were empty, so no GHC/package
      headers were found. This commit fixes that (in a hopefully correct way).
      fa8246c7
  15. 20 Jan, 2005 1 commit
    • simonmar's avatar
      [project @ 2005-01-20 14:22:19 by simonmar] · c830ae13
      simonmar authored
      Fill in the haddock-interfaces and haddock-html fields in the
      package.conf files.
      
      To do this I had to make some changes:
      
        - haddock-interfaces requires the value of $(datadir).  We can't
          just plug this in, because $(datadir) might change at install-time
          (eg. a Windows installer can be placed anywhere, as can a Unix
          binary .tar.gz distribution).  The current trick is for the
          compiler to splice in the value of $libdir in package.conf at
          runtime.  So we could extend this mechanism and tell the compiler
          the value of $datadir via a command-line option, but that seems
          ugly.
      
          On Windows, $datadir==$libdir, so we don't need any changes:
          package.conf still uses $libdir, and a Windows installation is
          independent of its absolute location.  Even 'make install' on
          Windows should have this property.
      
          On Unix:
      	- for 'make install' and in-place execution, we just use
                absolute paths in package.conf
      
      	- for a binary dist, we generate a package.conf that refers
      	  to $libdir and $datadir, and splice in the values at
      	  install-time (distrib/Makefile-bin.in).
      
        - Also, I renamed $libdir to $topdir to more closely reflect its
          actual meaning.  This is somewhat malicious in that it will flush
          out all those clients using $libdir when they really shouldn't
          be :-)
      c830ae13
  16. 14 Jan, 2005 1 commit
    • wolfgang's avatar
      [project @ 2005-01-14 08:01:26 by wolfgang] · 4f457f34
      wolfgang authored
      Dynamic Linking, Part 2:
      
      Hack the Makefiles to build dynamic libraries.
      This allows you to actually use dynamic libraries to greatly reduce binary
      sizes on Darwin/PowerPC and on powerpc64-linux (for now).
      
      To use this, add the following to your build.mk
      
      SplitObjs=NO
      GhcBuildDylibs=YES
      GhcStage2HcOpts=-dynamic
      GhcLibHcOpts+=-fPIC -dynamic
      GhcRtsHcOpts+=-fPIC -dynamic
      GHC_CC_OPTS+=-fPIC
      
      (You can leave out the last three lines on powerpc64-linux).
      
      Then, to compile a program using dynamic libraries, pass the -dynamic option to GHC.
      To make GHCi use the dynamic libraries instead of .o files, just delete the HS*.o files.
      
      The dynamic library files are named libHSfoo_dyn.dylib or libHSfoo_dyn.so.
      
      Note that the dynamic and static libraries are build from the same .o files,
      but we really want to build the static libraries with SplitObjs and without
      -fPIC -dynamic to achieve better code size and performance.
      
      ghc/compiler/ghci/Linker.lhs:
          When looking for a library, look for HSfoo.o first (as before),
          then look for libHSfoo_dyn.[so/dylib] before looking for
          libHSfoo.[so/dylib].
      
      ghc/compiler/main/DriverPipeline.hs:
          Main.dll_o and PrelMain.dll_o are dead, at least for now.
      
      ghc/compiler/main/Packages.lhs:
          When -dynamic is specified, add "_dyn" to all libraries specified in
          hs-libraries (not to the extra-libs).
      
      ghc/lib/compat/Makefile:
          Never build libghccompat as a dynamic lib.
      
      mk/package.mk:
          if GhcBuildDylibs is set to YES, build dynamic libraries.
      
      mk/target.mk:
          When installing .dylibs (Darwin only), update the install_name to point
          to the final location.
          (Somebody please read Apple's documentation on what install_names are,
          and then comment on whether this is a useful feature or whether it should
          be done the "normal" unix way).
      4f457f34
  17. 26 Nov, 2004 1 commit
    • simonmar's avatar
      [project @ 2004-11-26 16:19:45 by simonmar] · ef5b4b14
      simonmar authored
      Further integration with the new package story.  GHC now supports
      pretty much everything in the package proposal.
      
        - GHC now works in terms of PackageIds (<pkg>-<version>) rather than
          just package names.  You can still specify package names without
          versions on the command line, as long as the name is unambiguous.
      
        - GHC understands hidden/exposed modules in a package, and will refuse
          to import a hidden module.  Also, the hidden/eposed status of packages
          is taken into account.
      
        - I had to remove the old package syntax from ghc-pkg, backwards
          compatibility isn't really practical.
      
        - All the package.conf.in files have been rewritten in the new syntax,
          and contain a complete list of modules in the package.  I've set all
          the versions to 1.0 for now - please check your package(s) and fix the
          version number & other info appropriately.
      
        - New options:
      
      	-hide-package P    sets the expose flag on package P to False
      	-ignore-package P  unregisters P for this compilation
      
      	For comparison, -package P sets the expose flag on package P
              to True, and also causes P to be linked in eagerly.
      
              -package-name is no longer officially supported.  Unofficially, it's
      	a synonym for -ignore-package, which has more or less the same effect
      	as -package-name used to.
      
      	Note that a package may be hidden and yet still be linked into
      	the program, by virtue of being a dependency of some other package.
      	To completely remove a package from the compiler's internal database,
              use -ignore-package.
      
      	The compiler will complain if any two packages in the
              transitive closure of exposed packages contain the same
              module.
      
      	You *must* use -ignore-package P when compiling modules for
              package P, if package P (or an older version of P) is already
              registered.  The compiler will helpfully complain if you don't.
      	The fptools build system does this.
      
         - Note: the Cabal library won't work yet.  It still thinks GHC uses
           the old package config syntax.
      
      Internal changes/cleanups:
      
         - The ModuleName type has gone away.  Modules are now just (a
           newtype of) FastStrings, and don't contain any package information.
           All the package-related knowledge is in DynFlags, which is passed
           down to where it is needed.
      
         - DynFlags manipulation has been cleaned up somewhat: there are no
           global variables holding DynFlags any more, instead the DynFlags
           are passed around properly.
      
         - There are a few less global variables in GHC.  Lots more are
           scheduled for removal.
      
         - -i is now a dynamic flag, as are all the package-related flags (but
           using them in {-# OPTIONS #-} is Officially Not Recommended).
      
         - make -j now appears to work under fptools/libraries/.  Probably
           wouldn't take much to get it working for a whole build.
      ef5b4b14
  18. 23 Nov, 2004 1 commit
    • ross's avatar
      [project @ 2004-11-23 12:35:06 by ross] · 46237e9c
      ross authored
      Make the X11 and HGL packages more independent, and pass configuration
      parameters to package.conf.in via header files.
      
      Also removed residual traces of OpenGL/GLUT/OpenAL from mk/config.mk.in
      46237e9c
  19. 03 Nov, 2004 1 commit
  20. 02 Oct, 2004 1 commit
    • wolfgang's avatar
      [project @ 2004-10-02 15:12:48 by wolfgang] · 65fd4516
      wolfgang authored
      Deal with Apple's broken cpp 3.3 (you know, the one that inserts useless
      #pragma lines into it's output) by filtering it's output through
      grep -v.
      This shouldn't be a problem for other platforms, and it's much simpler
      than to make the parsers for ghc-pkg, genprimopcode and happy ignore
      those lines.
      
      MERGE TO STABLE
      65fd4516
  21. 27 Mar, 2004 1 commit
  22. 24 Feb, 2004 1 commit
  23. 07 Feb, 2004 1 commit
  24. 23 Jan, 2004 1 commit
  25. 09 Jan, 2004 2 commits
  26. 18 Dec, 2003 1 commit
    • panne's avatar
      [project @ 2003-12-18 21:37:56 by panne] · 04f38ebf
      panne authored
      Patch from Andres Loeh: Generate the *.raw-hs files with the inplace
      GHC, otherwise one runs into a "fixed-point" problem where only
      documentation known to the bootstrapping GHC could be built.
      04f38ebf
  27. 11 Nov, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-11-11 11:50:52 by simonmar] · bd9c835d
      simonmar authored
      Convert to use Haddock 0.6's combined contents/index functionality for
      the hierarchical library docs.
      
      HEADS UP: you need Haddock 0.6 in order to run 'make html' in
      fptools/libraries now.
      bd9c835d
  28. 04 Jun, 2003 1 commit
    • reid's avatar
      [project @ 2003-06-04 12:37:09 by reid] · 3a41699a
      reid authored
      All changes in this commit are standalone changes only but could usefully be used inplace as well: Don't store package.conf.installed; use a pipe to avoid problems from using stale package.confs.  Also, use PACKAGE, PACKAGE_DEPS, LIBRARY and LIBDIR settings from Makefile when installing pkg.  This requires some ugly sed hackery to overcome ghc-pkg not allowing trailing commas in a list: [a,b,c,]
      3a41699a
  29. 29 May, 2003 2 commits
  30. 23 May, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-05-23 10:00:04 by simonmar] · 37e0de2d
      simonmar authored
      For STANDALONE_PACKAGE: Let the package configuration file refer to
      $(libdir) as ${pkglibdir}.  Note we can't use ${libdir} because
      ghc-pkg already redefines it to point to GHC's libdir (bug or
      feature?).
      37e0de2d
  31. 22 May, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-05-22 15:36:08 by simonmar] · d9823b5b
      simonmar authored
      First hack at supporting standalone packages.
      
      What this means is that a non-GHC fptools project which sets
      $(PACKAGE) in a Makefile should do something reasonable.  It works by
      testing whether $(ProjectNameShort) == "ghc", and if it isn't, then:
      
       - it turns off all the machinery that deals with installing the
         package for use with the in-place compiler and a (future)
         installation of GHC.
      
       - instead, it enables a rule that installs the package using
         the installed $(GHC_PKG).  The configure script still needs
         updating to detect this, so 'make install' won't work yet.
      
       - $(GHC) is used instead of $(GHC_INPLACE) for compiling Haskell
         code.
      
      Apart from the detection of ghc-pkg in configure, this should be all
      that's needed to get source distributions and 'make install' going.
      d9823b5b
  32. 17 May, 2003 1 commit
    • ross's avatar
      [project @ 2003-05-17 00:11:27 by ross] · 14a46cb9
      ross authored
      Rename per-package configuration files from $(PACKAGE).conf.* to
      package.conf.*, making them easier to find (since each package is
      in a separate directory anyway).
      14a46cb9
  33. 16 May, 2003 1 commit
    • simonmar's avatar
      [project @ 2003-05-16 10:14:20 by simonmar] · 4475de8a
      simonmar authored
      Now that we have auto packages, it makes sense to keep all the
      interfaces for hierarchical libraries in the same directory tree.  So
      now, instead of putting interfaces for package P in $libdir/imports/P,
      we put them all in $libdir/imports.
      
      Interfaces for old non-auto non-hierarchical packages now go in
      $libdir/hslibs-imports/P for package P.
      4475de8a
  34. 31 Mar, 2003 1 commit
  35. 14 Jan, 2003 2 commits
  36. 12 Dec, 2002 1 commit