blob: 6c71638d6de72ecd51cac0e6fdb67b732f0b2093 (
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
#!/bin/sh
# this script is the first attempt to have an automated updater and builder
# the source dir where this script is
## this could be done more easily with ${0%/*}
SCRIPT_DIR=$(echo $0 | sed 's|\(.*\)/.*$|\1|')
. $SCRIPT_DIR/auto-build-common
# the name of this script
## this could be done more easily with ${0##*/}
SCRIPT=$(echo $0| sed 's|.*/\(.*\)|\1|g')
BUILD_DIR=.
case $SYSTEM in
linux)
BUILD_DIR=linux_make
echo "Configuring to use $BUILD_DIR on GNU/Linux"
;;
darwin)
BUILD_DIR=darwin_app
echo "Configuring to use $BUILD_DIR on Darwin/Mac OS X"
;;
mingw*)
BUILD_DIR=win32_inno
echo "Configuring to use $BUILD_DIR on MinGW/Windows"
;;
cygwin*)
BUILD_DIR=win32_inno
echo "Configuring to use $BUILD_DIR on Cygwin/Windows"
;;
*)
echo "ERROR: Platform $SYSTEM not supported!"
exit
;;
esac
# convert into absolute path
cd "${SCRIPT_DIR}/../.."
auto_build_root_dir=`pwd`
echo "build root: $auto_build_root_dir"
# clean up and update
# run 'make distclean' first so the autotools Makefiles still exist
echo "--- make distclean -------------------------------------"
make -C ${auto_build_root_dir}/packages/$BUILD_DIR distclean
echo "--- use SCM to clean -----------------------------------"
for dir in $auto_build_root_dir/*; do
clean_and_update_folder $dir
remove_dead_svn_externals $dir
done
remove_dead_svn_externals $auto_build_root_dir
echo "--- setting up build -----------------------------------"
cd "${auto_build_root_dir}/packages/$BUILD_DIR"
make -C "${auto_build_root_dir}/packages" set_version
make test_locations
echo "--- environment ----------------------------------------"
set
echo "--- mounts ----------------------------------------"
mount
print_ip_address
if [ "$1" = "source-tarball-only" ]; then
echo "--- making source tarball ------------------------------"
make_source_tarball "${auto_build_root_dir}" "${auto_build_root_dir}/packages/$BUILD_DIR"
echo "The source tarball is here:"
echo " ${auto_build_root_dir}/packages/$BUILD_DIR"
echo "Finished cleaning and making source tarball, exiting."
exit
fi
echo "--- compiling binary package ---------------------------"
make install && make package
echo "--- uploading build results ----------------------------"
upload_build ()
{
platform_folder=$1
build_folder=$2
archive_format=$3
archive=$(ls -1 ${auto_build_root_dir}/packages/${platform_folder}/${build_folder}/Pd*.${archive_format} | tail -1)
echo "upload specs $1 $2 $3"
echo "Uploading $archive"
upload_filename=$(ls -1 ${archive} | sed "s|.*/\(.*\)\.${archive_format}|\1-${HOSTNAME}.${archive_format}|")
if [ -e ${archive} ]; then
case $SYSTEM in
mingw*)
/c/cygwin/bin/sh -c \
"rsync --archive --no-links --copy-links --chmod=a+r ${archive} rsync://blinky.at.or.at/upload/${DATE}/${upload_filename}" && \
md5sum ${archive} > ${archive}.md5 && \
/c/cygwin/bin/sh -c \
"rsync --archive --no-links --copy-links ${archive}.md5 rsync://blinky.at.or.at/upload/${DATE}/${upload_filename}.md5" && \
echo "successfully uploaded: ${upload_filename}" && \
echo SUCCESS
;;
*)
rsync -a --chmod=a+r ${archive} rsync://blinky.at.or.at/upload/${DATE}/${upload_filename} && \
md5sum ${archive} > ${archive}.md5 && \
rsync -a ${archive}.md5 rsync://blinky.at.or.at/upload/${DATE}/${upload_filename}.md5 && \
echo "successfully uploaded: ${upload_filename}" && \
echo SUCCESS
;;
esac
fi
}
case $SYSTEM in
linux)
if [ -x /usr/bin/dpkg-deb ]; then
upload_build linux_make . deb
else
upload_build linux_make build tar.bz2
fi
;;
darwin)
upload_build darwin_app . dmg
;;
mingw*)
upload_build win32_inno Output exe
upload_build win32_inno zip zip
;;
cygwin*)
upload_build win32_inno Output exe
;;
esac
|