git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27404 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			271 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			271 lines
		
	
	
		
			7.5 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#! /bin/bash
 | 
						|
# makedist.sh
 | 
						|
#
 | 
						|
# Build wxWidgets 2 for Windows distribution.
 | 
						|
# This builds all required binaries and documents before calling
 | 
						|
# zipdist.sh to make the archives.
 | 
						|
#
 | 
						|
# To use this script, you need:
 | 
						|
#
 | 
						|
# - CygWin installation, for bash etc.
 | 
						|
# - VC++ 6 or higher, to compile the binaries
 | 
						|
# - WinHelp compiler, HTML Help compiler, Tex2RTF on your path
 | 
						|
# - WISE Install 5
 | 
						|
# - Word 97 (not tested with higher versions)
 | 
						|
# - Adobe Acrobat & Distiller
 | 
						|
#
 | 
						|
# Before running this script, you will need to:
 | 
						|
#
 | 
						|
# - update the readmes, change log, manual version etc.
 | 
						|
# - update version.h
 | 
						|
# - update distrib/msw/wisetop.txt, wisebott.txt with the correct version
 | 
						|
#   number, plus any hard-wired wxWidgets paths
 | 
						|
# - test on a variety of compilers
 | 
						|
#
 | 
						|
# TODO:
 | 
						|
#
 | 
						|
# - generation of PDF (only PDF RTF generated so far)
 | 
						|
# - perhaps prompt the user to read the important release docs,
 | 
						|
#   version.h, setup.h
 | 
						|
#
 | 
						|
# Julian Smart, October 2000
 | 
						|
 | 
						|
SRC=`cygpath -u $WXWIN`
 | 
						|
DEST=$SRC/deliver
 | 
						|
TMPDIR=`cygpath -u $TEMP`
 | 
						|
OK=1
 | 
						|
DOWISE=0
 | 
						|
DOPDF=0
 | 
						|
DOALL=1
 | 
						|
DOCSONLY=0
 | 
						|
WXWINONLY=0
 | 
						|
WISEONLY=0
 | 
						|
BINONLY=0
 | 
						|
PDFONLY=0
 | 
						|
 | 
						|
# For some reason, if we pipe output to egrep, we see output, but not otherwise.
 | 
						|
WARNINGS=": decorated name|: see reference|: see declaration|C4786|VC98\\\\INCLUDE|template<>"
 | 
						|
 | 
						|
setup_vars() {
 | 
						|
    VCPATH="/c/Program Files/Microsoft Visual Studio/common/msdev98/bin:/c/Program Files/Microsoft Visual Studio/VC98/bin:DevStudio/VC/bin:/c/Program Files/Microsoft Visual Studio/common/tools:/c/Program Files/HTML Help Workshop"
 | 
						|
    INCLUDE="C:\Program Files\Microsoft Visual Studio\VC98\ATL\INCLUDE;C:\Program Files\Microsoft Visual Studio\VC98\INCLUDE;C:\Program Files\Microsoft Visual Studio\VC98\MFC\INCLUDE;C:\Program Files\Tcl\include;C:\Program Files\HTML Help Workshop\include"
 | 
						|
    LIB="C:\Program Files\Microsoft Visual Studio\VC98\lib;C:\Program Files\Microsoft Visual Studio\VC98\MFC\lib;C:\Program Files\Tcl\lib;C:\Program Files\HTML Help Workshop\lib"
 | 
						|
    TCLHOME=C:/PROGRA~1/Tcl export TCLHOME
 | 
						|
    PATH="$PATH:$VCPATH" export PATH
 | 
						|
    export INCLUDE LIB
 | 
						|
 | 
						|
    WORDEXE="/c/Program Files/Microsoft Office/Office/WINWORD.EXE"
 | 
						|
}
 | 
						|
 | 
						|
