1. 10 Feb, 2017 1 commit
  2. 30 Jun, 2016 1 commit
  3. 06 Jun, 2015 1 commit
    • thomie's avatar
      Fix the sdist build · 328c212b
      thomie authored
      Since commit 824e34e30338b4b1de0ab5467ffd29da4c7c805a, building ghc from
      a source distribution doesn't work.
      
      The error is:
      
          make[3]: *** No rule to make target
          'utils/genprimopcode/dist/build/Lexer.hs', needed by
          'utils/genprimopcode/dist/build/Lexer.o'.  Stop.
      
      This commit fixes that. See note [Implicit rule search algorithm].
      
      Differential Revision: https://phabricator.haskell.org/D959
      328c212b
  4. 01 Oct, 2013 1 commit
  5. 20 Apr, 2013 1 commit
  6. 22 Feb, 2013 2 commits
    • ian@well-typed.com's avatar
    • ian@well-typed.com's avatar
      Add separate rules for all .hi files, rather than using %.hi style · a49e9cf3
      ian@well-typed.com authored
      If a file is created by a %.hi rule, and the actual filename isn't
      mentioned in the makefiles, then make will treat it as an 'intermediate
      file' and delete it when it is finished.
      
      We'd been lucky so far that .hi files weren't actually being built due
      to our rules (but rather, as side-effects of the .o rules). However,
      when using -dynamic-too to build, we had a rule
          $1/$2/build/%.$$(dyn_osuf): $1/$2/build/%.$$(v_hisuf)
      which meant that building a .dyn_o could cause the rule for the
      corresponding .hi to be used, and the .hi may then be deleted later on.
      This was exacerbated by a bug in GNU make 3.81 which caused make to
      enter an infinite loop if running in parallel mode:
          http://lists.gnu.org/archive/html/bug-make/2013-02/msg00020.html
      
      Adding
          .SECONDARY:
      would stop make from deleting the intermediate files. However, this
      caused make to take a pathologically long time (it appeared to be
      live-locked for 2 hours before I killed it) with our build system.
      
      This patch instead creates lines like
          $(eval $(call hi-rule,libraries/base/dist-install/build/Unsafe/Coerce.dyn_hi libraries/base/dist-install/build/Unsafe/Coerce.hi  : %hi: %o  libraries/base/Unsafe/Coerce.hs))
      in the .depend files, which results in a rule like
          libraries/base/dist-install/build/Unsafe/Coerce.dyn_hi libraries/base/dist-install/build/Unsafe/Coerce.hi  : %hi: %o  libraries/base/Unsafe/Coerce.hs ;
      which, as the files are now all named in the makefiles, means they are
      no longer intermediate files so do not get deleted.
      a49e9cf3
  7. 21 Feb, 2013 3 commits
  8. 17 Feb, 2013 1 commit
  9. 11 Jan, 2013 1 commit
  10. 10 Jan, 2013 1 commit
  11. 27 Apr, 2012 1 commit
    • Iavor S. Diatchki's avatar
      A build-system tweak for more readable build output. · d209588a
      Iavor S. Diatchki authored
      This change reduces the (default) verbosity of the build system.
      This makes it easier to spot warnings in the output and, also, it
      makes it easier to estimate how far along are we in the build process
      by just glancing at the output.
      
      To get the traditional fully verbose output, set V=1, like this:
      
          make V=1
      d209588a
  12. 28 Aug, 2011 1 commit
    • Ian Lynagh's avatar
      By default, be lax about dependencies on GHC · 12646a9c
      Ian Lynagh authored
      There are a number of things which technically depend on GHC (e.g. if
      ghc changes then Haskell files may be compiled differently, or Cabal
      packages may be configured differently). However, in practice, having
      a real dependency on GHC is just a pain: We normally don't want to
      spend time recompiling other things while we're working on the
      compiler, and even if we did, GHC will normally decide compilation
      isn't needed anyway. So by default we use order-only dependencies on
      GHC, i.e. GHC must exist, but if it's newer than other targets then
      rebuilding is not necessary.
      12646a9c
  13. 22 Jan, 2011 1 commit
    • Ian Lynagh's avatar
      Simplify the build system, and remove 2 phases · 295016c3
      Ian Lynagh authored
      From
          http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture/Idiom/PhaseOrdering
      
      Phase 0:
          Includes: package-data.mk files for things built by the
                    bootstrapping compiler.
          Builds:   the dependency files for hsc2hs and genprimopcode. We need
                    to do this now, as hsc2hs needs to be buildable in phase 1's
                    includes (so that we can make the hpc library's .hs source
                    files, which in turn is necessary for making its dependency
                    files), and genprimopcode needs to be buildable in phase 1's
                    includes (so that we can make the primop-*.hs-incl files,
                    which are sources for the stage1 compiler library, and thus
                    necessary for making its dependency files).
      Phase 1:
          Includes: dependency files for things built by the bootstrapping
                    compiler.
          Builds:   package-data.mk files for everything else. Note that this
                    requires configuring the packages, which means telling cabal
                    which ghc to use, and thus the stage1 compiler gets built
                    during this phase. 
      Phase "":
          Includes: dependency files for everything else.
          Builds:   Everything else. 
      295016c3
  14. 30 May, 2009 1 commit
  15. 03 May, 2009 1 commit
  16. 28 Apr, 2009 1 commit
  17. 26 Apr, 2009 1 commit