$embffmpeg_configure_args is being computed using $ac_cs_config, use of eval fixed the issue. Thank you.
Regards, Punya -----Original Message----- From: Eric Blake [mailto:ebl...@redhat.com] Sent: Tuesday, May 03, 2011 9:14 AM To: Prakash, Punya Cc: bug-autoconf@gnu.org Subject: Re: Error processing nested quote On 05/03/2011 07:53 AM, Prakash, Punya wrote: > All, > > When we pass parameters with nested quotes, autoconf does not reconstruct the > parameters correct. I have particularly tested single quotes with-in double > quotes: " ' ' " > > For more details please refer: > https://bugzilla.gnome.org/show_bug.cgi?id=648816 Please post details in this thread rather than making everyone chase a link. From that bug report: > works: --with-ffmpeg-extra-configure=" --target-os=linux > --extra-cflags=-mfpu=neon" > - Result: --extra-cflags='-mcpu=cortex-a8' > Does not work: --with-ffmpeg-extra-configure=" --target-os=linux > --extra-cflags='-mfpu=neon -mfloat-abi=softfp'" > - Result: --extra-cflags=''\''-mfpu=neon' -mfloat-abi='softfp'\''' > (Should and does) not work: --with-ffmpeg-extra-configure=" > --target-os=linux --extra-cflags=-mfpu=neon -mfloat-abi=softfp" > - Result: --extra-cflags='-mcpu=cortex-a8' -mfpu=neon > -mfloat-abi=softfp > > The looked at the command in gst-ffmpeg configure file which is > attempting to configure ./gst-lib/ext/ffmpeg/configure, it looks > right. It is passing in the right parameters (as you have suggested). > I cant seem to figure out where in the configuration procedure the extra > quotes are being appended. > > gst-ffmpeg/configure.ac > cd "$ac_top_build_prefix"gst-libs/ext/ffmpeg && > $confcmd $embffmpeg_configure_args *all the parameters here > look right* But how is $embffmpeg_configure_args being computed? > > ac_cs_config in config.status appends single quotes to every compiler option. > Looks like it is not re-constructed correctly when it detects a single > quote being passed in. Could this issue be related to autoconf? Please advice. > > ac_cs_config="'--build=i686-linux' '--host=arm-none-linux-gnueabi' > '--target=arm-none-linux-gnueabi' '--prefix=/usr' '--exec_prefix=/usr' > '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--libexecdir=/usr/libexec' > '--datadir=/usr/share' '--sysconfdir=/etc' '--sharedstatedir=/com' > '--localstatedir=/var' '--libdir=/usr/lib' '--includedir=/usr/include' > '--oldincludedir=/usr/include' '--infodir=/usr/share/info' > '--mandir=/usr/share/man' '--enable-largefile' '--disable-nls' '--enable-ipv6' > '--with-ffmpeg-extra-configure= --target-os=linux > --extra-cflags='\\''-mfpu=neon -mfloat-abi=softfp'\\''' > 'build_alias=i686-linux' 'host_alias=arm-none-linux-gnueabi' > 'target_alias=arm-none-linux-gnueabi' 'CC=arm-none-linux-gnueabi-gcc > -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp > -mthumb-interwork -mno-thumb > --sysroot=/home/pprakash/arago/arago-tmp/sysroots/armv7a-none-linux-gnueabi' > 'CFLAGS=-fexpensive-optimizations -frename-registers > -fomit-frame-pointer -O2 -ggdb2' 'LDFLAGS=-Wl,-O1 > -Wl,--hash-style=gnu' 'CPP=arm-none-linux-gnueabi-gcc -E > --sysroot=/home/pprakash/arago/arago-tmp/sysroots/armv7a-none-linux-gnueabi'" This is correct from autoconf's point of view - ac_cs_config is an internal variable which is appropriately quoted to be passed through an eval. If you are computing $embffmpeg_configure_args from $ac_cs_config, then you have to use an eval statement. I don't see how this could be an autoconf bug; more likely it is a bug in the configure.ac script for abusing autoconf internals incorrectly, since ac_cs_config is not a documented variable. -- Eric Blake ebl...@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org