aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-03-30 23:45:41 +1000
committerDavid Walter Seikel2013-03-30 23:45:41 +1000
commitc895bcd5f1c47df053d9025cdb685fd6617c0343 (patch)
treeffcbe362d20e27cb496d649d497e3bf0f5b79ab8
parentRedo Windows via ssh, and actually get it to start compiling. (diff)
downloadImpyReleaseBuilder-c895bcd5f1c47df053d9025cdb685fd6617c0343.zip
ImpyReleaseBuilder-c895bcd5f1c47df053d9025cdb685fd6617c0343.tar.gz
ImpyReleaseBuilder-c895bcd5f1c47df053d9025cdb685fd6617c0343.tar.bz2
ImpyReleaseBuilder-c895bcd5f1c47df053d9025cdb685fd6617c0343.tar.xz
Finally got Windows to build. Dunno if it actually works.
-rwxr-xr-xBuildReleases.sh192
-rw-r--r--README.md1
2 files changed, 101 insertions, 92 deletions
diff --git a/BuildReleases.sh b/BuildReleases.sh
index fd83073..bdef6bd 100755
--- a/BuildReleases.sh
+++ b/BuildReleases.sh
@@ -1,11 +1,11 @@
1#!/bin/bash 1#!/bin/bash
2 2
3# These control which ones get built. 3# These control which ones get built.
4do_linux64=1
5do_linux32=1
4do_local=0 6do_local=0
5do_linux64=0
6do_linux32=0
7do_windowsXP=1
8do_mac=0 7do_mac=0
8do_windowsXP=1
9 9
10# Where to find suitable disk images for the various OS's. 10# Where to find suitable disk images for the various OS's.
11img_linux64=~/bin/ubuntu64_diff.qcow2 11img_linux64=~/bin/ubuntu64_diff.qcow2
@@ -70,6 +70,103 @@ disown $(jobs -p)
70FTP_SERVER=10.0.2.2 70FTP_SERVER=10.0.2.2
71 71
72 72
73# Do Windows first, coz it still needs a manually typed password, dammit.
74if [ $do_windowsXP -eq 1 ]
75then
76 echo "Building in qemu, Windows XP."
77 qemu-system-i386 -M pc -cpu athlon -m 2G -hda ${img_windowsXP} -net nic -net user,vlan=0,hostfwd=tcp::2222-:22 -rtc base=localtime &
78 sleep 30
79 #expect -c 'spawn ssh -p 2222 me@localhost ; expect assword ; send " \n" ; interact' <<- zzzzEOFzzzz
80 ssh -p 2222 me@localhost <<- zzzzEOFzzzz
81 # TODO - there has to be a way of avoiding all this hard coded stuff, coz this is way too fragile.
82 PATH='/bin:/usr/local/bin:/usr/bin:'\$PATH':/cygdrive/c/Program Files/Microsoft SDKs/v6.1/Bin:/cygdrive/c/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin:/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/IDE:/cygdrive/c/Program Files/Microsoft Visual Studio 8/VC/bin:/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/Tools/:/cygdrive/c/Program Files/Inno Setup 5'
83 #./.profile
84 #./.bash_profile
85 export DXSDK_DIR='C:\Program Files\Microsoft DirectX SDK (November 2008)\'
86 #vcvarsall.bat x86
87 export INCLUDE="C:\Program Files\Microsoft Visual Studio 8\VC\include;C:\Program Files\Microsoft SDKs\Windows\v6.1\Include"
88 export LIB="C:\Program Files\Microsoft Visual Studio 8\VC\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Lib;C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib"
89 export LIBPATH="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
90 #echo \$PATH
91 #set
92 cd /home/me
93 rm -fr BUILD
94 mkdir -p BUILD
95 rm -fr TARBALLS
96 mkdir -p TARBALLS
97 lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && get1 impy-release-source_${date}.tar.gz'
98 tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD
99 cd /home/me/BUILD/SOURCE
100 cd linden/scripts/linux
101
102 # Apparently my "works everywhere" Linux specific scripts work on Cygwin to. Mostly.
103 ./0-patch-SL-source
104 ./1-get-libraries-from-SL
105 ./2-trim-libraries-from-SL
106 ./3-compile-SL-source
107
108 cd /home/me/BUILD/SOURCE
109 rm linden/indra/CMakeCache.txt
110 cd linden/indra
111 # This would be preferable, but NMake is not an option.
112 #./develop.py -G "nmake" --type=Release build
113 # Also, apparently there's Cygwin support, but might have to install the cygwin python for that.
114 cmake -DCMAKE_BUILD_TYPE:STRING="Release" -DSTANDALONE:BOOL=OFF -DUNATTENDED:BOOL=OFF -DROOT_PROJECT_NAME:STRING="Imprudence" -DPACKAGE:BOOL=ON -G "NMake Makefiles" build .
115 # Hack around a bug in cmake that I'm surprised did not hit GUI controlled builds.
116 sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" win_crash_logger/CMakeFiles/windows-crash-logger.dir/flags.make
117 sed -i "s|\(^RC_FLAGS .* \) /GS .*$|\1|" newview/CMakeFiles/imprudence-bin.dir/flags.make
118 #cd build-nmake
119 nmake
120
121 # Build the inno installer.
122 iscc newview/package/Imprudence-1.4.0.3-beta-2.iss
123 cp newview/package/Imprudence-*.exe /home/me/TARBALLS
124 cd /home/me/TARBALLS
125 lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd /home/me/TARBALLS && mput Imprudence-*'
126
127 shutdown -s now
128zzzzEOFzzzz
129
130 # A here document would be preferable, but "interact" won't work then.
131 # Serial port would be preferable, but python does nothing then. WTF?
132# expect -c "
133# set timeout -1
134# set send_slow {1 .1}
135# spawn qemu-system-i386 -M pc -cpu athlon -m 2G -hda ${img_windowsXP} -serial stdio -rtc base=localtime
136# match_max 100000
137# strace 1
138# expect -exact \"\$ \"; sleep .1; send -s -- \"PATH=\\\$PATH':${cw_path}'\r\"
139# expect -exact \"\$ \"; sleep .1; send -s -- \"echo \\\$PATH\r\"
140# expect -exact \"\$ \"; sleep .1; send -s -- \"cd /home/me\r\"
141# expect -exact \"\$ \"; sleep .1; send -s -- \"rm -fr BUILD\r\"
142# expect -exact \"\$ \"; sleep .1; send -s -- \"rm -fr TARBALLS\r\"
143# expect -exact \"\$ \"; sleep .1; send -s -- \"mkdir -p BUILD\r\"
144# expect -exact \"\$ \"; sleep .1; send -s -- \"mkdir -p TARBALLS\r\"
145# expect -exact \"\$ \"; sleep 2; send -s -- \"lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && get1 impy-release-source_${date}.tar.gz'\r\"
146# expect -exact \"\$ \"; sleep .1; send -s -- \"tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD\r\"
147# expect -exact \"\$ \"; sleep .1; send -s -- \"cd /home/me/BUILD/SOURCE\r\"
148# expect -exact \"\$ \"; sleep .1; send -s -- \"cd linden/scripts/linux\r\"
149
150# expect -exact \"\$ \"; sleep .1; send -s -- \"./0-patch-SL-source\r\"
151# expect -exact \"\$ \"; sleep .1; send -s -- \"./1-get-libraries-from-SL\r\"
152# expect -exact \"\$ \"; sleep .1; send -s -- \"./2-trim-libraries-from-SL\r\"
153# expect -exact \"\$ \"; sleep .1; send -s -- \"./3-compile-SL-source\r\"
154# expect -exact \"\$ \"; sleep .1; send -s -- \"cd ../../indra/viewer-windows-*\r\"
155# expect -exact \"\$ \"; sleep .1; send -s -- \"make package\r\"
156
157# expect -exact \"\$ \"; sleep .1; send -s -- \"cp Imprudence-* ../../../../../TARBALLS\r\"
158# expect -exact \"\$ \"; sleep .1; send -s -- \"cd /home/me/BUILD/TARBALLS\r\"
159# expect -exact \"\$ \"; sleep .1; send -s -- \"ls -la\r\"
160# expect -exact \"\$ \"; sleep 2; send -s -- \"lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && mput Imprudence-*'\r\"
161
162# interact quit return; sleep .1; send -s -- \"\r\"
163# expect -exact \"\$ \"; sleep .1; send -s -- \"shutdown -s now\r\"
164# expect eof"
165 echo ''
166 sleep 10
167fi
168
169
73if [ $do_local -eq 1 ] 170if [ $do_local -eq 1 ]
74then 171then
75 echo "Building local." && 172 echo "Building local." &&
@@ -154,95 +251,6 @@ zzzzEOFzzzz
154fi 251fi
155 252
156 253
157if [ $do_windowsXP -eq 1 ]
158then
159 echo "Building in qemu, Windows XP."
160 qemu-system-i386 -M pc -cpu athlon -m 2G -hda ${img_windowsXP} -net nic -net user,vlan=0,hostfwd=tcp::2222-:22 -rtc base=localtime &
161 sleep 30
162 ssh -p 2222 me@localhost <<- zzzzEOFzzzz
163 PATH='/bin:/usr/local/bin:/usr/bin:'\$PATH':/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/IDE:/cygdrive/c/Program Files/Microsoft Visual Studio 8/VC/bin:/cygdrive/c/Program Files/Microsoft Visual Studio 8/Common7/Tools/:/cygdrive/c/Program Files/Microsoft Visual Studio 8/SDK/v2.0/Bin'
164 ./.profile
165 ./.bash_profile
166 export DXSDK_DIR='C:\Program Files\Microsoft DirectX SDK (November 2008)\'
167 #vcvarsall.bat x86
168 export INCLUDE="C:\Program Files\Microsoft Visual Studio 8\VC\include;C:\Program Files\Microsoft SDKs\Windows\v6.1\Include"
169 export LIB="C:\Program Files\Microsoft Visual Studio 8\VC\lib;C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Lib;C:\Program Files\Microsoft SDKs\Windows\v6.1\Lib"
170 export LIBPATH="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727"
171 echo \$PATH
172 set
173 cd /home/me
174 #rm -fr BUILD/SOURCE/linden/indra
175 #rm -fr BUILD
176 rm -fr TARBALLS
177 #mkdir -p BUILD
178 mkdir -p TARBALLS
179 lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && get1 impy-release-source_${date}.tar.gz'
180 tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD
181 cd /home/me/BUILD/SOURCE
182 rm linden/indra/CMakeCache.txt
183 cd linden/scripts/linux
184
185 ./0-patch-SL-source
186 ./1-get-libraries-from-SL
187 ./2-trim-libraries-from-SL
188 ./3-compile-SL-source
189 ls -la ../../indra
190 #cd ../../indra/viewer-windows-*
191 #make package
192
193 cd /home/me/BUILD/SOURCE
194 rm linden/indra/CMakeCache.txt
195 cd linden/indra
196 cmake -G "NMake Makefiles" .
197 nmake
198
199 ls -la
200 #cp Imprudence-* ../../../../../TARBALLS
201 cd /home/me/BUILD/TARBALLS
202 lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && mput Imprudence-*'
203
204 shutdown -s now
205zzzzEOFzzzz
206
207 # A here document would be preferable, but "interact" won't work then.
208# expect -c "
209# set timeout -1
210# set send_slow {1 .1}
211# spawn qemu-system-i386 -M pc -cpu athlon -m 2G -hda ${img_windowsXP} -serial stdio -rtc base=localtime
212# match_max 100000
213# strace 1
214# expect -exact \"\$ \"; sleep .1; send -s -- \"PATH=\\\$PATH':${cw_path}'\r\"
215# expect -exact \"\$ \"; sleep .1; send -s -- \"echo \\\$PATH\r\"
216# expect -exact \"\$ \"; sleep .1; send -s -- \"cd /home/me\r\"
217# expect -exact \"\$ \"; sleep .1; send -s -- \"rm -fr BUILD\r\"
218# expect -exact \"\$ \"; sleep .1; send -s -- \"rm -fr TARBALLS\r\"
219# expect -exact \"\$ \"; sleep .1; send -s -- \"mkdir -p BUILD\r\"
220# expect -exact \"\$ \"; sleep .1; send -s -- \"mkdir -p TARBALLS\r\"
221# expect -exact \"\$ \"; sleep 2; send -s -- \"lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && get1 impy-release-source_${date}.tar.gz'\r\"
222# expect -exact \"\$ \"; sleep .1; send -s -- \"tar xzf TARBALLS/impy-release-source_${date}.tar.gz -C BUILD\r\"
223# expect -exact \"\$ \"; sleep .1; send -s -- \"cd /home/me/BUILD/SOURCE\r\"
224# expect -exact \"\$ \"; sleep .1; send -s -- \"cd linden/scripts/linux\r\"
225
226# expect -exact \"\$ \"; sleep .1; send -s -- \"./0-patch-SL-source\r\"
227# expect -exact \"\$ \"; sleep .1; send -s -- \"./1-get-libraries-from-SL\r\"
228# expect -exact \"\$ \"; sleep .1; send -s -- \"./2-trim-libraries-from-SL\r\"
229# expect -exact \"\$ \"; sleep .1; send -s -- \"./3-compile-SL-source\r\"
230# expect -exact \"\$ \"; sleep .1; send -s -- \"cd ../../indra/viewer-windows-*\r\"
231# expect -exact \"\$ \"; sleep .1; send -s -- \"make package\r\"
232
233# expect -exact \"\$ \"; sleep .1; send -s -- \"cp Imprudence-* ../../../../../TARBALLS\r\"
234# expect -exact \"\$ \"; sleep .1; send -s -- \"cd /home/me/BUILD/TARBALLS\r\"
235# expect -exact \"\$ \"; sleep .1; send -s -- \"ls -la\r\"
236# expect -exact \"\$ \"; sleep 2; send -s -- \"lftp -c 'open -p ${FTP_PORT} ${FTP_SERVER} && lcd TARBALLS && mput Imprudence-*'\r\"
237
238# interact quit return; sleep .1; send -s -- \"\r\"
239# expect -exact \"\$ \"; sleep .1; send -s -- \"shutdown -s now\r\"
240# expect eof"
241 echo ''
242 sleep 10
243fi
244
245
246if [ $do_mac -eq 1 ] 254if [ $do_mac -eq 1 ]
247then 255then
248 echo "No Mac support yet, coz I need a real Mac for that." 256 echo "No Mac support yet, coz I need a real Mac for that."
diff --git a/README.md b/README.md
index 365d7e1..21ab89b 100644
--- a/README.md
+++ b/README.md
@@ -60,6 +60,7 @@ create the disk image
60install under qemu 60install under qemu
61reboot 61reboot
62labourously install all the development stuff and build time dependencies 62labourously install all the development stuff and build time dependencies
63(refer to http://wiki.kokuaviewer.org/wiki/Imprudence:Compiling/1.4/Windows for details)
63reboot 64reboot
64setup cygwin shell on serial port as a service 65setup cygwin shell on serial port as a service
65or sshd, seems to work better 66or sshd, seems to work better