Changes between Version 33 and Version 34 of Commentary/SourceTree


Ignore:
Timestamp:
Oct 17, 2011 9:29:45 PM (4 years ago)
Author:
dterei
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Commentary/SourceTree

    v33 v34  
    1 
    21[[PageOutline]]
    32
    43= Layout of important files and directories =
    54
    6 This page summarises the overall file and directory structure of GHC.  We include both source files and generated files; the latter are always identified "build-tree only".
     5This page summarises the overall file and directory structure of GHC. We include both source files and generated files; the latter are always identified "build-tree only".
    76
    8 Everything starts with the main GHC repository (see [wiki:Building/GettingTheSources]).   The build system calls that directory `$(TOP)`. All the paths below are relative to `$(TOP)`.
     7Everything starts with the main GHC repository (see [wiki:Building/GettingTheSources]). The build system calls that directory `$(TOP)`. All the paths below are relative to `$(TOP)`.
    98
    109== Files in `$(TOP)` ==
    1110
    1211 '''`sync-all`'''::
    13   [wiki:Building/SyncAll This script] allows you to get or pull all the additional repositories that you need to build GHC.  The command-line interface is documented in the file itself.
     12  [wiki:Building/SyncAll This script] allows you to get or pull all the additional repositories that you need to build GHC. The command-line interface is documented in the file itself.
    1413
    1514 '''`packages`'''::
    1615  Lists the packages that `sync-all` should get or pull.  `packages` is looked at only by `sync-all`.
    1716
    18  '''`validate`''':: Run `validate` (a shell script) before committing (see [wiki:TestingPatches]).  The script is documented in the file itself.
     17 '''`tarballs`'''::
     18  Lists the various tarballs (binary packages) that ghc relies on and where to unpack them during a build.
    1919
    20  '''Documentation files''':: `README`, `ANNOUNCE`, `HACKING`, `LICENSE`
     20 '''`validate`''':: Run `validate` (a shell script) before committing (see [wiki:TestingPatches]). The script is documented in the file itself.
    2121
    22  '''GNU autoconf machinery''':: `aclocal.m4`, `config.guess`, `config.sub`, `configure.ac`, `install-sh`, `config.mk.in`
     22 '''Documentation files''':: `README`, `ANNOUNCE`, `HACKING`, `LICENSE`, `new_tc_notes`
     23
     24 '''GNU autoconf machinery''':: `aclocal.m4`, `config.guess`, `config.sub`, `configure.ac`, `install-sh`, `config.mk.in`, `settings.in`
    2325
    2426 '''`ghc.spec.in`''':: the RPM spec file
    2527
    26  '''`ghc.mk`''', '''`Makefile`''':: The top-level {{{Makefile}}}: see [wiki:Building/Architecture GHC Build System Architecture]. GHC requires
     28 '''`Makefile`''':: The top-level {{{Makefile}}}: see [wiki:Building/Architecture GHC Build System Architecture]. GHC requires
    2729  [http://www.gnu.org/software/make/ GNU make].
     30
     31 '''Make system files''':: `ghc.mk`, `MAKEHELP`, `SUBMAKEHELP`
    2832
    2933== `libraries/` ==
    3034
    31 The `libraries/` directory contains all the packages that GHC needs to build.  It has one sub-directory for each package repository (e.g. `base`, `haskell98`, `random`). Usually each such repository builds just one package, but there is more than one in `dph`.
     35The `libraries/` directory contains all the packages that GHC needs to build. It has one sub-directory for each package repository (e.g. `base`, `haskell98`, `random`). Usually each such repository builds just one package, but there is more than one in `dph`.
    3236
    3337GHC's libraries are described in more detail on the [wiki:Commentary/Libraries libraries page].
     
    4145There is [wiki:ModuleDependencies documentation of the intended module dependency structure] of the `compiler/` directory.
    4246
    43  * '''`compiler/ghc.cabal.in`''': the Cabal file for GHC is generated from this.  If you add a module to GHC's source code, you must add it in the `ghc.cabal.in` file too, else you'll get link errors.
     47 * '''`compiler/ghc.cabal.in`''': the Cabal file for GHC is generated from this. If you add a module to GHC's source code, you must add it in the `ghc.cabal.in` file too, else you'll get link errors.
    4448
    4549The following directories appear only in the build tree:
    4650
    47  * '''`compiler/stage1`''': generated files for the stage1 build of GHC.  There are a handful of files (`ghc_boot_platform.h` etc), and a directory `compiler/stage1/build/` that contains all the `.o` and `.hi` files for the compiler.
     51 * '''`compiler/stage1`''': generated files for the stage1 build of GHC. There are a handful of files (`ghc_boot_platform.h` etc), and a directory `compiler/stage1/build/` that contains all the `.o` and `.hi` files for the compiler.
    4852 * '''`compiler/stage2`''': similarly stage2.
    4953
     
    6670 * '''`utils/ghc-pwd`''' is a little program we use for getting the current directory. We use this, rather than `pwd`, as the latter may give reults that we can't use on Windows.
    6771 * '''`utils/ghc-cabal`''' is a little program we use for building the libraries. It's similar to cabal-install, but without the dependencies on `http` etc.
    68  * '''`utils/count_lines`''' is a program that counts the number of source-code lines in GHC's code-base.  It distinguishes comments from non-comments.
     72 * '''`utils/count_lines`''' is a program that counts the number of source-code lines in GHC's code-base. It distinguishes comments from non-comments.
    6973
    70 ''Why isn't libffi in utils/?''
     74== `ghc-tarballs/` ==
     75
     76This contains some tarball files (binary packages) that GHC relies upon. Used for easier development / deployment on windows.
    7177
    7278== `testsuite/`, `nofib/` ==
     
    8591== `distrib/` ==
    8692
    87 Micellaneous files for building distributions.
     93Miscellaneous files for building distributions.
    8894
    8995== Stuff that appears only in a build tree ==