tech-pkg archive

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

./configure weirdness



Hi,

I've come across some weirdness trying to build misc/php-mbstring on
OpenSolaris.  I've built a number of other php extensions and packages
but this is the only one exhibiting this strange behaviour.  Basically
when running the configure target I get the following:

...
./configure[7963]: cd:
/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/"." -
No such file or directory
./configure[7963]: cd:
/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/"." -
No such file or directory
./configure[7963]: cd:
/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/"./libmbfl"
- No such file or directory
...

And during the make target:

...
/usr/pkg/bin/pdksh
/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/libtool
--mode=compile gcc  -DNOT_RUBY -DHAVE_CONFIG_H -I.
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring
-DPHP_ATOM_INC
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/include
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/main
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring
-I/usr/pkg/include/php -I/usr/pkg/include/php/main
-I/usr/pkg/include/php/TSRM -I/usr/pkg/include/php/Zend
-I/usr/pkg/include/php/ext -I/usr/pkg/include/php/ext/date/lib
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/oniguruma
-I/oniguruma"
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/libmbfl
-I/libmbfl"
-I/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/libmbfl/mbfl
-I/mbfl"  -I/usr/pkg/include/php -DHAVE_CONFIG_H  -O -I/usr/pkg/include
-I/usr/include   -c
/var/scratch/pkgsrc.obj/misc/php-mbstring/work/php-5.2.8/ext/mbstring/oniguruma/regcomp.c
-o oniguruma/regcomp.lo
/usr/pkg/bin/pdksh: no closing quote
*** Error code 1
...

I've tracked this down to the following lines in the generated ./configure:

7819: ep_realdir="`(cd \"$ep_dir\" && pwd)`"
7820: ai_p="$ep_realdir/`basename \"$ext_builddir/$dir\"`"

Basically I don't think something likes the escaped double quotes around
$ep_dir and $ext_builddir/$dir.  If I change the lines as follows:

ep_realdir="`(cd $ep_dir && pwd)`"
ai_p="$ep_realdir/`basename $ext_builddir/$dir`"

Then the world is a happy place.  I'm just don't know what's broken (if
anything) or what to 'fix'.  OpenSolaris runs /usr/pkg/bin/pdksh as
CONFIG_SHELL which is probably making all the difference.  The generated
configure on NetBSD and OpenSolaris is identical so the only thing I'm
left with is the interaction of the shell and ./configure.

What's got me a little more confused is I can't replicate this in a
stand alone shell script i.e. this works fine:

#!/usr/pkg/bin/pdksh

SED=/usr/pkg/bin/nbsed
ext_builddir=.
dir=oniguruma

ep_dir="`echo $ext_builddir/$dir|$SED 's%/*[^/][^/]*/*$%%'`"
ep_realdir="`(cd \"$ep_dir\" && pwd)`"

Any hints ?

adrian.


Home | Main Index | Thread Index | Old Index