c817c21403
This patch will allow for developers to create unit tests for their code. Documentation has been added to the patch and is available here: doc/hacker-guide/en-US/markdown/unittest.md Also, unit tests are run when RPM is created. BUG: 1067059 Change-Id: I95cf8bb0354d4ca4ed4476a0f2385436a17d2369 Signed-off-by: Vijay Bellur <vbellur@redhat.com> Signed-off-by: Luis Pabon <lpabon@redhat.com> Reviewed-on: http://review.gluster.org/7145 Tested-by: Gluster Build System <jenkins@build.gluster.com> Reviewed-by: Rajesh Joseph <rjoseph@redhat.com> Reviewed-by: Justin Clift <justin@gluster.org> Tested-by: Justin Clift <justin@gluster.org>
122 lines
2.5 KiB
Bash
Executable File
122 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
echo
|
|
echo ... GlusterFS autogen ...
|
|
echo
|
|
|
|
## Check all dependencies are present
|
|
MISSING=""
|
|
|
|
# Check for aclocal
|
|
env aclocal --version > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
ACLOCAL=aclocal
|
|
else
|
|
MISSING="$MISSING aclocal"
|
|
fi
|
|
|
|
# Check for autoconf
|
|
env autoconf --version > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
AUTOCONF=autoconf
|
|
else
|
|
MISSING="$MISSING autoconf"
|
|
fi
|
|
|
|
# Check for autoheader
|
|
env autoheader --version > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
AUTOHEADER=autoheader
|
|
else
|
|
MISSING="$MISSING autoheader"
|
|
fi
|
|
|
|
# Check for automake
|
|
env automake --version > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
AUTOMAKE=automake
|
|
else
|
|
MISSING="$MISSING automake"
|
|
fi
|
|
|
|
# Check for libtoolize or glibtoolize
|
|
env libtoolize --version > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
# libtoolize was found, so use it
|
|
TOOL=libtoolize
|
|
else
|
|
# libtoolize wasn't found, so check for glibtoolize
|
|
env glibtoolize --version > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
TOOL=glibtoolize
|
|
else
|
|
MISSING="$MISSING libtoolize/glibtoolize"
|
|
fi
|
|
fi
|
|
|
|
# Check for tar
|
|
env tar -cf /dev/null /dev/null > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
MISSING="$MISSING tar"
|
|
fi
|
|
|
|
# Check for python
|
|
if [ "x${PYTHONBIN}" = "x" ]; then
|
|
PYTHONBIN=python
|
|
fi
|
|
env ${PYTHONBIN} -V > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
MISSING="$MISSING python"
|
|
fi
|
|
|
|
## If dependencies are missing, warn the user and abort
|
|
if [ "x$MISSING" != "x" ]; then
|
|
echo "Aborting."
|
|
echo
|
|
echo "The following build tools are missing:"
|
|
echo
|
|
for pkg in $MISSING; do
|
|
echo " * $pkg"
|
|
done
|
|
echo
|
|
echo "Please install them and try again."
|
|
echo
|
|
exit 1
|
|
fi
|
|
|
|
## generate gf-error-codes.h from error-codes.json
|
|
echo "Generate gf-error-codes.h ..."
|
|
if ${PYTHONBIN} ./gen-headers.py; then
|
|
if ! mv -fv gf-error-codes.h libglusterfs/src/gf-error-codes.h; then
|
|
exit 1
|
|
fi
|
|
else
|
|
exit 1
|
|
fi
|
|
|
|
## Do the autogeneration
|
|
echo Running ${ACLOCAL}...
|
|
$ACLOCAL -I ./contrib/aclocal
|
|
echo Running ${AUTOHEADER}...
|
|
$AUTOHEADER
|
|
echo Running ${TOOL}...
|
|
$TOOL --automake --copy --force
|
|
echo Running ${AUTOCONF}...
|
|
$AUTOCONF
|
|
echo Running ${AUTOMAKE}...
|
|
$AUTOMAKE --add-missing --copy --foreign
|
|
|
|
# Update git modules
|
|
echo "Obtaining git module cmockery2 ..."
|
|
git submodule update --init cmockery2
|
|
|
|
# Run autogen in the argp-standalone sub-directory
|
|
echo "Running autogen.sh in argp-standalone ..."
|
|
( cd argp-standalone;./autogen.sh )
|
|
echo "Running autogen.sh in cmockery2 ..."
|
|
( cd cmockery2; ./autogen.sh )
|
|
|
|
# Instruct user on next steps
|
|
echo
|
|
echo "Please proceed with configuring, compiling, and installing."
|