blob: e09771cb41e43115b8879d13b6e7be3a9498fd7b (
plain)
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
|
#!/bin/bash
# hbased on ttp://wayland.freedesktop.org/building.html
WLD=/opt/wayland
LD_LIBRARY_PATH=$WLD/lib
PKG_CONFIG_PATH=$WLD/lib/pkgconfig/:$WLD/share/pkgconfig/
ACLOCAL="aclocal -I $WLD/share/aclocal"
C_INCLUDE_PATH=$WLD/include
LIBRARY_PATH=$WLD/lib
PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1
#export WLD LD_LIBRARY_PATH PKG_CONFIG_PATH ACLOCAL C_INCLUDE_PATH LIBRARY_PATH PKG_CONFIG_ALLOW_SYSTEM_CFLAGS
BUILD_DIR=${BUILD_DIR:-~/local}
FORCE_AUTOGEN=0
FORCE_DISTCLEAN=0
SUDO_PASSWD=""
for arg in $@; do
option=`echo "'$arg'" | cut -d'=' -f1 | tr -d "'"`
value=`echo "'$arg'" | cut -d'=' -f2- | tr -d "'"`
case $option in
"-f") FORCE_AUTOGEN=1;;
"-c") FORCE_DISTCLEAN=1;;
"-s") SUDO_PASSWD=$value;;
esac
done
RESET="\033[0m"
RED="\033[0;31m"
GREEN="\033[0;32m"
function say () { echo -e "$GREEN$1$RESET"; }
function error () { echo -e "${RED}FAILURE${RESET} $1" && exit 1; }
sudo -K
TMP=/tmp/sudo.test
[ -e "$TMP" ] && rm -f "$TMP"
echo "$SUDO_PASSWD" | sudo -S touch "$TMP" &>/dev/null
if [ ! -e "$TMP" ]; then
error "cmdline provided sudo password failed!"
else
echo "$SUDO_PASSWD" | sudo -S rm -f "$TMP"
fi
echo
function build () {
if [ $FORCE_AUTOGEN -eq 1 -o ! -e Makefile ]; then
say " * autogen --prefix=$WLD $my_configure_opts" && ./autogen.sh --prefix=$WLD $my_configure_opts
fi
if [ $FORCE_DISTCLEAN -eq 1 ]; then
say " * make distclean" && make distclean >/dev/null
fi
tmp=/tmp/$my_dir.build
say " * make" && make >$tmp && say " * install" && echo "$SUDO_PASSWD" | sudo -S -E make install
}
function update () {
SHA_PREV=$(git log --pretty="format:%H" HEAD~1..)
say " * pull" && git pull || return 1
SHA_HEAD=$(git log --pretty="format:%H" HEAD~1..)
if [ $FORCE_AUTOGEN -eq 1 -o $FORCE_DISTCLEAN -eq 1 ]; then
build
else
[ "$SHA_PREV" = "$SHA_HEAD" ] && return 0
build
fi
}
function do_your_job () {
if [ -d "$my_dir" ]; then
cd "$my_dir" && update && cd .. || error
else
say " * clone $my_src" && git clone "$my_src" "$my_dir" && cd "$my_dir" && autogen && cd .. || error
fi
say " * SUCCESS\n"
}
cd $BUILD_DIR || exit 1
# WAYLAND
say "wayland"
my_dir=wayland
my_src=git://anongit.freedesktop.org/wayland/wayland
my_configure_opts=
do_your_job
# WAYLAND-DEMOS
say "wayland-demos"
my_dir=wayland-demos
my_src=git://anongit.freedesktop.org/wayland/wayland-demos
my_configure_opts=
do_your_job
say "DONE"
|