cockpit/autogen.sh

101 lines
2.8 KiB
Bash
Executable File

#!/bin/sh
# This file is part of Cockpit.
#
# Copyright (C) 2013 Red Hat, Inc.
#
# Cockpit is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Cockpit is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with Cockpit; If not, see <http://www.gnu.org/licenses/>.
# Run this to generate all the initial makefiles, etc.
set -eux
srcdir=`dirname $0`
test -z "$srcdir" && srcdir=.
PKG_NAME="Cockpit"
(test -f $srcdir/src/ws/cockpit.service.in) || {
echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
echo " top-level $PKG_NAME directory"
exit 1
}
# Switch into srcdir until running configure
olddir=$(pwd)
cd $srcdir
npm_version=$(npm --version)
if test ${npm_version%%.*} -lt 3; then
echo npm version greater than 3.0.0 required, but you have ${npm_version} installed
exit 1
fi
# Development dependencies: See node_modules/README
npm prune
# npm install is flaky, so give it a few tries
npm install || { sleep 30; npm install; } || { sleep 30; npm install; }
find node_modules -name test | xargs rm -rf
rm -rf autom4te.cache
autoreconf -f -i -I tools
set +x
# NOCONFIGURE is used by gnome-common; support both
if ! test -z "${AUTOGEN_SUBDIR_MODE:-}"; then
NOCONFIGURE=1
fi
if test -z "${NOCONFIGURE:-}"; then
if test -z "$*"; then
echo "I am going to run ./configure with no arguments - if you wish "
echo "to pass any to it, please specify them on the $0 command line."
fi
fi
if test -n "${NOCONFIGURE:-}"; then
exit 0
fi
cd $olddir
if [ -z "${NOREDIRECTMAKEFILE:-}" ]; then
rm -f $srcdir/Makefile
fi
$srcdir/configure --enable-maintainer-mode ${AUTOGEN_CONFIGURE_ARGS:-} "$@" || exit $?
# Put a redirect makefile and dist directory here
if [ -z "${NOREDIRECTMAKEFILE:-}" ]; then
if [ ! -e $srcdir/Makefile ]; then
cat $srcdir/tools/Makefile.redirect > $srcdir/Makefile
printf "\nREDIRECT = %s\n" "$(realpath $olddir)" >> $srcdir/Makefile
fi
mkdir -p $olddir/dist
cp $srcdir/tools/README.dist $olddir/dist/README.md
if [ ! -e $srcdir/dist ]; then
ln -s $olddir/dist $srcdir/dist
fi
# support out-of-tree builds, where "make dist" needs the source files with sane paths
if [ ! -e $olddir/pkg ] && [ ! -e $olddir/node_modules ]; then
ln -s "$srcdir/pkg" "$olddir/pkg"
ln -s "$srcdir/node_modules" "$olddir/node_modules"
fi
fi
echo
echo "Now type 'make' to compile $PKG_NAME."