Idea is to pass along the value of the -C or --cache-file options from
the initial ./configure to the one launched as part of the rpm or deb
build.
But all the environment variables related cache info must be removed
otherwise the config cache file cannot be reused.
Test-Parameters: trivial
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: Iab4ae2815961ba10132d9cb44f82ca58d313e908
Reviewed-on: https://review.whamcloud.com/44659
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
rpms: srpm
rpmbuilddir=`mktemp -t -d rpmbuild-@PACKAGE@-$$USER-XXXXXXXX`; \
rpms: srpm
rpmbuilddir=`mktemp -t -d rpmbuild-@PACKAGE@-$$USER-XXXXXXXX`; \
+ if test "x@CONFIG_CACHE_FILE@" != "x"; then \
+ export CONFIG_CACHE_FILE="@CONFIG_CACHE_FILE@"; \
+ fi; \
$(MAKE) $(AM_MAKEFLAGS) \
rpmbuilddir="$$rpmbuilddir" rpm-local || exit 1; \
$(RPMBUILD) \
$(MAKE) $(AM_MAKEFLAGS) \
rpmbuilddir="$$rpmbuilddir" rpm-local || exit 1; \
$(RPMBUILD) \
export DEB_BUILD_PROFILES="$${DEB_BUILD_PROFILES} o2ib"; \
export O2IB_SRC="@O2IBPATH@"; \
fi; \
export DEB_BUILD_PROFILES="$${DEB_BUILD_PROFILES} o2ib"; \
export O2IB_SRC="@O2IBPATH@"; \
fi; \
+ if test "x@CONFIG_CACHE_FILE@" != "x"; then \
+ export CONFIG_CACHE_FILE="@CONFIG_CACHE_FILE@"; \
+ fi; \
if test "x@ENABLE_GSS@" = "xyes"; then \
export DEB_BUILD_PROFILES="$${DEB_BUILD_PROFILES} gss"; \
debiantmp=$$(mktemp -t -d debbuild-$$USER-XXXXXXXX) ; \
if test "x@ENABLE_GSS@" = "xyes"; then \
export DEB_BUILD_PROFILES="$${DEB_BUILD_PROFILES} gss"; \
debiantmp=$$(mktemp -t -d debbuild-$$USER-XXXXXXXX) ; \
]) # LB_CONFIG_RPMBUILD_OPTIONS
#
]) # LB_CONFIG_RPMBUILD_OPTIONS
#
+# LB_CONFIG_CACHE_OPTIONS
+#
+# Propagate config cache option
+#
+AC_DEFUN([LB_CONFIG_CACHE_OPTIONS], [
+CONFIG_CACHE_FILE=
+if test -f "$cache_file"; then
+ CONFIG_CACHE_FILE=$(readlink --canonicalize "$cache_file")
+fi
+AC_SUBST(CONFIG_CACHE_FILE)
+]) # LB_CONFIG_CACHE_OPTIONS
+
+#
# LB_CONFIGURE
#
# main configure steps
# LB_CONFIGURE
#
# main configure steps
AC_SUBST(MOSTLYCLEANFILES)
LB_CONFIG_RPMBUILD_OPTIONS
AC_SUBST(MOSTLYCLEANFILES)
LB_CONFIG_RPMBUILD_OPTIONS
elif echo "$${DEB_BUILD_PROFILES}" | grep -qw "nocrypto"; then \
export EXTRAFLAGS="$${EXTRAFLAGS} --disable-crypto"; \
fi; \
elif echo "$${DEB_BUILD_PROFILES}" | grep -qw "nocrypto"; then \
export EXTRAFLAGS="$${EXTRAFLAGS} --disable-crypto"; \
fi; \
+ # remove env variables from config cache built by initial configure,
+ # and create dedicated cache in temporary build directory
+ if [ -f "$${CONFIG_CACHE_FILE}" ]; then \
+ export TMP_CACHE_FILE=$$(mktemp); \
+ sed "/ac_cv_env/d" "$${CONFIG_CACHE_FILE}" > $${TMP_CACHE_FILE}; \
+ export EXTRAFLAGS="$${EXTRAFLAGS} --cache-file=$${TMP_CACHE_FILE}"; \
+ fi; \
echo "Final value of EXTRAFLAGS: $${EXTRAFLAGS}"; \
( cd $(BUILDDIR) && \
$(SRCDIR)/configure --disable-dependency-tracking \
echo "Final value of EXTRAFLAGS: $${EXTRAFLAGS}"; \
( cd $(BUILDDIR) && \
$(SRCDIR)/configure --disable-dependency-tracking \
elif echo "$${DEB_BUILD_PROFILES}" | grep -qw "nocrypto"; then \
export EXTRAFLAGS="$${EXTRAFLAGS} --disable-crypto"; \
fi; \
elif echo "$${DEB_BUILD_PROFILES}" | grep -qw "nocrypto"; then \
export EXTRAFLAGS="$${EXTRAFLAGS} --disable-crypto"; \
fi; \
+ # remove env variables from config cache built by initial configure,
+ # and create dedicated cache in temporary build directory
+ if [ -f "$${CONFIG_CACHE_FILE}" ]; then \
+ export TMP_CACHE_FILE=$$(mktemp --tmpdir newconfig-XXXXXXXX.cache); \
+ sed "/ac_cv_env/d" "$${CONFIG_CACHE_FILE}" > $${TMP_CACHE_FILE}; \
+ export EXTRAFLAGS="$${EXTRAFLAGS} --cache-file=$${TMP_CACHE_FILE}"; \
+ fi; \
echo "Final value of EXTRAFLAGS: $${EXTRAFLAGS}"; \
./configure --with-linux=$(KSRC_TREE) \
--with-linux-obj=$(KSRC) \
echo "Final value of EXTRAFLAGS: $${EXTRAFLAGS}"; \
./configure --with-linux=$(KSRC_TREE) \
--with-linux-obj=$(KSRC) \
# remove --with-kmp-moddir from configure arguments,
# it will be set --with-kmp-moddir=%%kmoddir
CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* \?//')
# remove --with-kmp-moddir from configure arguments,
# it will be set --with-kmp-moddir=%%kmoddir
CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* \?//')
+ # remove env variables from config cache built by initial configure,
+ # and create dedicated cache in temporary build directory
+ if [ -f "$CONFIG_CACHE_FILE" ]; then
+ TMP_CONFIG_CACHE="$(mktemp --tmpdir newconfig-XXXXXXXX.cache)"
+ sed "/ac_cv_env/d" "$CONFIG_CACHE_FILE" > $TMP_CONFIG_CACHE
+ CONFIGURE_ARGS="$CONFIGURE_ARGS --cache-file=$TMP_CONFIG_CACHE"
+ fi
fi
# we need to eval "configure" because $CONFIGURE_ARGS could have a quoted
fi
# we need to eval "configure" because $CONFIGURE_ARGS could have a quoted