Changes between Version 27 and Version 28 of Attic/Building/BuildSystem/New


Ignore:
Timestamp:
Jan 18, 2009 9:56:19 PM (7 years ago)
Author:
igloo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Attic/Building/BuildSystem/New

    v27 v28  
    377377course).
    378378
     379== Whitespace ==
     380
     381make has a rather ad-hoc approach to whitespace. Most of the time it ignores it, e.g.
     382{{{
     383FOO = bar
     384}}}
     385sets `FOO` to `"bar"`, not `" bar"`. However, sometimes whitespace is significant,
     386and calling macros is one example. For example, we used to have a call
     387{{{
     388$(call all-target, $$($1_$2_INPLACE))
     389}}}
     390and this passed `" $$($1_$2_INPLACE)"` as the argument to `all-target`. This in turn generated
     391{{{
     392.PHONY: all_ inplace/bin/ghc-asm
     393}}}
     394which caused an infinite loop, as make continually thought that `ghc-asm` was out-of-date, rebuilt it,
     395reinvoked make, and then thought it was out of date again.
     396
     397The moral of the story is, avoid white space unless you're sure it'll be OK!