On Wed, Nov 02, 2005 at 02:10:19PM +0100, Martin Kraemer wrote: > On Wed, Nov 02, 2005 at 12:43:42PM +0000, Joe Orton wrote: > > Converting all use of $() when adding to INCLUDES in configure to ${} so > > the paths get expanded immediately would seem like the best fix unless > > there's some reason why that won't work (I can't think of any). > > As I said, you need a 2nd eval. Unless you mean that $top_builddir > should be expanded *everywhere* immediately. But IMO it is much > nicer to preserve the special property for $top_builddir > of being the "top_builddir" as long as possible.
Well, you can't move your builddir after running configure so I can't see why expanding the variable early really makes much difference. > > config_vars.sh might need updating to strip the expanded paths properly > > during installation. > > Here too it helps to know '$top_builddir' (and not just have the > expanded path)... >From a quick hack this doesn't not too complicated, the rest of the */config*.m4 files need munging like this too for a complete solution. Index: configure.in =================================================================== --- configure.in (revision 330354) +++ configure.in (working copy) @@ -136,6 +136,12 @@ abs_srcdir=`(cd $srcdir && pwd)` abs_builddir=`pwd` +dnl Export exact copies of these for use in build/config_vars.sh +ap_abs_srcdir="$abs_srcdir" +ap_abs_builddir="$abs_builddir" +AC_SUBST(ap_abs_srcdir) +AC_SUBST(ap_abs_builddir) + AC_ARG_WITH(pcre, APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library)) @@ -166,7 +172,7 @@ [--prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir]) APR_ADDTO(AP_LIBS, [$abs_builddir/srclib/pcre/libpcre.la]) - APR_ADDTO(INCLUDES, [-I\$(top_builddir)/srclib/pcre]) + APR_ADDTO(INCLUDES, [-I${abs_builddir}/srclib/pcre]) AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS pcre" AP_CLEAN_SRCLIB_DIRS="$AP_CLEAN_SRCLIB_DIRS pcre" @@ -180,10 +186,10 @@ APR_ADDTO(INCLUDES, [-I.]) if test "$abs_builddir" != "$abs_srcdir"; then - APR_ADDTO(INCLUDES, [-I\$(top_builddir)/include]) + APR_ADDTO(INCLUDES, [-I${top_builddir}/include]) fi -APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/os/\$(OS_DIR) -I\$(top_srcdir)/server/mpm/\$(MPM_SUBDIR_NAME) -I\$(top_srcdir)/modules/http -I\$(top_srcdir)/modules/filters -I\$(top_srcdir)/modules/proxy -I\$(top_srcdir)/include -I\$(top_srcdir)/modules/generators -I\$(top_srcdir)/modules/mappers -I\$(top_srcdir)/modules/database]) +APR_ADDTO(INCLUDES, [-I${abs_srcdir}/os/${OS_DIR} -I${abs_srcdir}/server/mpm/${MPM_SUBDIR_NAME} -I${abs_srcdir}/modules/http -I${abs_srcdir}/modules/filters -I${abs_srcdir}/modules/proxy -I${abs_srcdir}/include -I${abs_srcdir}/modules/generators -I${abs_srcdir}/modules/mappers -I${abs_srcdir}/modules/database]) # apr/apr-util --includes may pick up system paths for dependent # libraries, so ensure these are later in INCLUDES than local source Index: build/config_vars.sh.in =================================================================== --- build/config_vars.sh.in (revision 330354) +++ build/config_vars.sh.in (working copy) @@ -39,6 +39,9 @@ APR_INCLUDEDIR="`${APR_CONFIG} --includedir`" APU_INCLUDEDIR="`${APU_CONFIG} --includedir`" +abs_srcdir="@ap_abs_srcdir@" +abs_builddir="@ap_abs_builddir@" + installbuilddir="@exp_installbuilddir@" exec sed " @@ -62,6 +65,7 @@ /^MPM_SUBDIR_NAME/d /^EXTRA_INCLUDES/{ s, = , = -I\$(includedir) , + s, -I${abs_srcdir}/[^ ]*,,g s, -I\$(top_srcdir)/[^ ]*,,g s, -I\$(top_builddir)/[^ ]*,,g }