autoconf
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: preprocessed F90 using IBM XL F90 compiler


From: Noah Misch
Subject: Re: preprocessed F90 using IBM XL F90 compiler
Date: Wed, 19 Apr 2006 09:07:46 -0700
User-agent: Mutt/1.5.6i

On Wed, Apr 19, 2006 at 09:27:12AM +0100, Dr Magnus Hagdorn wrote:
> I define symbols using AC_DEFINE which should be passed to the
> preprocessor to optionally compile certain parts. This all works fine
> except for when the IBM XL f90 compiler is used. This compiler does not
> have the -D switch to pass options to the preprocessor and instead
> expects -WF,-D. I tried to redefine the DEFS macro in the Makefile.am to
> something like
> if AIX_XL
>  DEFS = $(DEFS:-D%=-WF,-D%)
> endif
> however make complains about infinite recursion. 

DEFS references itself; use `DEFS := ...' to avoid this problem.  Note that many
non-GNU Make programs do not provide pattern substitution references or `:='.

> Any suggestions on how to solve this problem?

If portability to a wide variety of Make programs is not a priority, the above
solution is fine.  Otherwise, try this:

  if AIX_XL
    DEFS = `echo @DEFS@ | sed 's/-D[^    ]*/-WF,&/g'`
  endif

It does incur a regrettable performance hit.


Ideally, Autoconf should test -D and -WF,-D and use the one that works.  Since
the C compiler will probably still need -D, we would create a DEFS variable for
each preprocessed language: CDEFS, CXXDEFS, F77DEFS, FCDEFS.  Automake would
need changes to take advantage of the new variables, but Autoconf could
substitute DEFS = ${CDEFS} for backward-compatibility.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]