wxWidgets/wxPython/distrib/all/do-build-windows
2006-10-11 06:44:51 +00:00

169 lines
4.3 KiB
Bash
Executable File

#!/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 <<EOF
s/wxDIALOG_UNIT_COMPATIBILITY *1/wxDIALOG_UNIT_COMPATIBILITY 0/g
s/wxUSE_EXCEPTIONS *1/wxUSE_EXCEPTIONS 0/g
s/wxUSE_DEBUG_CONTEXT *0/wxUSE_DEBUG_CONTEXT 1/g
s/wxUSE_MEMORY_TRACING *0/wxUSE_MEMORY_TRACING 1/g
s/wxUSE_DIALUP_MANAGER *1/wxUSE_DIALUP_MANAGER 0/g
s/wxUSE_GLCANVAS *0/wxUSE_GLCANVAS 1/g
s/wxUSE_POSTSCRIPT *0/wxUSE_POSTSCRIPT 1/g
s/wxUSE_AFM_FOR_POSTSCRIPT *1/wxUSE_AFM_FOR_POSTSCRIPT 0/g
s/wxUSE_DISPLAY *0/wxUSE_DISPLAY 1/g
s/wxUSE_DIB_FOR_BITMAP *0/wxUSE_DIB_FOR_BITMAP 1/g
s/wxUSE_DEBUGREPORT *1/wxUSE_DEBUGREPORT 0/g
s/wxUSE_GRAPHICS_CONTEXT *0/wxUSE_GRAPHICS_CONTEXT 1/g
EOF
cat $WXDIR/include/wx/msw/setup0.h | sed -f .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! -=-=-=-"