forked from cockpit-project/cockpit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
autogen.sh
executable file
·111 lines (90 loc) · 3.06 KB
/
autogen.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/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
retries='3'
while ! npm install; do
# npm install is flaky, and when it fails, it usually leaves
# node_modules in a corrupt state, so if that happens, start over
# again from scratch
retries=$((${retries}-1))
if test ${retries} -eq 0; then
echo 'failed to install nodejs modules'
exit 1
fi
find node_modules -mindepth 1 -not -path node_modules/README -delete
done
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
tools/make-bots
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."