Hash inside Makefile shell call causes unexpected behaviour
The following command prints the absolute path of a particular C++ header, according to where g++ believes it to be.

    echo \#include\<ham/hamsterdb.h\> | g++ -M -x c++-header - | grep hamsterdb.hpp | sed -e 's/-:  //' -e 's/ \\//'

On my system, this outputs: `/usr/local/include/ham/hamsterdb.hpp`

I run into a problem when trying to run this inside a Makefile in order to set a variable:

    FILE=$(shell echo \#include\<ham/hamsterdb.h\> | g++ -M -x c++-header - | grep hamsterdb.hpp | sed -e 's/-:  //' -e 's/ \\//')
    
    .PHONY spec
    
    spec:
        @echo $(FILE)

This outputs a new line. I think it's the hash ('#') character which is messing with make; if I rewrite the `FILE=...` line like this:

    FILE=$(shell echo \#include\<ham/hamsterdb.h\>)

the output is still nothing.
Hash inside Makefile shell call causes unexpected behaviour
===

The following command prints the absolute path of a particular C++ header, according to where g++ believes it to be.

    echo \#include\<ham/hamsterdb.h\> | g++ -M -x c++-header - | grep hamsterdb.hpp | sed -e 's/-:  //' -e 's/ \\//'

On my system, this outputs: `/usr/local/include/ham/hamsterdb.hpp`

I run into a problem when trying to run this inside a Makefile in order to set a variable:

    FILE=$(shell echo \#include\<ham/hamsterdb.h\> | g++ -M -x c++-header - | grep hamsterdb.hpp | sed -e 's/-:  //' -e 's/ \\//')
    
    .PHONY spec
    
    spec:
        @echo $(FILE)

This outputs a new line. I think it's the hash ('#') character which is messing with make; if I rewrite the `FILE=...` line like this:

    FILE=$(shell echo \#include\<ham/hamsterdb.h\>)

the output is still nothing.