summaryrefslogtreecommitdiff
path: root/rules/hs-suffix-way-rules.mk
Commit message (Collapse)AuthorAgeFilesLines
* Per stage headers, ghc_boot_platform.h -> stage 0 ghcplatform.hJohn Ericson2019-10-041-2/+2
| | | | | | | | | | | | | | | | | | The generated headers are now generated per stage, which means we can skip hacks like `ghc_boot_platform.h` and just have that be the stage 0 header as proper. In general, stages are to be embraced: freely generate everything in each stage but then just build what you depend on, and everything is symmetrical and efficient. Trying to avoid stages because bootstrapping is a mind bender just creates tons of bespoke mini-mind-benders that add up to something far crazier. Hadrian was pretty close to this "stage-major" approach already, and so was fairly easy to fix. Make needed more work, however: it did know about stages so at least there was a scaffold, but few packages except for the compiler cared, and the compiler used its own counting system. That said, make and Hadrian now work more similarly, which is good for the transition to Hadrian. The merits of embracing stage aside, the change may be worthy for easing that transition alone.
* Update Wiki URLs to point to GitLabTakenobu Tani2019-03-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This moves all URL references to Trac Wiki to their corresponding GitLab counterparts. This substitution is classified as follows: 1. Automated substitution using sed with Ben's mapping rule [1] Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy... New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy... 2. Manual substitution for URLs containing `#` index Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz 3. Manual substitution for strings starting with `Commentary` Old: Commentary/XxxYyy... New: commentary/xxx-yyy... See also !539 [1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
* Spelling in comments [ci skip]Gabor Greif2017-02-101-3/+3
|
* Updates to handle new CabalEdward Z. Yang2016-06-301-2/+2
| | | | | | | | | | | | | | | | | | Specifically per-component macros and multiple libraries. Contains Cabal submodule update. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: austin, bgamari Reviewed By: austin, bgamari Subscribers: hvr, thomie Differential Revision: https://phabricator.haskell.org/D2059
* Fix the sdist buildThomas Miedema2015-06-061-2/+80
| | | | | | | | | | | | | | | 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
* Globally replace "hackage.haskell.org" with "ghc.haskell.org"Simon Marlow2013-10-011-2/+2
|
* Some build system refactoringIan Lynagh2013-04-201-4/+4
|
* Make the build system use -dynamic-too if both way v and dyn are being builtIan Lynagh2013-02-221-2/+20
|
* Add separate rules for all .hi files, rather than using %.hi styleIan Lynagh2013-02-221-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Rename hs-suffix-rules-srcdir to hs-suffix-way-rules-srcdirIan Lynagh2013-02-211-1/+1
|
* Rename hs-suffix-rules to hs-suffix-way-rulesIan Lynagh2013-02-211-0/+41