]> git.saurik.com Git - wxWidgets.git/blobdiff - distrib/scripts/msw/makesetup.sh
Forward port 2.8 fix.
[wxWidgets.git] / distrib / scripts / msw / makesetup.sh
index fe88221ddcbe52d4c18feb6c952f877af72d7e1b..cb3fe8d2c4b4248e298d029bfbcece5360a9d378 100755 (executable)
@@ -4,8 +4,6 @@
 # Example:
 # ../distrib/msw/makesetup.sh --wxmsw --verbose &> log
 
-set -o errexit
-
 # If your zip accepts Cygwin-style paths, then
 # use cygpath, else substitute echo
 CYGPATHPROG=cygpath
@@ -38,6 +36,69 @@ if [ "$VERSION" = "" ]; then
   VERSION=2.6.2
 fi
 
+getfilelist(){
+  port=$1
+  outfile=$2
+
+  filelist="base.rsp"
+  utilsfiles="tex2rtf.rsp utils.rsp utilmake.rsp"
+  commonfiles="generic.rsp generic_samples.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 mmedia.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 x11.rsp"
+  fi
+
+  if [ $port = "mgl" ] || [ $port = "all" ]; then
+    filelist="$filelist mgl.rsp"
+  fi
+
+  if [ $port = "gtk" ] || [ $port = "all" ]; then
+    filelist="$filelist gtk.rsp"
+  fi
+
+  if [ $port = "cocoa" ] || [ $port = "all" ]; then
+    filelist="$filelist cocoa.rsp"
+  fi
+
+  if [ $port = "motif" ] || [ $port = "all" ]; then
+    filelist="$filelist motif.rsp"
+  fi
+
+  if [ $port = "mac" ] || [ $port = "all" ]; then
+    filelist="$filelist mac.rsp"
+  fi
+
+  if [ $port = "all" ]; then
+    filelist="$filelist palmos.rsp"
+  fi
+
+  tempfile="/tmp/wx$port.files.in"
+  rm -f $tempfile
+  rm -f $outfile
+
+  olddir=$PWD
+  cd $MANIFESTDIR
+
+  cat $filelist > $tempfile
+
+  cd $APPDIR
+  expandlines $tempfile $outfile
+
+  cd $olddir
+}
+
 doreplace()
 {
     thefile=$1
@@ -95,6 +156,26 @@ rearchive()
     popd
 }
 