check_compile() {
 | 
						|
    egrep ": error C|fatal error" $TMPDIR/buildlog.txt > $TMPDIR/errorlog.txt
 | 
						|
    if [ -s $TMPDIR/errorlog.txt ]; then
 | 
						|
        echo Did not build $0 successfully.
 | 
						|
        OK=0
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
check_files() {
 | 
						|
    if [ ! -d "$SRC" ]; then
 | 
						|
        echo "$SRC" does not exist.
 | 
						|
        OK=0
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ ! -d "$SRC/deliver" ]; then
 | 
						|
        mkdir "$SRC/deliver"
 | 
						|
    fi
 | 
						|
 | 
						|
    if [ ! -e $SRC/include/wx/msw/setup.h ]; then
 | 
						|
        cp "$SRC/include/wx/msw/setup0.h" "$SRC/include/wx/msw/setup.h"
 | 
						|
        echo setup0.h has been copied to setup.h.
 | 
						|
        echo You must now edit this file to restore release settings,
 | 
						|
        echo then run this script again.
 | 
						|
        OK=0
 | 
						|
        notepad.exe "$SRC/include/wx/msw/setup.h"
 | 
						|
    fi
 | 
						|
    if [ ! -d "$SRC/bin" ]; then
 | 
						|
        mkdir "$SRC/bin"
 | 
						|
    fi
 | 
						|
    if [ ! -e "$SRC/bin/DBGVIEW.EXE" ]; then
 | 
						|
        echo Please put DBGVIEW.EXE, DBGVIEW.CNT, DBGVIEW.HLP into $SRC/bin
 | 
						|
        echo and run the script again.
 | 
						|
        OK=0
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
build_docs() {
 | 
						|
    cd "$SRC/src/msw"
 | 
						|
    echo "---------------------------------"
 | 
						|
    echo "Building wxWidgets documents"
 | 
						|
    nmake -f makefile.vc cleandocs docs
 | 
						|
 | 
						|
    cd "$SRC/utils/tex2rtf/src"
 | 
						|
    nmake -f makefile.vc html htmlhelp htb hlp pdfrtf
 | 
						|
 | 
						|
    cd "$SRC/contrib/src/ogl"
 | 
						|
    nmake -f makefile.vc html htmlhelp htb hlp pdfrtf
 | 
						|
 | 
						|
    cd "$SRC/contrib/src/mmedia"
 | 
						|
    nmake -f makefile.vc html htmlhelp htb hlp pdfrtf
 | 
						|
}
 | 
						|
 | 
						|
# TODO: Make PDF via Word, if Word and Adobe Acrobat are present.
 | 
						|
# This has to be interactive at present.
 | 
						|
build_pdf() {
 | 
						|
    echo "---------------------------------"
 | 
						|
    echo "Building wxWidgets PDF documents"
 | 
						|
    if [ -e "$WORDEXE" ]; then
 | 
						|
        "$WORDEXE" "$WXWIN\\docs\\pdf\\wx.rtf"
 | 
						|
        "$WORDEXE" "$WXWIN\\docs\\pdf\\tex2rtf.rtf"
 | 
						|
        "$WORDEXE" "$WXWIN\\contrib\\docs\\pdf\\ogl.rtf"
 | 
						|
        "$WORDEXE" "$WXWIN\\contrib\\docs\\mmedia\\ogl.rtf"
 | 
						|
    else
 | 
						|
        echo MS Word not present. Not doing PDF build.
 | 
						|
    fi
 | 
						|
}
 | 
						|
 | 
						|
# Build wxWidgets
 | 
						|
build_wxwin_vc() {
 | 
						|
    echo "---------------------------------"
 | 
						|
    echo "Building wxWidgets using VC++"
 | 
						|
    cd "$SRC/src"
 | 
						|
    echo Building wxWidgets Release library in `pwd`
 | 
						|
    echo Command: msdev wxvc.dsw /useenv /make "wxvc - Win32 Release" /rebuild
 | 
						|
    msdev wxvc.dsw /useenv /make "wxvc - Win32 Release" /rebuild | egrep -v "$WARNINGS"
 | 
						|
}
 | 
						|
 | 
						|
build_tex2rtf() {
 | 
						|
    echo "---------------------------------"
 | 
						|
    echo "Building Tex2RTF using VC++"
 | 
						|
    cd "$SRC/utils/tex2rtf/src"
 | 
						|
    msdev Tex2RTFVC.dsw /useenv /make "Tex2RTFVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt
 | 
						|
 | 
						|
    check_compile "Tex2RTF"
 | 
						|
}
 | 
						|
 | 
						|
build_life() {
 | 
						|
    echo "---------------------------------"
 | 
						|
    echo "Building Life! using VC++"
 | 
						|
    cd "$SRC/demos/life"
 | 
						|
    msdev LifeVC.dsw /useenv /make "LifeVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt
 | 
						|
 | 
						|
    check_compile "Life! Demo"
 | 
						|
}
 | 
						|
 | 
						|
build_executables() {
 | 
						|
    build_tex2rtf
 | 
						|
    build_life
 | 
						|
}
 | 
						|
 | 
						|
copy_files() {
 | 
						|
    cp "$SRC/utils/tex2rtf/src/Release/tex2rtf.exe" "$SRC/bin"
 | 
						|
    cp "$SRC/docs/winhelp/tex2rtf.hlp" "$SRC/docs/winhelp/tex2rtf.cnt" "$SRC/bin"
 | 
						|
 | 
						|
    cp "$SRC/demos/life/Release/life.exe" "$SRC/demos/life/breeder.lif" "$SRC/bin"
 | 
						|
}
 | 
						|
 | 
						|
# Process command line options.
 | 
						|
for i in "$@"; do
 | 
						|
    case "$i" in
 | 
						|
	--wise) DOWISE=1 ;;
 | 
						|
	--pdf) DOPDF=1 ;;
 | 
						|
	--wise-only)
 | 
						|
        WISEONLY=1
 | 
						|
        DOWISE=1
 | 
						|
        DOALL=0
 | 
						|
        ;;
 | 
						|
	--docs-only)
 | 
						|
        DOCSONLY=1
 | 
						|
        DOALL=0
 | 
						|
        ;;
 | 
						|
	--bin-only)
 | 
						|
        BINONLY=1
 | 
						|
        DOALL=0
 | 
						|
        ;;
 | 
						|
	--wxwin-only)
 | 
						|
        WXWINONLY=1
 | 
						|
        DOALL=0
 | 
						|
        ;;
 | 
						|
	--pdf-only)
 | 
						|
        PDFONLY=1
 | 
						|
        DOPDF=1
 | 
						|
        DOALL=0
 | 
						|
        ;;
 | 
						|
	*)
 | 
						|
	    echo Usage: $0 "[ options ]"
 | 
						|
        echo Generates documentation and binaries for creating a distribution,
 | 
						|
        echo and optionally generates the zip/setup.exe distribution by
 | 
						|
        echo calling zipdist.sh.
 | 
						|
        echo
 | 
						|
	    echo Options:
 | 
						|
	    echo "    --help         Display this help message"
 | 
						|
	    echo "    --wise         Additonally, build zips and setup.exe"
 | 
						|
	    echo "    --pdf          Additionally, try to generate PDF"
 | 
						|
	    echo "    --wise-only    Only do zip/setup phase"
 | 
						|
	    echo "    --wxwin-only   Only do wxWin lib building phase"
 | 
						|
	    echo "    --docs-only    Only do docs building phase"
 | 
						|
	    echo "    --pdf-only     Only do PDF building phase"
 | 
						|
	    echo "    --bin-only     Only do .exe building phase"
 | 
						|
	    exit 1
 | 
						|
	    ;;
 | 
						|
    esac
 | 
						|
