]> icculus.org git repositories - divverent/nexuiz.git/blob - misc/makebuild.sh
now it can tag the game version
[divverent/nexuiz.git] / misc / makebuild.sh
1 #!/bin/sh
2 set -ex
3
4 base=`pwd`
5
6 basepk3=$base/data20060614.pk3
7 nexdir=$base/nexuiz
8 dpdir=$base/darkplaces
9 tmpdir=/tmp/NEX
10 zipdir=/home/polzer/UT/distfiles/nex/
11 mingwdlls=$base/buildfiles/w32
12 osxapps=$base/buildfiles/osx
13 copystrip=$base/buildfiles/copystrip
14 fteqcc="fteqcc.bin -O2"
15 mingw=/home/polzer/mingw32
16 ia32=/chroot/fc4-i386
17 osxhost=macmini_osx
18 osxtemp=/Users/rpolzer/Darkplaces.build
19
20 if [ -n "$1" ]; then
21         osxhost=macmini
22 fi
23
24 : ${date:=`date +%Y%m%d`}
25 : ${versiontag:=}
26 echo "date stamp: $date"
27
28 buildosx()
29 {
30         rsync --exclude "*.o" --exclude "*.d" --exclude "nexuiz-*" --delete-excluded --delete -zvaSHP . $copystrip "$osxhost:$osxtemp"
31         ssh "$osxhost" ". ~/.profile && cd $osxtemp && PATH=$osxtemp/copystrip:\$PATH make CC=\"gcc -g -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk\" clean $*"
32         rsync --exclude "*.o" --exclude "*.d" --delete-excluded --delete -zvaSHP "$osxhost:$osxtemp/." .
33 }
34
35 build64()
36 {
37         PATH=$copystrip:$PATH make CC="gcc -g" "$@"
38 }
39
40 build32()
41 {
42         PATH=$copystrip:$PATH make CC="gcc -g -I$ia32/usr/include -I$ia32/usr/X11R6/include -L$ia32/usr/lib -L$ia32/usr/X11R6/lib -m32" DP_MACHINE=i686 "$@"
43 }
44
45 buildwin()
46 {
47         PATH=$copystrip:$mingw/bin:$PATH make CC="gcc -g" DP_MAKE_TARGET=mingw "$@"
48 }
49
50 rm -rf "$tmpdir"
51 mkdir -p "$tmpdir"
52 cd "$dpdir"
53
54 cp -r "$osxapps"/*.app "$tmpdir"
55 mkdir "$tmpdir/debuginfo"
56 rm -f *.exe nexuiz-* *-withdebug
57
58 make clean
59 buildosx sdl-nexuiz cl-nexuiz sv-nexuiz
60 cp nexuiz-agl "$tmpdir/Nexuiz.app/Contents/MacOS/nexuiz-osx-ppc-agl-bin"
61 cp nexuiz-dedicated "$tmpdir/nexuiz-osx-ppc-dedicated"
62 cp nexuiz-sdl "$tmpdir/Nexuiz-SDL.app/Contents/MacOS/nexuiz-osx-ppc-sdl-bin"
63 cp nexuiz-agl-withdebug "$tmpdir/debuginfo/nexuiz-osx-ppc-agl-bin"
64 cp nexuiz-dedicated-withdebug "$tmpdir/debuginfo/nexuiz-osx-ppc-dedicated-bin"
65 cp nexuiz-sdl-withdebug "$tmpdir/debuginfo/nexuiz-osx-ppc-sdl-bin"
66
67 make clean
68 buildwin nexuiz
69 for x in -dedicated -sdl ''; do
70         cp nexuiz$x.exe "$tmpdir/nexuiz$x.exe"
71         cp nexuiz$x.exe-withdebug "$tmpdir/debuginfo/nexuiz$x.exe"
72 done
73
74 make clean
75 build32 nexuiz
76 for x in dedicated sdl glx; do
77         cp nexuiz-$x "$tmpdir/nexuiz-linux-686-$x"
78         cp nexuiz-$x-withdebug "$tmpdir/debuginfo/nexuiz-linux-686-$x"
79 done
80
81 make clean
82 build64 nexuiz
83 for x in dedicated sdl glx; do
84         cp nexuiz-$x "$tmpdir/nexuiz-linux-x86_64-$x"
85         cp nexuiz-$x-withdebug "$tmpdir/debuginfo/nexuiz-linux-x86_64-$x"
86 done
87
88 cp "$nexdir/nexuiz-linux-sdl.sh" "$tmpdir/"
89 cp "$nexdir/nexuiz-linux-glx.sh" "$tmpdir/"
90 cp "$nexdir/gpl.txt" "$tmpdir/"
91
92 make clean
93 rm -f *.exe nexuiz-* *-withdebug '.#'*
94
95 cd "$nexdir/data"
96 svn export . "$tmpdir/data"
97
98 cd "$nexdir/Docs"
99 svn export . "$tmpdir/Docs"
100
101 cd "$tmpdir/data"
102 mkdir -p "$tmpdir/sources"
103 #zip -9r ../sources/gamesource$date.zip qcsrc
104 7za a -mx=9 -tzip ../sources/gamesource$date.zip qcsrc
105
106 cd "$dpdir/.."
107 #zip -9r "$tmpdir/sources/enginesource$date.zip" "${dpdir##*/}"
108 7za a -mx=9 -tzip "$tmpdir/sources/enginesource$date.zip" "${dpdir##*/}"
109
110 cd "$tmpdir/data/qcsrc/menu"
111 $fteqcc
112
113 cd "$tmpdir/data/qcsrc/server"
114 $fteqcc
115
116 rm -rf "$tmpdir/data/qcsrc"
117
118 cd "$tmpdir/data"
119 mv common-spog.pk3 ..
120 #zip -9r ../data.pk3 .
121 v=$versiontag perl -pi -e '/^set g_nexuizversion "([0-9.]*)"/ and $_ = "set g_nexuizversion \"$1$ENV{v}\"\n"' default.cfg
122 7za a -mx=7 -tzip ../data.pk3 .
123
124 cd "$tmpdir"
125 rm -rf data
126 mkdir data
127 mv data.pk3 data/data$date.pk3
128 mv common-spog.pk3 data/
129
130 cp -r "$mingwdlls"/* .
131 # fix up permissions
132 chmod 644 *.dll *.exe
133
134 mkdir Nexuiz
135 mv * Nexuiz/ || true
136
137 find . -name .svn -exec rm -rf {} \; -prune
138
139 rm -f "$zipdir/nexuiz$date$ext.zip"
140 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
141 rm -f "$zipdir/nexuizengineonly$date$ext.zip"
142 zip -9yr "$zipdir/nexuizengineonly$date$ext.zip" Nexuiz/gpl.txt Nexuiz/nexuiz* Nexuiz/Nexuiz* Nexuiz/*.dll
143 rm -f "$zipdir/nexuizsource$date$ext.zip"
144 zip -9yr "$zipdir/nexuizsource$date$ext.zip"     Nexuiz/gpl.txt                                            Nexuiz/sources
145
146 zipdiff -o Nexuiz/data/datapatch$date.pk3 -f "$basepk3" -t Nexuiz/data/data$date.pk3
147 rm -f "$zipdir/nexuizpatch$date$ext.zip"
148 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
149
150 rm -f "$zipdir/nexuizdebug$date$ext.zip"
151 zip -9yr "$zipdir/nexuizdebug$date$ext.zip"      Nexuiz/gpl.txt Nexuiz/debuginfo/*