[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
UGLY_DEFS.diff
Description: Binary data
- Re: toplev.cc, Ben Abbott, 2013/03/01
- Re:, Rik, 2013/03/01
- Re:, Ben Abbott, 2013/03/01
- Re: UGLY_DEFS, configure.ac, & toplev.cc on MacOS X,
Ben Abbott <=
- Re: UGLY_DEFS, configure.ac, & toplev.cc on MacOS X, John W. Eaton, 2013/03/02
- Re: UGLY_DEFS, configure.ac, & toplev.cc on MacOS X, Ben Abbott, 2013/03/02