done
 | 
						|
 | 
						|
mkdir -p $SRC/docs/pdf
 | 
						|
mkdir -p $SRC/docs/html
 | 
						|
mkdir -p $SRC/docs/htmlhelp
 | 
						|
mkdir -p $SRC/docs/htb
 | 
						|
mkdir -p $SRC/docs/winhelp
 | 
						|
mkdir -p $SRC/contrib/docs/pdf
 | 
						|
mkdir -p $SRC/contrib/docs/html
 | 
						|
mkdir -p $SRC/contrib/docs/htmlhelp
 | 
						|
mkdir -p $SRC/contrib/docs/htb
 | 
						|
mkdir -p $SRC/contrib/docs/winhelp
 | 
						|
 | 
						|
setup_vars
 | 
						|
check_files
 | 
						|
 | 
						|
if [ "$OK"  = "1" ]; then
 | 
						|
    if [ "$DOCSONLY" = "1" ] || [ "$DOALL" = "1" ]; then
 | 
						|
        build_docs
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$OK" = "1" ] && [ "$DOPDF" = "1" ]; then
 | 
						|
    if [ "$PDFONLY" = "1" ] || [ "$DOALL" = "1" ]; then
 | 
						|
        build_pdf
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$OK" = "1" ]; then
 | 
						|
    if [ "$WXWINONLY" = "1" ] || [ "$DOALL" = "1" ]; then
 | 
						|
        build_wxwin_vc
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$OK" = "1" ]; then
 | 
						|
    if [ "$BINONLY" = "1" ] || [ "$DOALL" = "1" ]; then
 | 
						|
        build_executables
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$OK" = "1" ]; then
 | 
						|
    copy_files
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$OK" = "1" ] && [ "$DOWISE" = "1" ]; then
 | 
						|
    if [ "$WISEONLY" = "1" ] || [ "$DOALL" = "1" ]; then
 | 
						|
        $SRC/distrib/msw/zipdist.sh --wise
 | 
						|
    fi
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$OK" = "1" ]; then
 | 
						|
    echo Finished successfully.
 | 
						|
else
 | 
						|
    echo Finished unsuccessfully. There were errors.
 | 
						|
fi
 | 
						|
 | 
						|
echo Press return to continue.
 | 
						|
read dummy
 | 
						|
 |