imake

Joshua Root jmr at macports.org
Sat Sep 27 20:47:40 PDT 2014


On 2014-9-28 13:14 , Brandon Allbery wrote:
> On Sat, Sep 27, 2014 at 11:12 PM, Joshua Root <jmr at macports.org
> <mailto:jmr at macports.org>> wrote:
> 
>     It would be better to fix the macros in xorg-cf-files or wherever so
>     they work with a modern preprocessor.
> 
> 
> This probably isn't possible; the issue is that a modern preprocessor
> speaks C / C++, not Makefile.

That isn't the issue AFAICT, it's just doing things with comments that
were probably undefined before and now don't work:

/opt/local/lib/X11/config/Imake.tmpl:2144:10: fatal error: ' X11 .rules'
file not found
#include ProjectRulesFile
         ^
/opt/local/lib/X11/config/Imake.tmpl:2142:35: note: expanded from macro
'ProjectRulesFile'
# define ProjectRulesFile       Concat3(<,TopLevelProject,.rules>)
                                        ^
/opt/local/lib/X11/config/Imake.rules:256:23: note: expanded from macro
'Concat3'
#define Concat3(a,b,c)a/**/b/**/c
                      ^
1 error generated.

It wants this to expand as:

#include <X11.rules>

but instead it expands as

#include < X11 .rules>

The gcc manual says you can use ## for pasting, but the result has to be
a valid token. Hence:
error: pasting "<" and "TopLevelProject" does not give a valid
preprocessing token

- Josh


More information about the macports-dev mailing list