]> git.saurik.com Git - wxWidgets.git/blame - distrib/scripts/create_archives.sh
Fixed wxAtomicInc/Dec() to not use asm/atomic.h header on Linux - it's kernel interna...
[wxWidgets.git] / distrib / scripts / create_archives.sh
CommitLineData
2dfa1180
KO
1#!/bin/sh
2
3# Make a distribution of an application on MSW.
4# Example:
5# ../distrib/msw/makesetup.sh --wxmsw --verbose &> log
6
7# If your zip accepts Cygwin-style paths, then
8# use cygpath, else substitute echo
9CYGPATHPROG=cygpath
10#CYGPATHPROG=echo
11
12SPINMSW=0
13SPINOS2=0
14SPINDOCS=0
15SPINALL=0
16SPINWXALL=0
17SPINBASE=0
18GETMAKEFILES=0
19VERBOSE=0
20ZIPFLAGS=
21
22PROGNAME=$0
dc168f05 23
2dfa1180
KO
24. $SCRIPTDIR/utils.inc
25
8afb1dca 26MANIFESTDIR=$WXWIN/distrib/scripts/manifests
2dfa1180
KO
27WEBFILES=$WXWIN/../wxWebSite
28if [ ! "$CYGPATH" = "" ]; then
29 WEBFILES=`$CYGPATH "$WEBFILES"`
30fi
31
32# Set this to the required version
33if [ "$VERSION" = "" ]; then
34 VERSION=2.7.0
35fi
36
37getfilelist(){
38 port=$1
39 outfile=$2
e019c642 40
2dfa1180 41 filelist="base.rsp"
2dfa1180 42 utilsfiles="tex2rtf.rsp utils.rsp utilmake.rsp"
29263adc 43 commonfiles="generic.rsp generic_samples.rsp stc.rsp jpeg.rsp tiff.rsp xml.rsp makefile.rsp $utilsfiles"
e019c642 44
2dfa1180 45 if [ ! $port = "base" ]; then
e019c642
VZ
46 filelist="$filelist $commonfiles"
47 fi
48
2dfa1180 49 if [ $port = "msw" ] || [ $port = "all" ]; then
9d1eeb0b 50 filelist="$filelist msw.rsp univ.rsp vc.rsp wince.rsp dmc.rsp"
2dfa1180 51 fi
e019c642 52
2dfa1180
KO
53 if [ $port = "os2" ] || [ $port = "all" ]; then
54 filelist="$filelist os2.rsp"
55 fi
e019c642 56
2dfa1180 57 if [ $port = "x11" ] || [ $port = "all" ]; then
e019c642 58 filelist="$filelist univ.rsp x11.rsp"
2dfa1180 59 fi
e019c642 60
2dfa1180 61 if [ $port = "mgl" ] || [ $port = "all" ]; then
d7d0ed35 62 filelist="$filelist univ.rsp mgl.rsp"
2dfa1180 63 fi
9d1eeb0b 64
c640dfa5 65 if [ $port = "dfb" ] || [ $port = "all" ]; then
9d1eeb0b 66 filelist="$filelist univ.rsp dfb.rsp"
c640dfa5 67 fi
9d1eeb0b 68
2dfa1180
KO
69 if [ $port = "gtk" ] || [ $port = "all" ]; then
70 filelist="$filelist gtk.rsp"
71 fi
e019c642 72
2dfa1180
KO
73 if [ $port = "motif" ] || [ $port = "all" ]; then
74 filelist="$filelist motif.rsp"
75 fi
e019c642 76
2dfa1180
KO
77 if [ $port = "mac" ] || [ $port = "all" ]; then
78 filelist="$filelist mac.rsp cocoa.rsp"
79 fi
e019c642 80
2dfa1180 81 if [ $port = "all" ]; then
47351e25 82 filelist="$filelist gtk1.rsp palmos.rsp docsrc.rsp"
2dfa1180 83 fi
e019c642 84
2dfa1180
KO
85 tempfile="/tmp/wx$port.files.in"
86 rm -f $outfile
e019c642 87
2dfa1180
KO
88 olddir=$PWD
89 cd $MANIFESTDIR
e019c642 90
2dfa1180 91 cat $filelist > $outfile
e019c642 92
2dfa1180
KO
93 cd $olddir
94}
95
96copyfilelist(){
97 FILELIST=$1
98 APPDIR=$2
99 DESTDIR=$3
e019c642 100
2dfa1180
KO
101 for line in `cat $FILELIST` ; do
102 if [ "$line" != "" ]; then
103 subdir=`dirname $line`
104 mkdir -p $DESTDIR/$subdir
e019c642 105 cp -rf $APPDIR/$line $DESTDIR/$subdir
2dfa1180
KO
106 fi
107 done
108}
109
110doinit()
111{
112 if [ "$VERBOSE" != "1" ]; then
113 ZIPFLAGS=-q
114 fi
115}
116
117dospinport(){
118 port=$1
e019c642 119
6ff2b437 120 case "$port" in
c6606883
VZ
121 all)
122 portname="Widgets";;
123 base)
124 portname="Base";;
125 motif)
126 portname="Motif";;
127 mac)
128 portname="Mac";;
129 *)
c640dfa5 130 # for all the others (DFB, GTK, MGL, DFB, MSW, X11) just use the
c6606883
VZ
131 # upper-case version as they are abbreviations
132 portname=`echo $port | tr '[a-z]' '[A-Z]'`;;
6ff2b437 133 esac
e019c642 134
2dfa1180
KO
135 echo "Creating wx$portname distribution..."
136
137 cd $APPDIR
138 portfiles="/tmp/wx$port.files"
139 getfilelist "$port" "$portfiles"
e019c642 140
e87f080a 141 TMPFILESDIR=/tmp/wx$port/wx$portname-$VERSION
2dfa1180
KO
142 rm -rf $TMPFILESDIR
143 mkdir -p $TMPFILESDIR
144
145 copyfilelist $portfiles $APPDIR $TMPFILESDIR
571c8c8a
KO
146
147 if [ $port = "msw" ]; then
8afb1dca 148 FILES=`find . -type f \( -path '*/CVS/*' -prune -o -exec ${SCRIPTDIR}/is_text.sh {} \; -print \)`
571c8c8a
KO
149 echo "$FILES" > /tmp/textfiles
150 fi
151
2dfa1180 152 pushd /tmp/wx$port
2a1243f4 153 # use DOS line endings for text files for MSW archives.
de6fbe75 154 if [ $port = "msw" ]; then
e87f080a 155 pushd /tmp/wx$port/wx$portname-$VERSION
571c8c8a 156 for file in `cat /tmp/textfiles`; do
6224df04 157 unix2dos $file
571c8c8a
KO
158 done
159 popd
de6fbe75 160 fi
2dfa1180 161 echo "Creating wx$portname-$VERSION.zip..."
dc168f05 162 zip $ZIPFLAGS -r -9 $DIST_DIR/wx$portname-$VERSION.zip .
2dfa1180 163 echo "Creating wx$portname-$VERSION.tar.gz..."
dc168f05 164 tar czf $DIST_DIR/wx$portname-$VERSION.tar.gz wx$portname-$VERSION
2dfa1180 165 echo "Creating wx$portname-$VERSION.tar.bz2..."
dc168f05 166 tar ch wx$portname-$VERSION | bzip2 -f9 > $DIST_DIR//wx$portname-$VERSION.tar.bz2
2dfa1180
KO
167 popd
168 rm -rf /tmp/wx$port
f21467d8 169 rm ${portfiles}
0ecdaebb 170 rm /tmp/textfiles
2dfa1180
KO
171}
172
173prepareforrelease()
174{
175 pushd $APPDIR
176 echo Copying FAQ and other files from $WEBFILES
177 cp $WEBFILES/site/faq*.htm $APPDIR/docs/html
178 cp $WEBFILES/site/platform.htm $APPDIR/docs/html
179 cp $WEBFILES/site/i18n.htm $APPDIR/docs/html
e019c642 180
2dfa1180
KO
181 echo Copying readme files...
182 cp $APPDIR/docs/msw/readme.txt README-MSW.txt
183 cp $APPDIR/docs/msw/install.txt INSTALL-MSW.txt
184 cp $APPDIR/docs/os2/install.txt INSTALL-OS2.txt
185 cp $APPDIR/docs/licence.txt LICENCE.txt
186 cp $APPDIR/docs/lgpl.txt COPYING.LIB
187 cp $APPDIR/docs/changes.txt CHANGES.txt
188 cp $APPDIR/docs/readme.txt README.txt
de6fbe75
KO
189
190 cp $APPDIR/docs/mgl/readme.txt $APPDIR/readme-mgl.txt
191 cp $APPDIR/docs/mgl/install.txt $APPDIR/install-mgl.txt
9d1eeb0b 192
c640dfa5 193 cp $APPDIR/docs/dfb/install.txt $APPDIR/install-dfb.txt
de6fbe75
KO
194
195 cp $APPDIR/docs/x11/readme.txt $APPDIR/readme-x11.txt
196 cp $APPDIR/docs/x11/install.txt $APPDIR/install-x11.txt
197
198 cp $APPDIR/docs/motif/readme.txt $APPDIR/readme-motif.txt
199 cp $APPDIR/docs/motif/install.txt $APPDIR/install-motif.txt
200
201 cp $APPDIR/docs/gtk/readme.txt $APPDIR/readme-gtk.txt
202 cp $APPDIR/docs/gtk/install.txt $APPDIR/install-gtk.txt
203
204 cp $APPDIR/docs/mac/readme.txt $APPDIR/readme-mac.txt
205 cp $APPDIR/docs/mac/install.txt $APPDIR/install-mac.txt
206
207 cp $APPDIR/docs/cocoa/readme.txt $APPDIR/readme-cocoa.txt
208 cp $APPDIR/docs/cocoa/install.txt $APPDIR/install-cocoa.txt
e019c642 209
2dfa1180 210 # Now delete a few files that are unnecessary
99bc6ea3 211 rm -f BuildSVN.txt descrip.mms
2dfa1180
KO
212 rm -f setup.h_vms
213 rm -f docs/html/wxbook.htm docs/html/roadmap.htm
2dfa1180 214 rm -f src/mingegcs.bat
0b70d74c 215# rm -f *.spec
2dfa1180 216 rm -f src/gtk/descrip.mms src/motif/descrip.mms
e019c642 217
2dfa1180
KO
218 # Copy setup0.h files to setup.h
219 # OS/2 always built with configure now
220 # cp $APPDIR/include/wx/os2/setup0.h $APPDIR/include/wx/os2/setup.h
221 cp $APPDIR/include/wx/msw/setup0.h $APPDIR/include/wx/msw/setup.h
222 cp $APPDIR/include/wx/univ/setup0.h $APPDIR/include/wx/univ/setup.h
e019c642 223
de6fbe75 224 # Make MSW project files always have DOS line endings.
e019c642
VZ
225 unix2dos `cat $MANIFESTDIR/vc.rsp`
226
2dfa1180
KO
227 popd
228}
229
230usage()
231{
232 echo "Usage: $PROGNAME [ options ]" 1>&2
233 echo Options:
234 echo " --help Display this help message"
235 echo " --wxmac Build wxMac distribution"
236 echo " --wxmsw Build wxMSW distribution"
237 echo " --wxos2 Build wxOS2 distribution"
238 echo " --wxall Build wxAll zip distribution"
239 echo " --wxbase Build wxBase zip distribution"
240 echo " --all Build all distributions (the default)"
241 echo " --verbose Verbose zip operation"
242 exit 1
243}
244
245# Process command line options.
246
247for i in "$@"; do
248
249 case "$i" in
250 --wxmac) SPINMAC=1; SPINALL=0 ;;
251 --wxmsw) SPINMSW=1; SPINALL=0 ;;
252 --wxos2) SPINOS2=1; SPINALL=0 ;;
253 --wxall) SPINWXALL=1; SPINALL=0 ;;
254 --wxbase) SPINBASE=1; SPINALL=0 ;;
255 --getmakefiles) GETMAKEFILES=1; SPINALL=0 ;;
256 --docs) SPINDOCS=1; SPINALL=0 ;;
257 --all) SPINALL=1 ;;
258 --verbose) VERBOSE=1 ;;
259 *)
260 usage
261 exit
262 ;;
263 esac
264done
265
266
267doinit
268prepareforrelease
269
270# Do OS/2 spin
271if [ "$SPINOS2" = "1" ] || [ "$SPINALL" = "1" ]; then
272 dospinport "os2"
273fi
274
275# Do MSW spin
276if [ "$SPINMSW" = "1" ] || [ "$SPINALL" = "1" ]; then
277 dospinport "msw"
278fi
279
280# Do wxBase spin
281if [ "$SPINBASE" = "1" ] || [ "$SPINALL" = "1" ]; then
282 dospinport "base"
283fi
284
285# Do wxAll spin
286if [ "$SPINWXALL" = "1" ] || [ "$SPINALL" = "1" ]; then
e019c642 287 dospinport "all"
2dfa1180
KO
288fi
289
290if [ "$SPINALL" = "1" ]; then
291 dospinport "mgl"
c640dfa5 292 dospinport "dfb"
2dfa1180
KO
293 dospinport "gtk"
294 dospinport "x11"
295 dospinport "motif"
296 dospinport "mac"
297fi
298