#!/bin/sh # Make a distribution of an application on MSW. # Example: # ../distrib/msw/makesetup.sh --wxmsw --verbose &> log # If your zip accepts Cygwin-style paths, then # use cygpath, else substitute echo CYGPATHPROG=cygpath #CYGPATHPROG=echo SPINMSW=0 SPINOS2=0 SPINDOCS=0 SPINALL=0 SPINWXALL=0 SPINBASE=0 GETMAKEFILES=0 VERBOSE=0 ZIPFLAGS= PROGNAME=$0 . $SCRIPTDIR/utils.inc MANIFESTDIR=$WXWIN/distrib/scripts/manifests WEBFILES=$WXWIN/../wxWebSite if [ ! "$CYGPATH" = "" ]; then WEBFILES=`$CYGPATH "$WEBFILES"` fi # Set this to the required version if [ "$VERSION" = "" ]; then VERSION=2.7.0 fi getfilelist(){ port=$1 outfile=$2 filelist="base.rsp" utilsfiles="tex2rtf.rsp utils.rsp utilmake.rsp" commonfiles="generic.rsp generic_samples.rsp stc.rsp jpeg.rsp tiff.rsp xml.rsp makefile.rsp $utilsfiles" if [ ! $port = "base" ]; then filelist="$filelist $commonfiles" fi if [ $port = "msw" ] || [ $port = "all" ]; then filelist="$filelist msw.rsp univ.rsp vc.rsp wince.rsp dmc.rsp" fi if [ $port = "os2" ] || [ $port = "all" ]; then filelist="$filelist os2.rsp" fi if [ $port = "x11" ] || [ $port = "all" ]; then filelist="$filelist univ.rsp x11.rsp" fi if [ $port = "mgl" ] || [ $port = "all" ]; then filelist="$filelist univ.rsp mgl.rsp" fi if [ $port = "dfb" ] || [ $port = "all" ]; then filelist="$filelist univ.rsp dfb.rsp" fi if [ $port = "gtk" ] || [ $port = "all" ]; then filelist="$filelist gtk.rsp" fi if [ $port = "motif" ] || [ $port = "all" ]; then filelist="$filelist motif.rsp" fi if [ $port = "mac" ] || [ $port = "all" ]; then filelist="$filelist mac.rsp cocoa.rsp" fi if [ $port = "all" ]; then filelist="$filelist gtk1.rsp palmos.rsp docsrc.rsp" fi tempfile="/tmp/wx$port.files.in" rm -f $outfile olddir=$PWD cd $MANIFESTDIR cat $filelist > $outfile cd $olddir } copyfilelist(){ FILELIST=$1 APPDIR=$2 DESTDIR=$3 for line in `cat $FILELIST` ; do if [ "$line" != "" ]; then subdir=`dirname $line` mkdir -p $DESTDIR/$subdir cp -rf $APPDIR/$line $DESTDIR/$subdir fi done } doinit() { if [ "$VERBOSE" != "1" ]; then ZIPFLAGS=-q fi } dospinport(){ port=$1 case "$port" in all) portname="Widgets";; base) portname="Base";; motif) portname="Motif";; mac) portname="Mac";; *) # for all the others (DFB, GTK, MGL, DFB, MSW, X11) just use the # upper-case version as they are abbreviations portname=`echo $port | tr '[a-z]' '[A-Z]'`;; esac echo "Creating wx$portname distribution..." cd $APPDIR portfiles="/tmp/wx$port.files" getfilelist "$port" "$portfiles" TMPFILESDIR=/tmp/wx$port/wx$portname-$VERSION rm -rf $TMPFILESDIR mkdir -p $TMPFILESDIR copyfilelist $portfiles $APPDIR $TMPFILESDIR if [ $port = "msw" ]; then FILES=`find . -type f \( -path '*/CVS/*' -prune -o -exec ${SCRIPTDIR}/is_text.sh {} \; -print \)` echo "$FILES" > /tmp/textfiles fi pushd /tmp/wx$port # use DOS line endings for text files for MSW archives. if [ $port = "msw" ]; then pushd /tmp/wx$port/wx$portname-$VERSION for file in `cat /tmp/textfiles`; do unix2dos $file done popd fi echo "Creating wx$portname-$VERSION.zip..." zip $ZIPFLAGS -r -9 $DIST_DIR/wx$portname-$VERSION.zip . echo "Creating wx$portname-$VERSION.tar.gz..." tar czf $DIST_DIR/wx$portname-$VERSION.tar.gz wx$portname-$VERSION echo "Creating wx$portname-$VERSION.tar.bz2..." tar ch wx$portname-$VERSION | bzip2 -f9 > $DIST_DIR//wx$portname-$VERSION.tar.bz2 popd rm -rf /tmp/wx$port rm ${portfiles} rm /tmp/textfiles } prepareforrelease() { pushd $APPDIR echo Copying FAQ and other files from $WEBFILES cp $WEBFILES/site/faq*.htm $APPDIR/docs/html cp $WEBFILES/site/platform.htm $APPDIR/docs/html cp $WEBFILES/site/i18n.htm $APPDIR/docs/html echo Copying readme files... cp $APPDIR/docs/msw/readme.txt README-MSW.txt cp $APPDIR/docs/msw/install.txt INSTALL-MSW.txt cp $APPDIR/docs/os2/install.txt INSTALL-OS2.txt cp $APPDIR/docs/licence.txt LICENCE.txt cp $APPDIR/docs/lgpl.txt COPYING.LIB cp $APPDIR/docs/changes.txt CHANGES.txt cp $APPDIR/docs/readme.txt README.txt cp $APPDIR/docs/mgl/readme.txt $APPDIR/readme-mgl.txt cp $APPDIR/docs/mgl/install.txt $APPDIR/install-mgl.txt cp $APPDIR/docs/dfb/install.txt $APPDIR/install-dfb.txt cp $APPDIR/docs/x11/readme.txt $APPDIR/readme-x11.txt cp $APPDIR/docs/x11/install.txt $APPDIR/install-x11.txt cp $APPDIR/docs/motif/readme.txt $APPDIR/readme-motif.txt cp $APPDIR/docs/motif/install.txt $APPDIR/install-motif.txt cp $APPDIR/docs/gtk/readme.txt $APPDIR/readme-gtk.txt cp $APPDIR/docs/gtk/install.txt $APPDIR/install-gtk.txt cp $APPDIR/docs/mac/readme.txt $APPDIR/readme-mac.txt cp $APPDIR/docs/mac/install.txt $APPDIR/install-mac.txt cp $APPDIR/docs/cocoa/readme.txt $APPDIR/readme-cocoa.txt cp $APPDIR/docs/cocoa/install.txt $APPDIR/install-cocoa.txt # Now delete a few files that are unnecessary rm -f BuildSVN.txt descrip.mms rm -f setup.h_vms rm -f docs/html/wxbook.htm docs/html/roadmap.htm rm -f src/mingegcs.bat # rm -f *.spec rm -f src/gtk/descrip.mms src/motif/descrip.mms # Copy setup0.h files to setup.h # OS/2 always built with configure now # cp $APPDIR/include/wx/os2/setup0.h $APPDIR/include/wx/os2/setup.h cp $APPDIR/include/wx/msw/setup0.h $APPDIR/include/wx/msw/setup.h cp $APPDIR/include/wx/univ/setup0.h $APPDIR/include/wx/univ/setup.h # Make MSW project files always have DOS line endings. unix2dos `cat $MANIFESTDIR/vc.rsp` popd } usage() { echo "Usage: $PROGNAME [ options ]" 1>&2 echo Options: echo " --help Display this help message" echo " --wxmac Build wxMac distribution" echo " --wxmsw Build wxMSW distribution" echo " --wxos2 Build wxOS2 distribution" echo " --wxall Build wxAll zip distribution" echo " --wxbase Build wxBase zip distribution" echo " --all Build all distributions (the default)" echo " --verbose Verbose zip operation" exit 1 } # Process command line options. for i in "$@"; do case "$i" in --wxmac) SPINMAC=1; SPINALL=0 ;; --wxmsw) SPINMSW=1; SPINALL=0 ;; --wxos2) SPINOS2=1; SPINALL=0 ;; --wxall) SPINWXALL=1; SPINALL=0 ;; --wxbase) SPINBASE=1; SPINALL=0 ;; --getmakefiles) GETMAKEFILES=1; SPINALL=0 ;; --docs) SPINDOCS=1; SPINALL=0 ;; --all) SPINALL=1 ;; --verbose) VERBOSE=1 ;; *) usage exit ;; esac done doinit prepareforrelease # Do OS/2 spin if [ "$SPINOS2" = "1" ] || [ "$SPINALL" = "1" ]; then dospinport "os2" fi # Do MSW spin if [ "$SPINMSW" = "1" ] || [ "$SPINALL" = "1" ]; then dospinport "msw" fi # Do wxBase spin if [ "$SPINBASE" = "1" ] || [ "$SPINALL" = "1" ]; then dospinport "base" fi # Do wxAll spin if [ "$SPINWXALL" = "1" ] || [ "$SPINALL" = "1" ]; then dospinport "all" fi if [ "$SPINALL" = "1" ]; then dospinport "mgl" dospinport "dfb" dospinport "gtk" dospinport "x11" dospinport "motif" dospinport "mac" fi