GNU make differences in multiline variable declarations
I read this question, and I was surprised it wasn't working:

http://stackoverflow.com/questions/5032935/why-gnu-make-canned-recipe-doesnt-work

So I tried it myself and got the same results.  Here's an example makefile:

    define foo
    bar
    baz
    endef
    
    define bar = 
    foo
    baz
    endef
    
    $(info foo: $(foo))
    $(info bar: $(bar))
    
    all:

And here's the output from running it:

    $ make
    foo: bar
    baz
    bar: 
    make: Nothing to be done for `all'.

What's happening here?  The [GNU make manual][1] seems to indicate that these two variable declarations should be the same - what am I missing here?

Edit:

Some quotations from the manual that I was referring to:

>###3.7 How make Reads a Makefile
>     define immediate
      deferred
    endef
     
>     define immediate =
      deferred
    endef

>###6.8 Defining Multi-Line Variables

>... You may omit the variable assignment operator if you prefer. If omitted, make assumes it to be ‘=’ and creates a recursively-expanded variable...

I'm using GNU Make 3.81.

[1]: http://www.gnu.org/software/make/manual/make.html
GNU make differences in multiline variable declarations
===

I read this question, and I was surprised it wasn't working:

http://stackoverflow.com/questions/5032935/why-gnu-make-canned-recipe-doesnt-work

So I tried it myself and got the same results.  Here's an example makefile:

    define foo
    bar
    baz
    endef
    
    define bar = 
    foo
    baz
    endef
    
    $(info foo: $(foo))
    $(info bar: $(bar))
    
    all:

And here's the output from running it:

    $ make
    foo: bar
    baz
    bar: 
    make: Nothing to be done for `all'.

What's happening here?  The [GNU make manual][1] seems to indicate that these two variable declarations should be the same - what am I missing here?

Edit:

Some quotations from the manual that I was referring to:

>###3.7 How make Reads a Makefile
>     define immediate
      deferred
    endef
     
>     define immediate =
      deferred
    endef

>###6.8 Defining Multi-Line Variables

>... You may omit the variable assignment operator if you prefer. If omitted, make assumes it to be ‘=’ and creates a recursively-expanded variable...

I'm using GNU Make 3.81.

[1]: http://www.gnu.org/software/make/manual/make.html