[PATCH util-modular 09/10] release.sh: generate the configure script/use unique build_dir
Emil Velikov
emil.l.velikov at gmail.com
Fri Jul 1 14:44:50 UTC 2016
From: Emil Velikov <emil.velikov at collabora.com>
Allows us to simplify the releasing process of every component and
ensure that we're not rebuilding in a location which might contain stale
files.
As we can no longer pass arguments to configure (which in itself
is a bad idea when using `make distcheck') we gain more reproducible
releasing process.
Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
---
XXX:
- The whole "./build.XXX" and "../" feel quite nasty. We have to use
relative paths, since they end up in the generated sources. I'm open to
suggestions :-)
- Should we cleanup the tmp/build dir ourselves, how about the
autotool generated files ?
- If people prefer (or if things are broken due to required flags to
configure) we can guard this, or the original behaviour, behind a --dist
like option.
---
release.sh | 47 +++++++++++++++++++++++++----------------------
1 file changed, 25 insertions(+), 22 deletions(-)
diff --git a/release.sh b/release.sh
index e374b02..eb28552 100755
--- a/release.sh
+++ b/release.sh
@@ -319,33 +319,27 @@ process_module() {
return 1
fi
+ if [ -e configure ]; then
+ echo "Error: the git repository contains configure"
+ echo "Did you forget to run git clean -fXd (and git clean -fxd) ?"
+ return 1
+ fi
- # Change directory to be in the git build directory (could be out-of-source)
- # More than one can be found when distcheck has run and failed
- configNum=`find . -name config.status -type f | wc -l | sed 's:^ *::'`
+ # Create tmpdir for the build
+ build_dir=`mktemp -d -p . build.XXXXXXXXXX`
if [ $? -ne 0 ]; then
- echo "Error: failed to locate config.status."
- echo "Has the module been configured?"
- return 1
- fi
- if [ x"$configNum" = x0 ]; then
- echo "Error: failed to locate config.status, has the module been configured?"
- return 1
- fi
- if [ x"$configNum" != x1 ]; then
- echo "Error: more than one config.status file was found,"
- echo " clean-up previously failed attempts at distcheck"
- return 1
+ echo "Error: could not create a temporary directory for the build."
+ echo "Do you have coreutils' mktemp ?"
+ return 1
fi
- # create tmpdir
- # run autogen.sh and/or equivalent
- status_file=`find . -name config.status -type f`
+
+ echo "Info: generating configure."
+ autoreconf --force --install >/dev/null
if [ $? -ne 0 ]; then
- echo "Error: failed to locate config.status."
- echo "Has the module been configured?"
- return 1
+ echo "Error: failed generate configure."
+ return 1
fi
- build_dir=`dirname $status_file`
+
cd $build_dir
if [ $? -ne 0 ]; then
echo "Error: failed to cd to $MODULE_RPATH/$build_dir."
@@ -353,6 +347,15 @@ process_module() {
return 1
fi
+ # Using ../ here feels a bit nasty, yet $top_src is an absolute path. Thus
+ # it will get propagated in the generated sources, which we do not want.
+ ../configure >/dev/null
+ if [ $? -ne 0 ]; then
+ echo "Error: failed to configure module."
+ cd $top_src
+ return 1
+ fi
+
# Determine what is the current branch and the remote name
current_branch=`git branch | $GREP "\*" | sed -e "s/\* //"`
remote_name=`git config --get branch.$current_branch.remote`
--
2.8.2
More information about the xorg-devel
mailing list