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