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
}