Macro definitions must be IDENTICAL. So defining your PCH define is not going to work. And it looks like your rule to produce the gch file is producing assembler output. That won't work, ever. And I found it was important to specifically declare the type of header, in my case I had to use
-x c++-header $<
but you probably want c-header