efl/.ci/distcheck.sh

126 lines
3.8 KiB
Bash
Executable File

#!/bin/bash
. .ci/travis.sh
scrape_makefile_variable() {
#try to scrape $1 from Makefile
num=0
var=
while true ; do
var="$(grep -A${num} -m1 -w $1 Makefile.am)"
#continually increment number of lines scraped if backslash is detected
if echo "$var" | tail -n1 | grep -q '\\' ; then
num=$((++num))
else
#cut out line wrapping
var=$(echo "$var" | tr -d '\n\\' | cut -d= -f2-)
break
fi
done
echo $var
}
#attempt to keep this as close to original makefile rule as possible
#for ease of future updating
set -e
travis_fold dist "make dist"
#create dist tarball
make dist
travis_endfold dist
#set distdir variable to current package string
distdir="$(grep '^PACKAGE_STRING' config.log|cut -d\' -f2|tr ' ' -)"
DIST_ARCHIVES=${distdir}.tar.xz
MAKE=make
#unpack dist tarball
xz -dc ${distdir}.tar.xz | tar -xf -
chmod -R a-w ${distdir}
chmod u+w ${distdir}
mkdir ${distdir}/_build ${distdir}/_build/sub ${distdir}/_inst
chmod a-w ${distdir}
test -d ${distdir}/_build
dc_install_base=`cd ${distdir}/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'`
dc_destdir="${TMPDIR-/tmp}/am-dc-XXXX"
am__cwd=`pwd`
AM_DISTCHECK_CONFIGURE_FLAGS="$(scrape_makefile_variable AM_DISTCHECK_CONFIGURE_FLAGS)"
AM_MAKEFLAGS="$(scrape_makefile_variable AM_MAKEFLAGS)"
travis_fold configure "configuring distcheck build"
cd ${distdir}/_build/sub
../../configure \
${AM_DISTCHECK_CONFIGURE_FLAGS} \
${DISTCHECK_CONFIGURE_FLAGS} \
--srcdir=../.. --prefix="$dc_install_base"
travis_endfold configure
travis_fold make make
make ${AM_MAKEFLAGS}
travis_endfold make
travis_fold dvi dvi
make ${AM_MAKEFLAGS} dvi
travis_endfold dvi
travis_fold check-build check-build
make ${AM_MAKEFLAGS} check-build
travis_endfold check-build
travis_fold check-TESTS check-TESTS
set +e
export EINA_LOG_BACKTRACE="0"
NUM_TRIES=5
for tries in $(seq 1 ${NUM_TRIES}); do
make ${AM_MAKEFLAGS} -C src/ -j1 check-TESTS && break
cat src/test-suite.log
if [ $tries != ${NUM_TRIES} ] ; then echo "tests failed, trying again!" ; continue ; fi
exit 1
done
travis_endfold check-TESTS
set -e
travis_fold make_install "make install"
make ${AM_MAKEFLAGS} install
travis_endfold make_install
travis_fold make_installcheck "make installcheck"
make ${AM_MAKEFLAGS} installcheck
travis_endfold make_installcheck
travis_fold make_testapp "testing external compile"
PKG_CONFIG_PATH=${dc_install_base}/lib/pkgconfig ${am__cwd}/.ci/build-efl-app.sh
travis_endfold make_testapp
travis_fold make_uninstall "make uninstall"
make ${AM_MAKEFLAGS} uninstall
travis_endfold make_uninstall
travis_fold distuninstallcheck "make distuninstallcheck"
make ${AM_MAKEFLAGS} distuninstallcheck_dir="$dc_install_base" \
distuninstallcheck
travis_endfold distuninstallcheck
chmod -R a-w "$dc_install_base"
(cd ../.. && umask 077 && mktemp -d "$dc_destdir")
travis_fold dist-install "make dist-install"
make ${AM_MAKEFLAGS} DESTDIR="$dc_destdir" install
travis_endfold dist-install
travis_fold dist-uninstall "make dist-uninstall"
make ${AM_MAKEFLAGS} DESTDIR="$dc_destdir" uninstall
travis_endfold dist-uninstall
travis_fold dist-distuninstallcheck "make dist-distuninstallcheck"
make ${AM_MAKEFLAGS} DESTDIR="$dc_destdir" \
distuninstallcheck_dir="$dc_destdir" distuninstallcheck \
|| { rm -rf "$dc_destdir"; exit 1; }
travis_endfold dist-distuninstallcheck
rm -rf "$dc_destdir"
travis_fold dist-dist "make dist-dist"
make ${AM_MAKEFLAGS} dist
travis_endfold dist-dist
rm -rf ${DIST_ARCHIVES}
travis_fold dist-distcleancheck "make dist-distcleancheck"
make ${AM_MAKEFLAGS} distcleancheck
travis_endfold dist-distcleancheck
cd "$am__cwd"
#$(am__post_remove_distdir)
if test -d "${distdir}"; then
find "${distdir}" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "${distdir}" \
|| { rm -rf "${distdir}"; }; \
else :; fi