chiark / gitweb /
build-sys: add Arch Linux support
[elogind.git] / bootstrap.sh
1 #!/bin/bash
2
3 #  This file is part of systemd.
4 #
5 #  Copyright 2010 Lennart Poettering
6 #
7 #  systemd is free software; you can redistribute it and/or modify it
8 #  under the terms of the GNU General Public License as published by
9 #  the Free Software Foundation; either version 2 of the License, or
10 #  (at your option) any later version.
11 #
12 #  systemd is distributed in the hope that it will be useful, but
13 #  WITHOUT ANY WARRANTY; without even the implied warranty of
14 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 #  General Public License for more details.
16 #
17 #  You should have received a copy of the GNU General Public License
18 #  along with systemd; If not, see <http://www.gnu.org/licenses/>.
19
20 AM_VERSION=1.11
21 AC_VERSION=2.63
22
23 run_versioned() {
24     local P
25     local V
26
27     V=$(echo "$2" | sed -e 's,\.,,g')
28
29     if [ -e "`which $1$V 2> /dev/null`" ] ; then
30         P="$1$V"
31     else
32         if [ -e "`which $1-$2 2> /dev/null`" ] ; then
33             P="$1-$2"
34         else
35             P="$1"
36         fi
37     fi
38
39     shift 2
40     "$P" "$@"
41 }
42
43 set -ex
44
45 if [ -f .git/hooks/pre-commit.sample -a ! -f .git/hooks/pre-commit ] ; then
46     cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \
47     chmod +x .git/hooks/pre-commit && \
48     echo "Activated pre-commit hook."
49 fi
50
51 # We check for this here, because if pkg-config is not found in the
52 # system, it's likely that the pkg.m4 macro file is also not present,
53 # which will make PKG_PROG_PKG_CONFIG be undefined and the generated
54 # configure file faulty.
55 if ! pkg-config --version &>/dev/null; then
56     echo "pkg-config is required to bootstrap this program" &>/dev/null
57     exit 1
58 fi
59
60 if type -p colorgcc > /dev/null ; then
61    export CC=colorgcc
62 fi
63
64 if [ "x$1" = "xam" ] ; then
65     run_versioned automake "$VERSION" -a -c --foreign
66     ./config.status
67 else
68     rm -rf autom4te.cache
69     rm -f config.cache
70
71     run_versioned aclocal "$AM_VERSION" -I m4
72     run_versioned autoconf "$AC_VERSION" -Wall
73     run_versioned autoheader "$AC_VERSION"
74     run_versioned automake "$AM_VERSION" --copy --foreign --add-missing
75
76     if [ "x$1" != "xac" ]; then
77         CFLAGS="$CFLAGS -g -O0" ./configure --sysconfdir=/etc --localstatedir=/var "$@"
78         make clean
79     fi
80 fi