]> git.saurik.com Git - wxWidgets.git/blame - distrib/msw/makedist.sh
added tech note about writing unit tests
[wxWidgets.git] / distrib / msw / makedist.sh
CommitLineData
1192d9ec 1#! /bin/bash
1620f478
JS
2# makedist.sh
3#
4# Build wxWindows 2 for Windows distribution.
5# This builds all required binaries and documents before calling
6# zipdist.sh to make the archives.
7#
8# To use this script, you need:
9#
10# - CygWin installation, for bash etc.
11# - VC++ 6 or higher, to compile the binaries
12# - WinHelp compiler, HTML Help compiler, Tex2RTF on your path
13# - WISE Install 5
f1d93f0b
JS
14# - Word 97 (not tested with higher versions)
15# - Adobe Acrobat & Distiller
16#
17# Before running this script, you will need to:
18#
19# - update the readmes, change log, manual version etc.
20# - update version.h
21# - update distrib/msw/wisetop.txt, wisebott.txt with the correct version
22# number, plus any hard-wired wxWindows paths
23# - test on a variety of compilers
24#
25# TODO:
26#
27# - generation of PDF (only PDF RTF generated so far)
28# - perhaps prompt the user to read the important release docs,
29# version.h, setup.h
1620f478
JS
30#
31# Julian Smart, October 2000
32
33SRC=`cygpath -u $WXWIN`
34DEST=$SRC/deliver
35TMPDIR=`cygpath -u $TEMP`
36OK=1
37DOWISE=0
f1d93f0b
JS
38DOPDF=0
39DOALL=1
40DOCSONLY=0
41WXWINONLY=0
42WISEONLY=0
43BINONLY=0
44PDFONLY=0
45
1620f478
JS
46# For some reason, if we pipe output to egrep, we see output, but not otherwise.
47WARNINGS=": decorated name|: see reference|: see declaration|C4786|VC98\\\\INCLUDE|template<>"
48
49setup_vars() {
50 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"
51 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"
52 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"
53 TCLHOME=C:/PROGRA~1/Tcl export TCLHOME
54 PATH="$PATH:$VCPATH" export PATH
55 export INCLUDE LIB
f1d93f0b
JS
56
57 WORDEXE="/c/Program Files/Microsoft Office/Office/WINWORD.EXE"
1620f478
JS
58}
59
60check_compile() {
61 egrep ": error C|fatal error" $TMPDIR/buildlog.txt > $TMPDIR/errorlog.txt
62 if [ -s $TMPDIR/errorlog.txt ]; then
63 echo Did not build $0 successfully.
64 OK=0
65 fi
66}
67
68check_files() {
69 if [ ! -d "$SRC" ]; then
70 echo "$SRC" does not exist.
71 OK=0
72 fi
73
74 if [ ! -d "$SRC/deliver" ]; then
75 mkdir "$SRC/deliver"
76 fi
77
78 if [ ! -e $SRC/include/wx/msw/setup.h ]; then
79 cp "$SRC/include/wx/msw/setup0.h" "$SRC/include/wx/msw/setup.h"
80 echo setup0.h has been copied to setup.h.
81 echo You must now edit this file to restore release settings,
82 echo then run this script again.
83 OK=0
84 notepad.exe "$SRC/include/wx/msw/setup.h"
85 fi
86 if [ ! -d "$SRC/bin" ]; then
87 mkdir "$SRC/bin"
88 fi
f1d93f0b 89 if [ ! -e "$SRC/bin/DBGVIEW.EXE" ]; then
1620f478
JS
90 echo Please put DBGVIEW.EXE, DBGVIEW.CNT, DBGVIEW.HLP into $SRC/bin
91 echo and run the script again.
92 OK=0
93 fi
94}
95
96build_docs() {
97 cd "$SRC/src/msw"
98 echo "---------------------------------"
99 echo "Building wxWindows documents"
100 nmake -f makefile.vc cleandocs docs
101
1620f478
JS
102 cd "$SRC/utils/tex2rtf/src"
103 nmake -f makefile.vc html htmlhelp htb hlp pdfrtf
104
105 cd "$SRC/contrib/src/ogl"
106 nmake -f makefile.vc html htmlhelp htb hlp pdfrtf
107
108 cd "$SRC/contrib/src/mmedia"
f1d93f0b
JS
109 nmake -f makefile.vc html htmlhelp htb hlp pdfrtf
110}
111
112# TODO: Make PDF via Word, if Word and Adobe Acrobat are present.
113# This has to be interactive at present.
114build_pdf() {
115 echo "---------------------------------"
116 echo "Building wxWindows PDF documents"
117 if [ -e "$WORDEXE" ]; then
118 "$WORDEXE" "$WXWIN\\docs\\pdf\\wx.rtf"
f1d93f0b
JS
119 "$WORDEXE" "$WXWIN\\docs\\pdf\\tex2rtf.rtf"
120 "$WORDEXE" "$WXWIN\\contrib\\docs\\pdf\\ogl.rtf"
121 "$WORDEXE" "$WXWIN\\contrib\\docs\\mmedia\\ogl.rtf"
122 else
123 echo MS Word not present. Not doing PDF build.
124 fi
1620f478
JS
125}
126
127# Build wxWindows
128build_wxwin_vc() {
129 echo "---------------------------------"
130 echo "Building wxWindows using VC++"
131 cd "$SRC/src"
132 echo Building wxWindows Release library in `pwd`
133 echo Command: msdev wxvc.dsw /useenv /make "wxvc - Win32 Release" /rebuild
134 msdev wxvc.dsw /useenv /make "wxvc - Win32 Release" /rebuild | egrep -v "$WARNINGS"
135}
136
1620f478
JS
137build_tex2rtf() {
138 echo "---------------------------------"
139 echo "Building Tex2RTF using VC++"
140 cd "$SRC/utils/tex2rtf/src"
141 msdev Tex2RTFVC.dsw /useenv /make "Tex2RTFVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt
142
143 check_compile "Tex2RTF"
144}
145
146build_life() {
147 echo "---------------------------------"
148 echo "Building Life! using VC++"
149 cd "$SRC/demos/life"
150 msdev LifeVC.dsw /useenv /make "LifeVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt
151
152 check_compile "Life! Demo"
153}
154
155build_executables() {
1620f478
JS
156 build_tex2rtf
157 build_life
158}
159
160copy_files() {
1620f478 161 cp "$SRC/utils/tex2rtf/src/Release/tex2rtf.exe" "$SRC/bin"
f1d93f0b 162 cp "$SRC/docs/winhelp/tex2rtf.hlp" "$SRC/docs/winhelp/tex2rtf.cnt" "$SRC/bin"
1620f478 163
f1d93f0b 164 cp "$SRC/demos/life/Release/life.exe" "$SRC/demos/life/breeder.lif" "$SRC/bin"
1620f478
JS
165}
166
167# Process command line options.
168for i in "$@"; do
169 case "$i" in
170 --wise) DOWISE=1 ;;
f1d93f0b
JS
171 --pdf) DOPDF=1 ;;
172 --wise-only)
173 WISEONLY=1
174 DOWISE=1
175 DOALL=0
176 ;;
177 --docs-only)
178 DOCSONLY=1
179 DOALL=0
180 ;;
181 --bin-only)
182 BINONLY=1
183 DOALL=0
184 ;;
185 --wxwin-only)
186 WXWINONLY=1
187 DOALL=0
188 ;;
189 --pdf-only)
190 PDFONLY=1
191 DOPDF=1
192 DOALL=0
193 ;;
1620f478
JS
194 *)
195 echo Usage: $0 "[ options ]"
196 echo Generates documentation and binaries for creating a distribution,
197 echo and optionally generates the zip/setup.exe distribution by
198 echo calling zipdist.sh.
199 echo
200 echo Options:
201 echo " --help Display this help message"
f1d93f0b
JS
202 echo " --wise Additonally, build zips and setup.exe"
203 echo " --pdf Additionally, try to generate PDF"
204 echo " --wise-only Only do zip/setup phase"
205 echo " --wxwin-only Only do wxWin lib building phase"
206 echo " --docs-only Only do docs building phase"
207 echo " --pdf-only Only do PDF building phase"
208 echo " --bin-only Only do .exe building phase"
1620f478
JS
209 exit 1
210 ;;
211 esac
212done
213
214mkdir -p $SRC/docs/pdf
215mkdir -p $SRC/docs/html
216mkdir -p $SRC/docs/htmlhelp
217mkdir -p $SRC/docs/htb
f1d93f0b
JS
218mkdir -p $SRC/docs/winhelp
219mkdir -p $SRC/contrib/docs/pdf
220mkdir -p $SRC/contrib/docs/html
221mkdir -p $SRC/contrib/docs/htmlhelp
222mkdir -p $SRC/contrib/docs/htb
223mkdir -p $SRC/contrib/docs/winhelp
1620f478
JS
224
225setup_vars
226check_files
227
f1d93f0b
JS
228if [ "$OK" = "1" ]; then
229 if [ "$DOCSONLY" = "1" ] || [ "$DOALL" = "1" ]; then
230 build_docs
231 fi
232fi
233
234if [ "$OK" = "1" ] && [ "$DOPDF" = "1" ]; then
235 if [ "$PDFONLY" = "1" ] || [ "$DOALL" = "1" ]; then
236 build_pdf
237 fi
1620f478
JS
238fi
239
240if [ "$OK" = "1" ]; then
f1d93f0b
JS
241 if [ "$WXWINONLY" = "1" ] || [ "$DOALL" = "1" ]; then
242 build_wxwin_vc
243 fi
1620f478
JS
244fi
245
246if [ "$OK" = "1" ]; then
f1d93f0b
JS
247 if [ "$BINONLY" = "1" ] || [ "$DOALL" = "1" ]; then
248 build_executables
249 fi
1620f478
JS
250fi
251
252if [ "$OK" = "1" ]; then
253 copy_files
254fi
255
f1d93f0b
JS
256if [ "$OK" = "1" ] && [ "$DOWISE" = "1" ]; then
257 if [ "$WISEONLY" = "1" ] || [ "$DOALL" = "1" ]; then
258 $SRC/distrib/msw/zipdist.sh --wise
259 fi
1620f478
JS
260fi
261
262if [ "$OK" = "1" ]; then
263 echo Finished successfully.
264else
265 echo Finished unsuccessfully. There were errors.
266fi
267
268echo Press return to continue.
269read dummy
270