+ziptotar()
+{
+    archive=$1
+    dirname=$2
+    changeto=$3
+
+    pushd $changeto
+
+    unzip $ZIPFLAGS $archive
+
+    tar cfz $archive.tar.gz $dirname
+
+    tar -cvf $dirname | bzip2 -9 > $archive.tar.bz2
+
+    rm -rf $dirname
+
+    popd
+}
+
+
 rearchivetar()
 {
     archive=$1
@@ -134,12 +215,9 @@ dospinos2()
 {
     echo Zipping OS/2...
 
-    cd $MANIFESTDIR
-    cat generic.rsp os2.rsp jpeg.rsp tiff.rsp jpeg.rsp utils.rsp tex2rtf.rsp ogl.rsp xml.rsp contrib.rsp deprecated.rsp makefile.rsp > /tmp/os2files.in
-
     cd $APPDIR
-    expandlines /tmp/os2files.in /tmp/os2files
-    
+    getfilelist "os2" /tmp/os2files
+
     # Zip up the complete wxOS2-xxx.zip file
     zip $ZIPFLAGS -@ $DESTDIR/wxOS2-$VERSION.zip < /tmp/os2files
 
@@ -151,17 +229,6 @@ dospinos2()
     mkdir $DESTDIR/wxWidgets-$VERSION
     cd $DESTDIR/wxWidgets-$VERSION
     unzip $ZIPFLAGS ../wxOS2-$VERSION.zip
-    # No longer do this, configure should be OK
-    # echo Overwriting with OS2-specific versions of configure files...
-    # unzip $ZIPFLAGS -o $APPDIR/distrib/os2/os2-specific.zip
-    rm -f src/gtk/descrip.mms src/motif/descrip.mms docs/pdf/*.pdf
-    rm -f src/tiff/*.mcp src/jpeg/*.mcp src/png/*.mcp src/zlib/*.mcp
-    rm -f -r docs/html/tex2rtf
-
-    # echo Making OS/2 files lower case...
-    # no longer necessary
-    # $SCRIPTDIR/namedown include/wx/os2/*.H
-    # $SCRIPTDIR/namedown src/os2/*.CPP src/os2/*.I
 
     echo Copying readme files...
     cp $APPDIR/docs/os2/install.txt INSTALL-OS2.txt
@@ -175,15 +242,11 @@ dospinos2()
 dospinmsw()
 {
     echo Zipping wxMSW...
-    
-    cd $MANIFESTDIR
-    # add all the files into a megafile
-    cat generic.rsp makefile.rsp msw.rsp ogl.rsp mmedia.rsp stc.rsp tex2rtf.rsp jpeg.rsp tiff.rsp xml.rsp contrib.rsp deprecated.rsp utils.rsp utilmake.rsp univ.rsp wince.rsp palmos.rsp > /tmp/mswfiles.in
-    
+
     cd $APPDIR
 
     # now expand the wildcards to actual file names
-    expandlines /tmp/mswfiles.in /tmp/mswfiles
+    getfilelist "msw" /tmp/mswfiles
 
     # Create wxWidgets-$VERSION-win.zip which is used to create wxMSW
     echo Zipping individual components
@@ -199,12 +262,12 @@ dospinwxall()
     echo Zipping individual components
     rm -f $DESTDIR/wxWidgets-$VERSION-all.zip
 
-    # Save adding all the wxMSW files again    
+    # Save adding all the wxMSW files again
     if [ ! -f $DESTDIR/wxWidgets-$VERSION-win.zip ]; then
         dospinmsw
     fi
     cp $DESTDIR/wxWidgets-$VERSION-win.zip $DESTDIR/wxWidgets-$VERSION-all.zip
-    
+
     cat $MANIFESTDIR/cw_mac.rsp $MANIFESTDIR/vc.rsp $MANIFESTDIR/x11.rsp $MANIFESTDIR/gtk.rsp $MANIFESTDIR/cocoa.rsp $MANIFESTDIR/motif.rsp $MANIFESTDIR/mac.rsp $MANIFESTDIR/mgl.rsp $MANIFESTDIR/os2.rsp $MANIFESTDIR/palmos.rsp | sort | uniq > /tmp/all.txt
     zip $ZIPFLAGS -@ -u $DESTDIR/wxWidgets-$VERSION-all.zip < /tmp/all.txt
 
@@ -254,7 +317,7 @@ dospindocs()
 
     echo Creating $DESTDIR/wxWidgets-$VERSION-DocSource.zip
     expandlines $MANIFESTDIR/docsrc.rsp /tmp/docsources
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-DocSource.zip < /tmp/docsources 
+    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-DocSource.zip < /tmp/docsources
     rearchive wxWidgets-$VERSION-DocSource.zip wxWidgets-$VERSION $DESTDIR
 
     echo Creating $DESTDIR/wxWidgets-$VERSION-WinHelp.zip
@@ -283,16 +346,16 @@ dospindocs()
 
     echo Creating $DESTDIR/wxWidgets-$VERSION-HTMLHelp.zip
     expandlines $MANIFESTDIR/wx_chm.rsp /tmp/chmdocs
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-HTMLHelp.zip < /tmp/chmdocs 
+    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-HTMLHelp.zip < /tmp/chmdocs
     rearchive wxWidgets-$VERSION-HTMLHelp.zip wxWidgets-$VERSION $DESTDIR
 
     # Add Linuxy docs to a separate archive to be transported to Linux for the
     # Linux-based releases
     echo Creating $DESTDIR/wxWidgets-$VERSION-LinuxDocs.zip
-    
+
     cat $MANIFESTDIR/wx_html.rsp $MANIFESTDIR/wx_pdf.rsp $MANIFESTDIR/wx_htb.rsp > /tmp/linuxdocs.in
     expandlines /tmp/linuxdocs.in /tmp/linuxdocs
-    
+
     zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-LinuxDocs.zip < /tmp/linuxdocs
 
     # PDF/HTML docs that should go into the Windows setup because
@@ -303,68 +366,47 @@ dospindocs()
     rearchive wxWidgets-$VERSION-ExtraDoc.zip wxWidgets-$VERSION $DESTDIR
 }
 
-dospinmisc()
-{
+
+dospinport(){
+    port=$1
+
+    if [ $port != "all" ]; then
+        portname="`echo $port|tr '[a-z]' '[A-Z]'`"
+    else
+        portname="wxWidgets"
+    fi
+
+    echo "Zipping wx$portname..."
+
     cd $APPDIR
+    portfiles="/tmp/wx$port.files"
+    getfilelist "$port" "$portfiles"
+
+    zip $ZIPFLAGS -@ $DESTDIR/wx$portname-$VERSION.zip < $portfiles
+    zip $ZIPFLAGS -g $DESTDIR/wx$portname-$VERSION.zip LICENSE.txt COPYING.LIB CHANGES.txt README.txt
+
+    if [ $port = "msw" ] || [ $port = "all" ]; then
+        zip $ZIPFLAGS -g $DESTDIR/wx$portname-$VERSION.zip README-MSW.txt INSTALL-MSW.txt
+    fi
 
-    # zip up Univ-specific files
-    echo Creating $DESTDIR/wxWidgets-$VERSION-Univ.zip
-    expandlines $MANIFESTDIR/univ.rsp /tmp/univfiles
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-Univ.zip < /tmp/univfiles
-    rearchive wxWidgets-$VERSION-Univ.zip wxWidgets-$VERSION $DESTDIR
-
-    # VC++ project files
-    echo Creating $DESTDIR/wxWidgets-$VERSION-VC.zip
-    expandlines $MANIFESTDIR/vc.rsp /tmp/vcfiles
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-VC.zip < /tmp/vcfiles
-    rearchive wxWidgets-$VERSION-VC.zip wxWidgets-$VERSION $DESTDIR
-
-    # eVC++ project files
-    echo Creating $DESTDIR/wxWidgets-$VERSION-eVC.zip
-    expandlines $MANIFESTDIR/wince.rsp /tmp/wincefiles
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-eVC.zip < /tmp/wincefiles
-    rearchive wxWidgets-$VERSION-eVC.zip wxWidgets-$VERSION $DESTDIR
-
-    # DMC project files
-    echo Creating $DESTDIR/wxWidgets-$VERSION-DMC.zip
-    expandlines $MANIFESTDIR/dmc.rsp /tmp/dmcfiles
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-DMC.zip < /tmp/dmcfiles
-    rearchive wxWidgets-$VERSION-DMC.zip wxWidgets-$VERSION $DESTDIR
-
-    # BC++ project files
-    echo Creating $DESTDIR/wxWidgets-$VERSION-BC.zip
-    expandlines $MANIFESTDIR/bc.rsp /tmp/bcfiles
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-BC.zip < /tmp/bcfiles
-    rearchive wxWidgets-$VERSION-BC.zip wxWidgets-$VERSION $DESTDIR
-
-    # CodeWarrior project files
-    echo Creating $DESTDIR/wxWidgets-$VERSION-CW.zip
-    expandlines $MANIFESTDIR/cw.rsp /tmp/cwfiles
-    zip $ZIPFLAGS -@ $DESTDIR/wxWidgets-$VERSION-CW.zip < /tmp/cwfiles
-    rearchive wxWidgets-$VERSION-CW.zip wxWidgets-$VERSION $DESTDIR
+    if [ $port = "os2" ] || [ $port = "all" ]; then
+        zip $ZIPFLAGS -g $DESTDIR/wx$portname-$VERSION.zip INSTALL-OS2.txt
+    fi
+
+    # put all files in a wxWidgets-$VERSION subdir in the zip archive
+    rearchive wx$portname-$VERSION.zip wxWidgets-$VERSION $DESTDIR
 }
 
 dospininstaller()
 {
     cd $DESTDIR
 
-    # Put all archives for transit to Linux in a zip file
-    echo Creating $DESTDIR/wxWidgets-$VERSION-LinuxTransit.zip
-    rm -f $DESTDIR/wxWidgets-$VERSION-LinuxTransit.zip
-    zip $ZIPFLAGS $DESTDIR/wxWidgets-$VERSION-LinuxTransit.zip wxWidgets-$VERSION-LinuxDocs.zip wxWidgets-$VERSION-VC.zip wxWidgets-$VERSION-DMC.zip wxWidgets-$VERSION-eVC.zip wxWidgets-$VERSION-CW-Mac.zip
-
     rm -f -r wxWidgets-$VERSION
 
     echo Unzipping the Windows files into wxWidgets-$VERSION
 
     mkdir -p wxWidgets-$VERSION
 
-    unzip $ZIPFLAGS -o wxWidgets-$VERSION-win.zip -d .
-    unzip $ZIPFLAGS -o wxWidgets-$VERSION-VC.zip -d .
-    unzip $ZIPFLAGS -o wxWidgets-$VERSION-DMC.zip -d .
-    unzip $ZIPFLAGS -o wxWidgets-$VERSION-BC.zip -d .
-    unzip $ZIPFLAGS -o wxWidgets-$VERSION-CW.zip -d .
-
     unzip $ZIPFLAGS -o wxWidgets-$VERSION-HTMLHelp.zip
     unzip $ZIPFLAGS -o wxWidgets-$VERSION-ExtraDoc.zip
 
@@ -378,31 +420,23 @@ dospininstaller()
     rm -f BuildCVS.txt descrip.mms
     rm -f setup.h_vms
     rm -f docs/html/wxbook.htm docs/html/roadmap.htm
-    rm -f -r contrib/docs/latex/ogl
     rm -f src/mingegcs.bat
     rm -f -r distrib
     rm -f *.spec
     rm -f src/gtk/descrip.mms src/motif/descrip.mms
 
-    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/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
 
     # Disabled for now - Now cp some binary files to 'bin'
     if [ ! -d bin ]; then
         mkdir bin
     fi
-    
-    cp $APPDIR/bin/tex2rtf.exe bin
-    cp $APPDIR/bin/tex2rtf.chm bin
-    cp $APPDIR/bin/widgets.exe bin
-    cp $APPDIR/bin/life.exe bin
-    cp $APPDIR/demos/life/breeder.lif bin
-    cp $APPDIR/docs/htmlhelp/tex2rtf.chm bin
+
+    #cp $APPDIR/bin/tex2rtf.exe bin
+    #cp $APPDIR/bin/tex2rtf.chm bin
+    #cp $APPDIR/bin/widgets.exe bin
+    #cp $APPDIR/bin/life.exe bin
+    #cp $APPDIR/demos/life/breeder.lif bin
+    #cp $APPDIR/docs/htmlhelp/tex2rtf.chm bin
 
     if [ ! -d docs/pdf ]; then
         mkdir docs/pdf
@@ -417,74 +451,74 @@ dospininstaller()
     if [ "$INNO" != "0" ]; then
         echo Generating $SETUPSCRIPTNAME
         rm -f $SETUPSCRIPTNAME
-    
+
         sh $SCRIPTDIR/msw/makeinno.sh $SETUPIMAGEDIR $INNOTOP $INNOBOTTOM $SETUPSCRIPTNAME
-    
+
         if [ ! -f $SETUPSCRIPTNAME ]; then
             echo "*** Error - something went wrong with the script file generation."
             exit 1
         fi
-    
+
         # Now replace %VERSION% with the real application version, and other
         # variables
         echo Replacing variables in the setup script
         doreplace $SETUPSCRIPTNAME "s/%VERSION%/$VERSION/g"
         doreplace $SETUPSCRIPTNAME "s/%COPYRIGHTHOLDER%/$AUTHOR/g"
         doreplace $SETUPSCRIPTNAME "s/%VENDOR%/$VENDOR/g"
-    
+
         unix2dosname $READMEFILE
         doreplace $SETUPSCRIPTNAME "s;%READMEFILE%;$RETVALUE;g"
-    
+
         unix2dosname $READMEAFTERFILE
         doreplace $SETUPSCRIPTNAME "s;%READMEAFTERFILE%;$RETVALUE;g"
-    
+
         unix2dosname $LICENSEFILE
         doreplace $SETUPSCRIPTNAME "s;%LICENSEFILE%;$RETVALUE;g"
-    
+
         doreplace $SETUPSCRIPTNAME "s/%APPNAME%/$APPNAME/g"
         doreplace $SETUPSCRIPTNAME "s/%APPTITLE%/$APPTITLE/g"
-    
+
         unix2dosname $SETUPIMAGEDIR
         doreplace $SETUPSCRIPTNAME "s;%SOURCEDIR%;$RETVALUE;g"
-    
+
         unix2dosname $DESTDIR
         doreplace $SETUPSCRIPTNAME "s;%OUTPUTDIR%;$RETVALUE;g"
-    
+
         doreplace $SETUPSCRIPTNAME "s/%APPEXTENSION%/$APPEXTENSION/g"
-    
+
         # FIXME: how do we get the first name in the list?
         if [ "$MANUALFILES" != "" ]; then
             HELPFILE=`basename $MANUALFILES`
             unix2dosname $HELPFILE
             doreplace $SETUPSCRIPTNAME "s;%HELPFILE%;$RETVALUE;g"
         fi
-    
+
         rm -f $DESTDIR/setup*.* $DESTDIR/wxMSW-$VERSION-Setup.exe
-    
+
         # Inno Setup complains if this step is not done
         unix2dos --unix2dos $SETUPSCRIPTNAME
-        
+
         # Now invoke INNO compiler on the new ISS file
         # First, make a DOS filename or Inno Setup will get confused.
-    
+
         unix2dosname2 $SETUPSCRIPTNAME
         DOSFILENAME=$RETVALUE
-    
+
         # Note: the double slash is Mingw32/MSYS convention for
         # denoting a switch, that must not be converted into
         # a path (otherwise /c = c:/)
-    
+
         cd `dirname $SETUPSCRIPTNAME`
         BASESCRIPTNAME=`basename $SETUPSCRIPTNAME`
         echo Invoking Inno Setup compiler on $BASESCRIPTNAME
-    
+
         "$SETUPCOMPILER" //cc $BASESCRIPTNAME
-    
+
         if [ ! -f $DESTDIR/setup.exe ]; then
             echo "*** Error - the setup.exe was not generated."
             exit
         fi
-    
+
         cd $DESTDIR
         mv setup.exe wxMSW-$VERSION-Setup.exe
 
@@ -492,12 +526,7 @@ dospininstaller()
     # echo Putting all the setup files into a single zip archive
     # zip wxMSW-$VERSION-setup.zip readme-$VERSION.txt setup*.*
 
-    rm -f wxWidgets-$VERSION-win.zip
     rm -f wxWidgets-$VERSION-ExtraDoc.zip
-    rm -f wxWidgets-$VERSION-DMC.zip
-    rm -f wxWidgets-$VERSION-eVC.zip
-    rm -f wxWidgets-$VERSION-Univ.zip
-    rm -f wxWidgets-$VERSION-VC.zip
     rm -f wxWidgets-$VERSION-DocSource.zip
     rm -f wxWidgets-$VERSION-LinuxDocs.zip
 
@@ -507,10 +536,6 @@ dospininstaller()
 
 makesetup()
 {
-#    if [ -d $SETUPIMAGEDIR ]; then
-#        echo Removing contents of existing $SETUPIMAGEDIR
-#        rm -f -r $SETUPIMAGEDIR/*
-#    fi
 
     if [ ! -d $SETUPIMAGEDIR ]; then
         echo Making the $SETUPIMAGEDIR for preparing the setup
@@ -544,9 +569,7 @@ makesetup()
     rm -f $DESTDIR/wx*.zip
     rm -f $DESTDIR/*.htb
     rm -f $DESTDIR/ogl3*.zip
-    rm -f $DESTDIR/contrib*.zip
     rm -f $DESTDIR/tex2rtf2*.zip
-    rm -f $DESTDIR/mmedia*.zip
     rm -f $DESTDIR/jpeg*.zip
     rm -f $DESTDIR/tiff*.zip
     rm -f $DESTDIR/utils*.zip
@@ -579,6 +602,15 @@ makesetup()
     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
+
     # 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
@@ -587,39 +619,42 @@ makesetup()
 
     # Do OS/2 spin
     if [ "$SPINOS2" = "1" ] || [ "$SPINALL" = "1" ]; then
-        dospinos2
-    fi
-
-    # Do Mac spin
-    if [ "$SPINMAC" = "1" ] || [ "$SPINALL" = "1" ]; then
-        dospinmac
+        dospinport "os2" #dospinos2
     fi
 
     # Do MSW spin
     if [ "$SPINMSW" = "1" ] || [ "$SPINALL" = "1" ]; then
-        dospinmsw
+        dospinport "msw" #dospinmsw
     fi
 
     # Do wxBase spin
     if [ "$SPINBASE" = "1" ] || [ "$SPINALL" = "1" ]; then
-        dospinbase
+        dospinport "base" #dospinbase
     fi
 
     # Do wxAll spin
     if [ "$SPINWXALL" = "1" ] || [ "$SPINALL" = "1" ]; then
-        dospinwxall
+        dospinport "all" #dospinwxall
+    fi
+
+    if [ "$SPINALL" = "1" ]; then
+        dospinport "mgl"
+        dospinport "gtk"
+        dospinport "x11"
+        dospinport "motif"
+        dospinport "mac"
+        dospinport "cocoa"
+        #dospinwxall
     fi
 
+
     # Do docs spin
     if [ "$SPINDOCS" = "1" ] || [ "$SPINALL" = "1" ]; then
         dospindocs
     fi
 
-    # Do misc files spin
-    dospinmisc
-
     docopydocs $APPDIR $DESTDIR
-    
+
     # Time to regenerate the Inno Install script
     dospininstaller
 }