summaryrefslogtreecommitdiff
path: root/autogen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'autogen.sh')
-rwxr-xr-xautogen.sh94
1 files changed, 94 insertions, 0 deletions
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000000..1897e23b53
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,94 @@
+#!/bin/sh
+
+# This file is part of systemd.
+#
+# systemd 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.
+#
+# systemd 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 systemd; If not, see <http://www.gnu.org/licenses/>.
+
+set -e
+
+verb="$1"
+
+case "$verb" in
+"") ;;
+[cgals]) shift ;;
+*) echo "Unexpected argument: $verb" >&2; exit 1 ;;
+esac
+
+oldpwd=$(pwd)
+topdir=$(dirname $0)
+cd $topdir
+
+if [ -f .git/hooks/pre-commit.sample ] && [ ! -f .git/hooks/pre-commit ]; then
+ # This part is allowed to fail
+ cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit && \
+ chmod +x .git/hooks/pre-commit && \
+ echo "Activated pre-commit hook." || :
+fi
+
+intltoolize --force --automake
+autoreconf --force --install --symlink
+
+libdir() {
+ echo $(cd "$1/$(gcc -print-multi-os-directory)"; pwd)
+}
+
+args="\
+--sysconfdir=/etc \
+--localstatedir=/var \
+--libdir=$(libdir /usr/lib) \
+"
+
+if [ -f "$topdir/.config.args" ]; then
+ args="$args $(cat $topdir/.config.args)"
+fi
+
+if [ ! -L /bin ]; then
+args="$args \
+--with-rootprefix=/ \
+--with-rootlibdir=$(libdir /lib) \
+"
+fi
+
+args="$args $@"
+cd $oldpwd
+
+if [ "$verb" = "c" ]; then
+ set -x
+ $topdir/configure CFLAGS='-g -O0 -ftrapv' $args
+ make clean >/dev/null
+elif [ "$verb" = "g" ]; then
+ set -x
+ $topdir/configure CFLAGS='-g -Og -ftrapv' $args
+ make clean >/dev/null
+elif [ "$verb" = "a" ]; then
+ set -x
+ $topdir/configure CFLAGS='-g -O0 -Wsuggest-attribute=pure -Wsuggest-attribute=const -ftrapv' $args
+ make clean >/dev/null
+elif [ "$verb" = "l" ]; then
+ set -x
+ $topdir/configure CC=clang CFLAGS='-g -O0 -ftrapv' $args
+ make clean >/dev/null
+elif [ "$verb" = "s" ]; then
+ set -x
+ scan-build $topdir/configure CFLAGS='-std=gnu99 -g -O0 -ftrapv' $args
+ scan-build make
+else
+ echo
+ echo "----------------------------------------------------------------"
+ echo "Initialized build system. For a common configuration please run:"
+ echo "----------------------------------------------------------------"
+ echo
+ echo "$topdir/configure CFLAGS='-g -O0 -ftrapv' $args"
+ echo
+fi