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


Ignore:
Timestamp:
Jan 18, 2009 9:56:19 PM (5 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!