xref: /aosp_15_r20/external/bc/scripts/package.sh (revision 5a6e848804d15c18a0125914844ee4eb0bda4fcf)
1*5a6e8488SAndroid Build Coastguard Worker#!/bin/sh
2*5a6e8488SAndroid Build Coastguard Worker#
3*5a6e8488SAndroid Build Coastguard Worker# SPDX-License-Identifier: BSD-2-Clause
4*5a6e8488SAndroid Build Coastguard Worker#
5*5a6e8488SAndroid Build Coastguard Worker# Copyright (c) 2018-2024 Gavin D. Howard and contributors.
6*5a6e8488SAndroid Build Coastguard Worker#
7*5a6e8488SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without
8*5a6e8488SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions are met:
9*5a6e8488SAndroid Build Coastguard Worker#
10*5a6e8488SAndroid Build Coastguard Worker# * Redistributions of source code must retain the above copyright notice, this
11*5a6e8488SAndroid Build Coastguard Worker#   list of conditions and the following disclaimer.
12*5a6e8488SAndroid Build Coastguard Worker#
13*5a6e8488SAndroid Build Coastguard Worker# * Redistributions in binary form must reproduce the above copyright notice,
14*5a6e8488SAndroid Build Coastguard Worker#   this list of conditions and the following disclaimer in the documentation
15*5a6e8488SAndroid Build Coastguard Worker#   and/or other materials provided with the distribution.
16*5a6e8488SAndroid Build Coastguard Worker#
17*5a6e8488SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18*5a6e8488SAndroid Build Coastguard Worker# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19*5a6e8488SAndroid Build Coastguard Worker# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20*5a6e8488SAndroid Build Coastguard Worker# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
21*5a6e8488SAndroid Build Coastguard Worker# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22*5a6e8488SAndroid Build Coastguard Worker# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23*5a6e8488SAndroid Build Coastguard Worker# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24*5a6e8488SAndroid Build Coastguard Worker# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25*5a6e8488SAndroid Build Coastguard Worker# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26*5a6e8488SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27*5a6e8488SAndroid Build Coastguard Worker# POSSIBILITY OF SUCH DAMAGE.
28*5a6e8488SAndroid Build Coastguard Worker#
29*5a6e8488SAndroid Build Coastguard Worker
30*5a6e8488SAndroid Build Coastguard Worker# This script requires some non-POSIX utilities, but that's okay because it's
31*5a6e8488SAndroid Build Coastguard Worker# really for maintainer use only.
32*5a6e8488SAndroid Build Coastguard Worker#
33*5a6e8488SAndroid Build Coastguard Worker# The non-POSIX utilities include:
34*5a6e8488SAndroid Build Coastguard Worker#
35*5a6e8488SAndroid Build Coastguard Worker# * git
36*5a6e8488SAndroid Build Coastguard Worker# * stat
37*5a6e8488SAndroid Build Coastguard Worker# * tar
38*5a6e8488SAndroid Build Coastguard Worker# * gzip
39*5a6e8488SAndroid Build Coastguard Worker# * xz
40*5a6e8488SAndroid Build Coastguard Worker# * sha512sum
41*5a6e8488SAndroid Build Coastguard Worker# * sha256sum
42*5a6e8488SAndroid Build Coastguard Worker# * gpg
43*5a6e8488SAndroid Build Coastguard Worker# * zip
44*5a6e8488SAndroid Build Coastguard Worker# * unzip
45*5a6e8488SAndroid Build Coastguard Worker
46*5a6e8488SAndroid Build Coastguard Workershasum() {
47*5a6e8488SAndroid Build Coastguard Worker
48*5a6e8488SAndroid Build Coastguard Worker	f="$1"
49*5a6e8488SAndroid Build Coastguard Worker	shift
50*5a6e8488SAndroid Build Coastguard Worker
51*5a6e8488SAndroid Build Coastguard Worker	# All this fancy stuff takes the sha512 and sha256 sums and signs it. The
52*5a6e8488SAndroid Build Coastguard Worker	# output after this point is what I usually copy into the release notes.
53*5a6e8488SAndroid Build Coastguard Worker	# (See manuals/release.md for more information.)
54*5a6e8488SAndroid Build Coastguard Worker	printf '$ sha512sum %s\n' "$f"
55*5a6e8488SAndroid Build Coastguard Worker	sha512sum "$f"
56*5a6e8488SAndroid Build Coastguard Worker	printf '\n'
57*5a6e8488SAndroid Build Coastguard Worker	printf '$ sha256sum %s\n' "$f"
58*5a6e8488SAndroid Build Coastguard Worker	sha256sum "$f"
59*5a6e8488SAndroid Build Coastguard Worker	printf '\n'
60*5a6e8488SAndroid Build Coastguard Worker	printf "$ stat -c '%%s  %%n'\n" "$f"
61*5a6e8488SAndroid Build Coastguard Worker	stat -c '%s  %n' "$f"
62*5a6e8488SAndroid Build Coastguard Worker
63*5a6e8488SAndroid Build Coastguard Worker	if [ -f "$f.sig" ]; then
64*5a6e8488SAndroid Build Coastguard Worker		rm -f "$f.sig"
65*5a6e8488SAndroid Build Coastguard Worker	fi
66*5a6e8488SAndroid Build Coastguard Worker
67*5a6e8488SAndroid Build Coastguard Worker	gpg --detach-sig -o "$f.sig" "$f" 2> /dev/null
68*5a6e8488SAndroid Build Coastguard Worker
69*5a6e8488SAndroid Build Coastguard Worker	printf '\n'
70*5a6e8488SAndroid Build Coastguard Worker	printf '$ sha512sum %s.sig\n' "$f"
71*5a6e8488SAndroid Build Coastguard Worker	sha512sum "$f.sig"
72*5a6e8488SAndroid Build Coastguard Worker	printf '\n'
73*5a6e8488SAndroid Build Coastguard Worker	printf '$ sha256sum %s.sig\n' "$f"
74*5a6e8488SAndroid Build Coastguard Worker	sha256sum "$f.sig"
75*5a6e8488SAndroid Build Coastguard Worker	printf '\n'
76*5a6e8488SAndroid Build Coastguard Worker	printf "$ stat -c '%%s  %%n'\n" "$f.sig"
77*5a6e8488SAndroid Build Coastguard Worker	stat -c '%s  %n' "$f.sig"
78*5a6e8488SAndroid Build Coastguard Worker}
79*5a6e8488SAndroid Build Coastguard Worker
80*5a6e8488SAndroid Build Coastguard Workerscript="$0"
81*5a6e8488SAndroid Build Coastguard Workerscriptdir=$(dirname "$script")
82*5a6e8488SAndroid Build Coastguard Worker
83*5a6e8488SAndroid Build Coastguard Worker. "$scriptdir/functions.sh"
84*5a6e8488SAndroid Build Coastguard Worker
85*5a6e8488SAndroid Build Coastguard Workerrepo="$scriptdir/.."
86*5a6e8488SAndroid Build Coastguard Workerproj="bc"
87*5a6e8488SAndroid Build Coastguard Worker
88*5a6e8488SAndroid Build Coastguard Workercd "$repo"
89*5a6e8488SAndroid Build Coastguard Worker
90*5a6e8488SAndroid Build Coastguard Workerif [ ! -f "../vs.zip" ]; then
91*5a6e8488SAndroid Build Coastguard Worker	printf 'Must have Windows builds!\n'
92*5a6e8488SAndroid Build Coastguard Worker	exit 1
93*5a6e8488SAndroid Build Coastguard Workerfi
94*5a6e8488SAndroid Build Coastguard Worker
95*5a6e8488SAndroid Build Coastguard Worker# We want the absolute path for later.
96*5a6e8488SAndroid Build Coastguard Workerrepo=$(pwd)
97*5a6e8488SAndroid Build Coastguard Worker
98*5a6e8488SAndroid Build Coastguard Worker# This convoluted mess does pull the version out. If you change the format of
99*5a6e8488SAndroid Build Coastguard Worker# include/version.h, you may have to change this line.
100*5a6e8488SAndroid Build Coastguard Workerversion=$(cat include/version.h | grep "VERSION " - | awk '{ print $3 }' -)
101*5a6e8488SAndroid Build Coastguard Worker
102*5a6e8488SAndroid Build Coastguard Workertag_msg="Version $version"
103*5a6e8488SAndroid Build Coastguard Workerprojver="${proj}-${version}"
104*5a6e8488SAndroid Build Coastguard Worker
105*5a6e8488SAndroid Build Coastguard Workertempdir="/tmp/${projver}"
106*5a6e8488SAndroid Build Coastguard Workerrm -rf $tempdir
107*5a6e8488SAndroid Build Coastguard Workermkdir -p $tempdir
108*5a6e8488SAndroid Build Coastguard Worker
109*5a6e8488SAndroid Build Coastguard Workermake clean_tests > /dev/null 2> /dev/null
110*5a6e8488SAndroid Build Coastguard Worker
111*5a6e8488SAndroid Build Coastguard Worker# Delete the tag and recreate it. This is the part of the script that makes it
112*5a6e8488SAndroid Build Coastguard Worker# so you cannot run it twice on the same version, unless you know what you are
113*5a6e8488SAndroid Build Coastguard Worker# doing. In fact, you cannot run it again if users have already started to use
114*5a6e8488SAndroid Build Coastguard Worker# the old version of the tag.
115*5a6e8488SAndroid Build Coastguard Workerif git rev-parse "$version" > /dev/null 2>&1; then
116*5a6e8488SAndroid Build Coastguard Worker	git push --delete origin "$version" > /dev/null 2> /dev/null
117*5a6e8488SAndroid Build Coastguard Worker	git tag --delete "$version" > /dev/null 2> /dev/null
118*5a6e8488SAndroid Build Coastguard Workerfi
119*5a6e8488SAndroid Build Coastguard Worker
120*5a6e8488SAndroid Build Coastguard Workergit push > /dev/null 2> /dev/null
121*5a6e8488SAndroid Build Coastguard Workergit tg "$version" -m "$tag_msg" > /dev/null 2> /dev/null
122*5a6e8488SAndroid Build Coastguard Workergit push --tags > /dev/null 2> /dev/null
123*5a6e8488SAndroid Build Coastguard Worker
124*5a6e8488SAndroid Build Coastguard Worker# This line grabs the names of all of the files in .gitignore that still exist.
125*5a6e8488SAndroid Build Coastguard Workerignores=$(git check-ignore * **/*)
126*5a6e8488SAndroid Build Coastguard Worker
127*5a6e8488SAndroid Build Coastguard Workercp -r ./* "$tempdir"
128*5a6e8488SAndroid Build Coastguard Worker
129*5a6e8488SAndroid Build Coastguard Workercd $tempdir
130*5a6e8488SAndroid Build Coastguard Worker
131*5a6e8488SAndroid Build Coastguard Worker# Delete all the ignored files.
132*5a6e8488SAndroid Build Coastguard Workerfor i in $ignores; do
133*5a6e8488SAndroid Build Coastguard Worker	rm -rf "./$i"
134*5a6e8488SAndroid Build Coastguard Workerdone
135*5a6e8488SAndroid Build Coastguard Worker
136*5a6e8488SAndroid Build Coastguard Worker# This is a list of files that end users (including *software packagers* and
137*5a6e8488SAndroid Build Coastguard Worker# *distro maintainers*!) do not care about. In particular, they *do* care about
138*5a6e8488SAndroid Build Coastguard Worker# the testing infrastructure for the regular test suite because distro
139*5a6e8488SAndroid Build Coastguard Worker# maintainers probably want to ensure the test suite runs. However, they
140*5a6e8488SAndroid Build Coastguard Worker# probably don't care about fuzzing or other randomized testing. Also, I
141*5a6e8488SAndroid Build Coastguard Worker# technically can't distribute tests/bc/scripts/timeconst.bc because it's from
142*5a6e8488SAndroid Build Coastguard Worker# the Linux kernel, which is GPL.
143*5a6e8488SAndroid Build Coastguard Workerextras=$(cat <<*EOF
144*5a6e8488SAndroid Build Coastguard Worker.git/
145*5a6e8488SAndroid Build Coastguard Worker.gitignore
146*5a6e8488SAndroid Build Coastguard Worker.gitattributes
147*5a6e8488SAndroid Build Coastguard Workerbenchmarks/
148*5a6e8488SAndroid Build Coastguard Workermanuals/bc.1.md.in
149*5a6e8488SAndroid Build Coastguard Workermanuals/dc.1.md.in
150*5a6e8488SAndroid Build Coastguard Workermanuals/benchmarks.md
151*5a6e8488SAndroid Build Coastguard Workermanuals/development.md
152*5a6e8488SAndroid Build Coastguard Workermanuals/header_bcl.txt
153*5a6e8488SAndroid Build Coastguard Workermanuals/header_bc.txt
154*5a6e8488SAndroid Build Coastguard Workermanuals/header_dc.txt
155*5a6e8488SAndroid Build Coastguard Workermanuals/header.txt
156*5a6e8488SAndroid Build Coastguard Workermanuals/release.md
157*5a6e8488SAndroid Build Coastguard Workerscripts/afl.py
158*5a6e8488SAndroid Build Coastguard Workerscripts/alloc.sh
159*5a6e8488SAndroid Build Coastguard Workerscripts/benchmark.sh
160*5a6e8488SAndroid Build Coastguard Workerscripts/bitfuncgen.c
161*5a6e8488SAndroid Build Coastguard Workerscripts/fuzz_prep.sh
162*5a6e8488SAndroid Build Coastguard Workerscripts/manpage.sh
163*5a6e8488SAndroid Build Coastguard Workerscripts/ministat.c
164*5a6e8488SAndroid Build Coastguard Workerscripts/package.sh
165*5a6e8488SAndroid Build Coastguard Workerscripts/radamsa.sh
166*5a6e8488SAndroid Build Coastguard Workerscripts/radamsa.txt
167*5a6e8488SAndroid Build Coastguard Workerscripts/randmath.py
168*5a6e8488SAndroid Build Coastguard Workerscripts/release_settings.txt
169*5a6e8488SAndroid Build Coastguard Workerscripts/release.sh
170*5a6e8488SAndroid Build Coastguard Workerscripts/test_settings.sh
171*5a6e8488SAndroid Build Coastguard Workerscripts/test_settings.txt
172*5a6e8488SAndroid Build Coastguard Workertests/bc_outputs/
173*5a6e8488SAndroid Build Coastguard Workertests/dc_outputs/
174*5a6e8488SAndroid Build Coastguard Workertests/fuzzing/
175*5a6e8488SAndroid Build Coastguard Workertests/bc/scripts/timeconst.bc
176*5a6e8488SAndroid Build Coastguard Worker*EOF
177*5a6e8488SAndroid Build Coastguard Worker)
178*5a6e8488SAndroid Build Coastguard Worker
179*5a6e8488SAndroid Build Coastguard Workerfor i in $extras; do
180*5a6e8488SAndroid Build Coastguard Worker	rm -rf "./$i"
181*5a6e8488SAndroid Build Coastguard Workerdone
182*5a6e8488SAndroid Build Coastguard Worker
183*5a6e8488SAndroid Build Coastguard Workercd ..
184*5a6e8488SAndroid Build Coastguard Worker
185*5a6e8488SAndroid Build Coastguard Workerparent="$repo/.."
186*5a6e8488SAndroid Build Coastguard Worker
187*5a6e8488SAndroid Build Coastguard Worker# Cleanup old stuff.
188*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.gz" ]; then
189*5a6e8488SAndroid Build Coastguard Worker	rm -rf "$projver.tar.gz"
190*5a6e8488SAndroid Build Coastguard Workerfi
191*5a6e8488SAndroid Build Coastguard Worker
192*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.gz.sig" ]; then
193*5a6e8488SAndroid Build Coastguard Worker	rm -rf "$projver.tar.gz.sig"
194*5a6e8488SAndroid Build Coastguard Workerfi
195*5a6e8488SAndroid Build Coastguard Worker
196*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.xz" ]; then
197*5a6e8488SAndroid Build Coastguard Worker	rm -rf "$projver.tar.xz"
198*5a6e8488SAndroid Build Coastguard Workerfi
199*5a6e8488SAndroid Build Coastguard Worker
200*5a6e8488SAndroid Build Coastguard Workerif [ -f "$projver.tar.xz.sig" ]; then
201*5a6e8488SAndroid Build Coastguard Worker	rm -rf "$projver.tar.xz.sig"
202*5a6e8488SAndroid Build Coastguard Workerfi
203*5a6e8488SAndroid Build Coastguard Worker
204*5a6e8488SAndroid Build Coastguard Worker# Tar and compress and move into the parent directory of the repo.
205*5a6e8488SAndroid Build Coastguard Workertar cf "$projver.tar" "$projver/"
206*5a6e8488SAndroid Build Coastguard Workergzip -k "$projver.tar"
207*5a6e8488SAndroid Build Coastguard Workermv "$projver.tar.gz" "$parent"
208*5a6e8488SAndroid Build Coastguard Workerxz -z -v -9 -e "$projver.tar" > /dev/null 2> /dev/null
209*5a6e8488SAndroid Build Coastguard Workermv "$projver.tar.xz" "$parent"
210*5a6e8488SAndroid Build Coastguard Worker
211*5a6e8488SAndroid Build Coastguard Workercd "$parent"
212*5a6e8488SAndroid Build Coastguard Worker
213*5a6e8488SAndroid Build Coastguard Worker# Clean up old Windows stuff.
214*5a6e8488SAndroid Build Coastguard Workerif [ -d windows ]; then
215*5a6e8488SAndroid Build Coastguard Worker	rm -rf windows
216*5a6e8488SAndroid Build Coastguard Workerfi
217*5a6e8488SAndroid Build Coastguard Worker
218*5a6e8488SAndroid Build Coastguard Workerif [ -f windows.zip ]; then
219*5a6e8488SAndroid Build Coastguard Worker	rm -rf $projver-windows.zip
220*5a6e8488SAndroid Build Coastguard Workerfi
221*5a6e8488SAndroid Build Coastguard Worker
222*5a6e8488SAndroid Build Coastguard Worker# Prepare Windows stuff.
223*5a6e8488SAndroid Build Coastguard Workerunzip vs.zip > /dev/null
224*5a6e8488SAndroid Build Coastguard Workermv vs windows
225*5a6e8488SAndroid Build Coastguard Worker
226*5a6e8488SAndroid Build Coastguard Worker# Remove unneeded Windows stuff.
227*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.vcxproj.user
228*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/src2
229*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/tests
230*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.sln
231*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.vcxproj
232*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/*.vcxproj.filters
233*5a6e8488SAndroid Build Coastguard Worker
234*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/*.obj
235*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/*.iobj
236*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.exe.recipe
237*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.ilk
238*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.log
239*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.tlog
240*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.pdb
241*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.ipdb
242*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.vcxproj.FileListAbsolute.txt
243*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/bc.Build.CppClean.log
244*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/strgen.exe
245*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/vc142.idb
246*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/bin/{Win32,x64}/{Debug,Release}/vc142.pdb
247*5a6e8488SAndroid Build Coastguard Worker
248*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/*.obj
249*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.lib.recipe
250*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.log
251*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.tlog
252*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.idb
253*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.pdb
254*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.vcxproj.FileListAbsolute.txt
255*5a6e8488SAndroid Build Coastguard Workerrm -rf windows/lib/{Win32,x64}/{Debug,ReleaseMD,ReleaseMT}/bcl.Build.CppClean.log
256*5a6e8488SAndroid Build Coastguard Worker
257*5a6e8488SAndroid Build Coastguard Worker# Zip the Windows stuff.
258*5a6e8488SAndroid Build Coastguard Workerzip -r $projver-windows.zip windows > /dev/null
259*5a6e8488SAndroid Build Coastguard Worker
260*5a6e8488SAndroid Build Coastguard Workerprintf '\n'
261*5a6e8488SAndroid Build Coastguard Workershasum "$projver.tar.gz"
262*5a6e8488SAndroid Build Coastguard Workerprintf '\n'
263*5a6e8488SAndroid Build Coastguard Workershasum "$projver.tar.xz"
264*5a6e8488SAndroid Build Coastguard Workerprintf '\n'
265*5a6e8488SAndroid Build Coastguard Workershasum "$projver-windows.zip"
266*5a6e8488SAndroid Build Coastguard Worker
267*5a6e8488SAndroid Build Coastguard Workermkdir -p "releases/$projver"
268*5a6e8488SAndroid Build Coastguard Workermv $projver* "releases/$projver"
269*5a6e8488SAndroid Build Coastguard Worker
270*5a6e8488SAndroid Build Coastguard Worker# Clean up old Windows stuff.
271*5a6e8488SAndroid Build Coastguard Workerif [ -d windows ]; then
272*5a6e8488SAndroid Build Coastguard Worker	rm -rf windows
273*5a6e8488SAndroid Build Coastguard Workerfi
274*5a6e8488SAndroid Build Coastguard Worker
275*5a6e8488SAndroid Build Coastguard Workerif [ -f vs.zip ]; then
276*5a6e8488SAndroid Build Coastguard Worker	rm -rf vs.zip
277*5a6e8488SAndroid Build Coastguard Workerfi
278