#!/bin/bash # --------------------------------------------------------------------------- # Build wxWidgets and wxPython on a Windows box. This is normally called # from build-all but it should be able to be used standalone too... # # The command line must have the following parameters: # # 1. the path to the base of the wx source tree # 2. the path of where to put the resulting installers # 3. skipclean flag (yes|no) # 4. the VERSION # 5. the remaining args are the versions of Python to build for # # --------------------------------------------------------------------------- set -o errexit #set -o xtrace echo "-=-=-=- Hello from $HOSTNAME -=-=-=-" if [ $# -lt 6 ]; then echo "Usage: $0 WXDIR DESTDIR SKIPCLEAN VERSION PYVER CHARTYPE" exit 1 fi WXDIR=$1 DESTDIR=$2 SKIPCLEAN=$3 VERSION=$4 PYVER=$5 CHARTYPE=$6 # WXDIR is the cygwin path, WXWIN is the DOS path WXWIN=`cygpath -w $WXDIR` export WXWIN export WXDIR export TOOLS=/cygdrive/c/TOOLS # setup the compiler if [ $PYVER = 2.3 ]; then echo "Using MSVC ver 6" . msvcset local 6 echo `which cl.exe` else echo "Using MSVC ver 7" . msvcset local 7 echo `which cl.exe` fi # untar the source echo "Unarchiving wxPython-src-$VERSION.tar.bz2" cd $DESTDIR tar xjf wxPython-src-$VERSION.tar.bz2 rm wxPython-src-$VERSION.tar.bz2 # Fix line endings echo "Converting wxPython line endings to CRLF..." cd $WXDIR names=`find wxPython -name "*.py" -o -name "*.txt" -o -name "*.htm*" -o -name "*.css" -o -name "*.xml" ` unix2dos -D $names # change to the right spot in the source tree and copy our build scripts echo "Setting up for the build..." cd $WXDIR/build/msw cp $WXDIR/wxPython/distrib/msw/.m* . chmod +x .m* # replace some settings in setup0.h and write to setup.h cat > .my.sedexpr < $WXDIR/include/wx/msw/setup.h rm .my.sedexpr echo "Building the wx DLLs..." if [ $CHARTYPE = both -o $CHARTYPE = ansi ]; then .make hybrid USE_GDIPLUS=1 fi if [ $CHARTYPE = both -o $CHARTYPE = unicode ]; then .make hybrid-uni USE_GDIPLUS=1 fi # echo "Building tex2rtf..." # cd $WXDIR/utils/tex2rtf/src # $WXDIR/build/msw/.mymake hybrid # cp vc_mswhdll/tex2rtf.exe $WXDIR/lib/vc_dll/tex2rtf.exe # echo "Translating docs to html..." # DOCDIR=$WXDIR/docs # cd $DOCDIR/latex/wx # mkdir -p $DOCDIR/html/wx # cp *.gif $DOCDIR/html/wx # cp *.css $DOCDIR/html/wx # DOCSRC=`cygpath -w $DOCDIR/latex/wx/manual.tex` # DOCDEST=`cygpath -w $DOCDIR/html/wx/wx.htm` # DOCINI=`cygpath -w $DOCDIR/latex/wx/tex2rtf_css.ini` # $WXDIR/lib/vc_dll/tex2rtf.exe $DOCSRC $DOCDEST -twice -html -macros $DOCINI # echo "Extracting html docs..." # mkdir -p $WXDIR/docs/html/wx # cd $WXDIR/docs/html/wx # rm -rf * # tar xjf $DESTDIR/wxPython-docs-$VERSION.tar.bz2 # rm $DESTDIR/wxPython-docs-$VERSION.tar.bz2 # unzip wxPython-$VERSION/docs/wx.zip echo "Building the HTMLHelp file..." cd $WXDIR/docs/html/wx ##cp $DOCDIR/latex/wx/wx.css . $TOOLS/HTMLHelpWorkshop/hhc.exe wx.hhp || true mkdir -p ../../htmlhelp mv wx.chm ../../htmlhelp echo "Building wxPython and installers..." cd $WXDIR/wxPython mkdir -p dist if [ $CHARTYPE = both -o $CHARTYPE = ansi ]; then b $PYVER d UNICODE=0 USE_SWIG=0 b $PYVER h UNICODE=0 USE_SWIG=0 EP_ADD_OPTS=1 b $PYVER r UNICODE=0 USE_SWIG=0 fi if [ $CHARTYPE = both -o $CHARTYPE = unicode ]; then b $PYVER d UNICODE=1 USE_SWIG=0 b $PYVER h UNICODE=1 USE_SWIG=0 EP_ADD_OPTS=1 b $PYVER r UNICODE=1 USE_SWIG=0 fi echo "Building the developer package..." WXWIN=`cygpath -w $WXDIR` export WXWIN $TOOLS/4dos/4nt /c distrib/makedev.bat $VERSION echo "Copying installers to $DESTDIR..." mv dist/wxPython* $DESTDIR cd $DESTDIR if [ $SKIPCLEAN != yes ]; then echo "Cleaning up..." rm -r $WXDIR || true fi echo "-=-=-=- Goodbye! -=-=-=-"