]> icculus.org git repositories - divverent/nexuiz.git/blob - misc/makebuild.sh
sv_clmovement_waitforinput 4
[divverent/nexuiz.git] / misc / makebuild.sh
1 #!/bin/sh
2
3 echo TODO: add darkplaces.txt to Docs/
4
5 set -e
6
7 base=`pwd`
8
9
10 case "$pw" in
11         '')
12                 zipflags=
13                 ;;
14         *)
15                 zipflags="-P $pw"
16                 ;;
17 esac
18
19 : ${date:=`date +%Y%m%d`}
20 : ${versiontag:=}
21 echo "date stamp: $date"
22
23 case "$version" in
24         '')
25                 version=2-svntest-$date
26                 versiontag=test
27                 defaultcfg=
28                 ext=
29                 ;;
30         *)
31                 version=$version
32                 versiontag=$versiontag
33                 defaultcfg=
34                 ext=_$version
35                 ;;
36 esac
37
38 basepk3=$base/data20060905.pk3
39 nexdir=$base/nexuiz
40 nexprodir=$base/nexuizpro
41 dpdir=$base/darkplaces
42 tmpdir=/tmp/NEX
43 zipdir=/home/polzer/UT/distfiles/nex/
44 buildfiles=$base/buildfiles
45 mingwdlls=$buildfiles/w32
46 osxapps=$buildfiles/osx
47 copystrip=$buildfiles/copystrip
48 fteqcc="fteqcc.bin -O2"
49 mingw=/home/polzer/mingw32
50 ia32=/chroot/fc6-i386
51 osxhost=macmini
52 osxtemp=/Users/rpolzer/Darkplaces.build
53 osxsave=/tmp/Nexuiz.osx
54
55 i=
56 while [ -f "$zipdir/nexuiz$date$i$ext.zip" ]; do
57         if [ -z "$i" ]; then
58                 i=a
59         else
60                 i=`echo "$i" | tr a-y b-z`
61         fi
62 done
63 ext=$i$ext
64
65 echo "Using build name nexuiz$date$ext"
66 sleep 3
67
68 if [ -n "$1" ]; then
69         osxhost="$1"
70 fi
71
72 conflicts=`find "$dpdir" "$nexdir" -name '*.orig' -o -name '*.rej' -o -name '*.mine' -o -name '.#*' -o -name '.*~'`
73 if [ -n "$conflicts" ]; then
74         echo "CONFLICTS OR UNNEEDED FILES HAVE BEEN FOUND!"
75         echo "NOT PROCEEDING"
76         echo
77         echo "$conflicts"
78         exit 1
79 fi
80
81 set -x
82
83 buildosx()
84 {
85         rsync --exclude "*.o" --exclude "*.d" --exclude "nexuiz-*" --delete-excluded --delete -zvaSHP . $copystrip "$osxhost:$osxtemp"
86         ssh "$osxhost" ". ~/.profile && cd $osxtemp && PATH=$osxtemp/copystrip:\$PATH make CC=\"gcc -g -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk\" clean $*"
87         rmdir "$osxsave" || true
88         if [ -d "$osxsave" ]; then
89                 cp "$osxsave"/* .
90         fi
91         rsync --exclude "*.o" --exclude "*.d" --delete-excluded --delete -zvaSHP "$osxhost:$osxtemp/." .
92         mkdir -p "$osxsave"
93         cp nexuiz-* "$osxsave"/
94 }
95
96 build64()
97 {
98         PATH=$copystrip:$PATH make CC="/opt/gcc-4.1.1/bin/gcc -g" "$@"
99 }
100
101 build32()
102 {
103         PATH=$copystrip:$PATH make CC="/opt/gcc-4.1.1/bin/gcc -g -I$ia32/usr/include -I$ia32/usr/X11R6/include -L$ia32/usr/lib -L$ia32/usr/X11R6/lib -m32" DP_MACHINE=i686 "$@"
104 }
105
106 buildwin()
107 {
108         PATH=$copystrip:$mingw/bin:$PATH make CC="gcc -g" DP_MAKE_TARGET=mingw "$@"
109 }
110
111 rm -rf "$tmpdir"
112 mkdir -p "$tmpdir"
113 cd "$dpdir"
114 quilt pop -a || true
115 quilt push -a
116
117 cp -r "$osxapps"/*.app "$tmpdir"
118 mkdir "$tmpdir/debuginfo"
119 rm -f *.exe nexuiz-* *-withdebug
120
121 make clean
122 buildosx sdl-nexuiz cl-nexuiz sv-nexuiz
123 cp nexuiz-agl "$tmpdir/Nexuiz.app/Contents/MacOS/nexuiz-osx-ppc-agl-bin"
124 cp nexuiz-dedicated "$tmpdir/nexuiz-osx-ppc-dedicated"
125 cp nexuiz-sdl "$tmpdir/Nexuiz-SDL.app/Contents/MacOS/nexuiz-osx-ppc-sdl-bin"
126 cp nexuiz-agl-withdebug "$tmpdir/debuginfo/nexuiz-osx-ppc-agl-bin"
127 cp nexuiz-dedicated-withdebug "$tmpdir/debuginfo/nexuiz-osx-ppc-dedicated-bin"
128 cp nexuiz-sdl-withdebug "$tmpdir/debuginfo/nexuiz-osx-ppc-sdl-bin"
129
130 make clean
131 buildwin nexuiz
132 for x in -dedicated -sdl ''; do
133         cp nexuiz$x.exe "$tmpdir/nexuiz$x.exe"
134         cp nexuiz$x.exe-withdebug "$tmpdir/debuginfo/nexuiz$x.exe"
135 done
136
137 make clean
138 build32 nexuiz
139 for x in dedicated sdl glx; do
140         cp nexuiz-$x "$tmpdir/nexuiz-linux-686-$x"
141         cp nexuiz-$x-withdebug "$tmpdir/debuginfo/nexuiz-linux-686-$x"
142 done
143
144 make clean
145 build64 nexuiz
146 for x in dedicated sdl glx; do
147         cp nexuiz-$x "$tmpdir/nexuiz-linux-x86_64-$x"
148         cp nexuiz-$x-withdebug "$tmpdir/debuginfo/nexuiz-linux-x86_64-$x"
149 done
150
151 cp "$nexdir/"nexuiz-*.{sh,bat} "$tmpdir/"
152 cp "$nexdir/gpl.txt" "$tmpdir/"
153
154 make clean
155 rm -f *.exe nexuiz-* *-withdebug '.#'*
156
157 cd "$nexdir/data"
158 svn export . "$tmpdir/data"
159
160 cd "$nexprodir"
161 svn export . "$tmpdir/pro"
162
163 cd "$nexdir/Docs"
164 svn export . "$tmpdir/Docs"
165
166 cd "$tmpdir/data"
167 mkdir -p "$tmpdir/sources"
168 #zip -9r ../sources/gamesource$date.zip qcsrc
169 7za a -mx=9 -tzip ../sources/gamesource$date.zip qcsrc
170
171 cd "$dpdir"
172 svn export . "$tmpdir/darkplaces"
173 svn info > "$tmpdir/darkplaces/nexuiz-base-revision.txt"
174 svn diff > "$tmpdir/darkplaces/nexuiz-engine-changes.diff"
175 svn log > "$tmpdir/darkplaces/ChangeLog"
176
177 cd "$tmpdir"
178 7za a -mx=9 -tzip "$tmpdir/sources/enginesource$date.zip" "darkplaces"
179 rm -rf darkplaces
180
181 cd "$tmpdir/data/qcsrc/menu"
182 $fteqcc
183
184 cd "$tmpdir/data/qcsrc/server"
185 $fteqcc
186
187 rm -rf "$tmpdir/data/qcsrc"
188
189 cd "$tmpdir/Docs"
190 perl -pi -e '/^#---SET nexversion=([0-9.]*)$/ and $_ = "#---SET nexversion='$version'\n"' FAQ.aft
191 perl -pi -e '/^\s*Version ([0-9.]*)<\/div>$/ and $_ = "Version '$version'</div>\n"' Readme.htm
192 aft FAQ.aft
193 aft FAQ.aft
194 rm FAQ.aft-TOC
195
196 cd "$tmpdir/data"
197 mv common-spog.pk3 ..
198 perl -pi -e '/^set g_nexuizversion "?([0-9.]*)[^"]*"?/ and $_ = "set g_nexuizversion '$version'\n"' default.cfg
199 if [ -n "$versiontag" ]; then
200         perl -pi -e '/^set g_nexuizversion/ and $_ = "showbrand 3\n$_"' default.cfg
201         cp "$buildfiles/brand/$versiontag.tga" gfx/brand.tga
202 fi
203 echo >> default.cfg
204 echo "$defaultcfg" >> default.cfg
205 7za a -mx=7 -tzip ../data.pk3 .
206
207 cd "$tmpdir/pro"
208 perl -pi -e '/^set g_nexuizversion "?([0-9.]*)[^"]*"?/ and $_ = "set g_nexuizversion '$version-pro'\n"' default.cfg
209 if [ -n "$versiontag" ]; then
210         perl -pi -e '/^set g_nexuizversion/ and $_ = "showbrand 3\n$_"' default.cfg
211 fi
212 echo >> default.cfg
213 echo "$defaultcfg" >> default.cfg
214 7za a -mx=7 -tzip ../pro.pk3 .
215
216 cd "$tmpdir"
217 rm -rf data
218 mkdir data
219 mv data.pk3 data/data$date.pk3
220 mv common-spog.pk3 data/
221 rm -rf pro
222 mkdir pro
223 mv pro.pk3 pro/data${date}pro.pk3
224
225 cp -r "$mingwdlls"/* .
226 # fix up permissions
227 chmod 644 *.dll *.exe
228
229 mkdir Nexuiz
230 mv * Nexuiz/ || true
231
232 find . -name .svn -exec rm -rf {} \; -prune
233
234 rm -f "$zipdir/nexuiz$date$ext.zip"
235 zip $zipflags -9yr "$zipdir/nexuiz$date$ext.zip"           Nexuiz/gpl.txt Nexuiz/nexuiz* Nexuiz/Nexuiz* Nexuiz/*.dll Nexuiz/sources Nexuiz/Docs Nexuiz/data/data$date.pk3 Nexuiz/data/common-spog.pk3 Nexuiz/pro/*
236 rm -f "$zipdir/nexuizengineonly$date$ext.zip"
237 zip $zipflags -9yr "$zipdir/nexuizengineonly$date$ext.zip" Nexuiz/gpl.txt Nexuiz/nexuiz* Nexuiz/Nexuiz* Nexuiz/*.dll
238 rm -f "$zipdir/nexuizsource$date$ext.zip"
239 zip $zipflags -9yr "$zipdir/nexuizsource$date$ext.zip"     Nexuiz/gpl.txt                                            Nexuiz/sources
240
241 zipdiff -o "Nexuiz/data/datapatch$date.pk3" -f "$basepk3" -t Nexuiz/data/data$date.pk3
242 mkdir -p gfx
243 if unzip "Nexuiz/data/data$date.pk3" gfx/brand.tga; then
244         zip $zipflags -9r "Nexuiz/data/datapatch$date.pk3" gfx/brand.tga
245         rm -rf gfx
246 fi
247
248 rm -f "$zipdir/nexuizpatch$date$ext.zip"
249 zip $zipflags -9yr "$zipdir/nexuizpatch$date$ext.zip"      Nexuiz/gpl.txt Nexuiz/nexuiz* Nexuiz/Nexuiz* Nexuiz/*.dll Nexuiz/sources Nexuiz/Docs Nexuiz/data/datapatch$date.pk3 Nexuiz/pro/*
250
251 rm -f "$zipdir/nexuizdocs$date$ext.zip"
252 zip $zipflags -9yr "$zipdir/nexuizdocs$date$ext.zip"       Nexuiz/gpl.txt Nexuiz/Docs
253
254 rm -f "$zipdir/nexuizdebug$date$ext.zip"
255 zip $zipflags -9yr "$zipdir/nexuizdebug$date$ext.zip"      Nexuiz/gpl.txt Nexuiz/debuginfo/*