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