octave-maintainers
[Top][All Lists]
Advanced

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

Re: UGLY_DEFS, configure.ac, & toplev.cc on MacOS X


From: Ben Abbott
Subject: Re: UGLY_DEFS, configure.ac, & toplev.cc on MacOS X
Date: Fri, 01 Mar 2013 19:54:19 -0500

On Mar 1, 2013, at 5:28 PM, Ben Abbott wrote:

> On Mar 1, 2013, at 4:48 PM, Rik wrote:
> 
>> On 03/01/2013 09:39 AM, Ben Abbott wrote:
>> Ben,
>> 
>> The trouble seems to be with OCTAVE_CONF_UGLY_DEFS.  This is replaced by 
>> ${UGLY_DEFS} and the resulting expression in oct-conf.h is:
>> 
>> #define OCTAVE_CONF_UGLY_DEFS ${UGLY_DEFS}
>> 
>> UGLY_DEFS has embedded double quotes which need escaping.  For example, my 
>> pattern file has
>> 
>> s|%OCTAVE_CONF_UGLY_DEFS%|"-DPACKAGE_NAME=\\"GNU\ Octave\\"    ...
>> 
>> while yours has
>> 
>> s|%OCTAVE_CONF_UGLY_DEFS%|"-DPACKAGE_NAME=\"GNU\ Octave\"    ...
>> 
>> This seems to be a known issue.  UGLY_DEFS is created by the configure.ac 
>> code shown below
>> 
>> ## We have to insert extra levels of backslash quoting here so that
>> ## the right thing ends up in oct-conf.h.
>> UGLY_DEFS=`echo $DEFS | $SED 's,\\",\\\\\\\\\\\\\\\\\\",g'`
>> AC_MSG_NOTICE([defining UGLY_DEFS to be $UGLY_DEFS])
>> AC_SUBST(UGLY_DEFS)
>> 
>> So I guess that somehow we are losing one extra backslash on Mac platforms.  
>> You could try adding some extra '\\' to the replacement expression in 
>> configure.ac untill you get the correct quoting level.  That would at least 
>> validate that this is indeed the problem.
>> 
>> This is probably unrelated but we check for a 'sed' that we like with 
>> OCTAVE_PROG_SED.  This is the only instance in configure.ac that actually 
>> uses $SED.  The others instances all just use 'sed' which means the first on 
>> the path rather than the one that we preferred.  
>> 
>> --Rik
> 
> Adding a single backslash allows me to build.
> 
> Ben
> 
> $ hg diff
> diff --git a/configure.ac b/configure.ac
> --- a/configure.ac
> +++ b/configure.ac
> @@ -2853,7 +2853,7 @@
> 
> ## We have to insert extra levels of backslash quoting here so that
> ## the right thing ends up in oct-conf.h.
> -UGLY_DEFS=`echo $DEFS | $SED 's,\\",\\\\\\\\\\\\\\\\\\",g'`
> +UGLY_DEFS=`echo $DEFS | $SED 's,\\",\\\\\\\\\\\\\\\\\\\",g'`
> AC_MSG_NOTICE([defining UGLY_DEFS to be $UGLY_DEFS])
> AC_SUBST(UGLY_DEFS)
> 

Rik,

The attached change allows me to build.

If it doesn't break your build should this be pushed?

Ben

Attachment: UGLY_DEFS.diff
Description: Binary data


reply via email to

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