-
Notifications
You must be signed in to change notification settings - Fork 0
/
be-functions
103 lines (89 loc) · 1.97 KB
/
be-functions
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
# -*- mode: shell-script; -*-
function run_autogen() { # run autogen.sh
./autogen.sh &> autogen.log
}
function run_configure()
{
if [ ! -f configure ]; then
run_autogen
fi
echo "Running configure:\n" ./configure --prefix=$PREFIX $BE_CONF_FLAGS --without-compress-install
./configure --prefix=$PREFIX $BE_CONF_FLAGS --without-compress-install | tee log.config
}
function run_make()
{
if [ ! -f Makefile ]; then
run_configure
fi
${MAKE} | tee log.make
${MAKE} GZIP_PROG="" install | tee log.install
}
function build_emacs()
{
run_configure
run_make
. $SCRIPT_DIR/post-build-hook
}
function set_prefix()
{
# rev=$(git rev-parse --short HEAD)
export PREFIX=${PREFIX:-$HOME/local}/emacs
}
function git_change_branch()
{
echo "Checking out $1"
git checkout $1
}
function git_clean()
{
echo "Running git clean"
git clean -xdf &> /dev/null
}
function build_emacs_git_branch()
{
git_change_branch $1
if [[ "$SN" == "yes" ]]; then
echo "INFO: Skipping git pull as requested."
else
git pull origin master
fi
git_clean
set_prefix
build_emacs
}
function build_emacs_git_head()
{
# change to master, pull for updates and call build.
git checkout master
if [[ "$SN" == "yes" ]]; then
echo "INFO: Skipping git pull as requested."
else
git pull origin master
fi
set_prefix
build_emacs
}
function git_change_to_tag()
{
git fetch origin --tags
tag=$1
if [[ "x$tag" == "xlatest" || "$git_tag" == "" ]]; then
tag=$(git describe --abbrev=0 --tags)
git checkout $tag
elif [[ ! -z $git_tag ]]; then
git checkout $tag
if [ ! $? == 0 ]; then
echo "There is no tag called \"$tag\""
exit
fi
fi
return
}
function build_emacs_git_tag()
{
git_change_to_tag $git_tag
PREFIX=$HOME/local/$tag
echo "Building from tag: $tag"
git_clean
build_emacs
}