]>
Commit | Line | Data |
---|---|---|
1 | #! /bin/bash | |
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 | |
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 | |
30 | # | |
31 | # Julian Smart, October 2000 | |
32 | ||
33 | SRC=`cygpath -u $WXWIN` | |
34 | DEST=$SRC/deliver | |
35 | TMPDIR=`cygpath -u $TEMP` | |
36 | OK=1 | |
37 | DOWISE=0 | |
38 | DOPDF=0 | |
39 | DOALL=1 | |
40 | DOCSONLY=0 | |
41 | WXWINONLY=0 | |
42 | WISEONLY=0 | |
43 | BINONLY=0 | |
44 | PDFONLY=0 | |
45 | ||
46 | # For some reason, if we pipe output to egrep, we see output, but not otherwise. | |
47 | WARNINGS=": decorated name|: see reference|: see declaration|C4786|VC98\\\\INCLUDE|template<>" | |
48 | ||
49 | setup_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 | |
56 | ||
57 | WORDEXE="/c/Program Files/Microsoft Office/Office/WINWORD.EXE" | |
58 | } | |
59 | ||
60 | check_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 | ||
68 | check_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 | |
89 | if [ ! -e "$SRC/bin/DBGVIEW.EXE" ]; then | |
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 | ||
96 | build_docs() { | |
97 | cd "$SRC/src/msw" | |
98 | echo "---------------------------------" | |
99 | echo "Building wxWindows documents" | |
100 | nmake -f makefile.vc cleandocs docs | |
101 | ||
102 | cd "$SRC/utils/dialoged/src" | |
103 | nmake -f makefile.vc html htmlhelp htb hlp pdfrtf | |
104 | ||
105 | cd "$SRC/utils/tex2rtf/src" | |
106 | nmake -f makefile.vc html htmlhelp htb hlp pdfrtf | |
107 | ||
108 | cd "$SRC/contrib/src/ogl" | |
109 | nmake -f makefile.vc html htmlhelp htb hlp pdfrtf | |
110 | ||
111 | cd "$SRC/contrib/src/mmedia" | |
112 | nmake -f makefile.vc html htmlhelp htb hlp pdfrtf | |
113 | } | |
114 | ||
115 | # TODO: Make PDF via Word, if Word and Adobe Acrobat are present. | |
116 | # This has to be interactive at present. | |
117 | build_pdf() { | |
118 | echo "---------------------------------" | |
119 | echo "Building wxWindows PDF documents" | |
120 | if [ -e "$WORDEXE" ]; then | |
121 | "$WORDEXE" "$WXWIN\\docs\\pdf\\wx.rtf" | |
122 | "$WORDEXE" "$WXWIN\\docs\\pdf\\dialoged.rtf" | |
123 | "$WORDEXE" "$WXWIN\\docs\\pdf\\tex2rtf.rtf" | |
124 | "$WORDEXE" "$WXWIN\\contrib\\docs\\pdf\\ogl.rtf" | |
125 | "$WORDEXE" "$WXWIN\\contrib\\docs\\mmedia\\ogl.rtf" | |
126 | else | |
127 | echo MS Word not present. Not doing PDF build. | |
128 | fi | |
129 | } | |
130 | ||
131 | # Build wxWindows | |
132 | build_wxwin_vc() { | |
133 | echo "---------------------------------" | |
134 | echo "Building wxWindows using VC++" | |
135 | cd "$SRC/src" | |
136 | echo Building wxWindows Release library in `pwd` | |
137 | echo Command: msdev wxvc.dsw /useenv /make "wxvc - Win32 Release" /rebuild | |
138 | msdev wxvc.dsw /useenv /make "wxvc - Win32 Release" /rebuild | egrep -v "$WARNINGS" | |
139 | } | |
140 | ||
141 | build_dialog_editor() { | |
142 | echo "---------------------------------" | |
143 | echo "Building Dialog Editor using VC++" | |
144 | cd "$SRC/utils/dialoged/src" | |
145 | msdev DialogEdVC.dsw /useenv /make "DialogEdVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt | |
146 | ||
147 | check_compile "Dialog Editor" | |
148 | } | |
149 | ||
150 | build_tex2rtf() { | |
151 | echo "---------------------------------" | |
152 | echo "Building Tex2RTF using VC++" | |
153 | cd "$SRC/utils/tex2rtf/src" | |
154 | msdev Tex2RTFVC.dsw /useenv /make "Tex2RTFVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt | |
155 | ||
156 | check_compile "Tex2RTF" | |
157 | } | |
158 | ||
159 | build_life() { | |
160 | echo "---------------------------------" | |
161 | echo "Building Life! using VC++" | |
162 | cd "$SRC/demos/life" | |
163 | msdev LifeVC.dsw /useenv /make "LifeVC - Win32 Release" /rebuild | egrep -v "$WARNINGS" | tee $TMPDIR/buildlog.txt | |
164 | ||
165 | check_compile "Life! Demo" | |
166 | } | |
167 | ||
168 | build_executables() { | |
169 | build_dialog_editor | |
170 | build_tex2rtf | |
171 | build_life | |
172 | } | |
173 | ||
174 | copy_files() { | |
175 | cp "$SRC/utils/dialoged/src/Release/dialoged.exe" "$SRC/bin" | |
176 | cp "$SRC/docs/winhelp/dialoged.hlp" "$SRC/docs/winhelp/dialoged.cnt" "$SRC/bin" | |
177 | ||
178 | cp "$SRC/utils/tex2rtf/src/Release/tex2rtf.exe" "$SRC/bin" | |
179 | cp "$SRC/docs/winhelp/tex2rtf.hlp" "$SRC/docs/winhelp/tex2rtf.cnt" "$SRC/bin" | |
180 | ||
181 | cp "$SRC/demos/life/Release/life.exe" "$SRC/demos/life/breeder.lif" "$SRC/bin" | |
182 | } | |
183 | ||
184 | # Process command line options. | |
185 | for i in "$@"; do | |
186 | case "$i" in | |
187 | --wise) DOWISE=1 ;; | |
188 | --pdf) DOPDF=1 ;; | |
189 | --wise-only) | |
190 | WISEONLY=1 | |
191 | DOWISE=1 | |
192 | DOALL=0 | |
193 | ;; | |
194 | --docs-only) | |
195 | DOCSONLY=1 | |
196 | DOALL=0 | |
197 | ;; | |
198 | --bin-only) | |
199 | BINONLY=1 | |
200 | DOALL=0 | |
201 | ;; | |
202 | --wxwin-only) | |
203 | WXWINONLY=1 | |
204 | DOALL=0 | |
205 | ;; | |
206 | --pdf-only) | |
207 | PDFONLY=1 | |
208 | DOPDF=1 | |
209 | DOALL=0 | |
210 | ;; | |
211 | *) | |
212 | echo Usage: $0 "[ options ]" | |
213 | echo Generates documentation and binaries for creating a distribution, | |
214 | echo and optionally generates the zip/setup.exe distribution by | |
215 | echo calling zipdist.sh. | |
216 | echo | |
217 | echo Options: | |
218 | echo " --help Display this help message" | |
219 | echo " --wise Additonally, build zips and setup.exe" | |
220 | echo " --pdf Additionally, try to generate PDF" | |
221 | echo " --wise-only Only do zip/setup phase" | |
222 | echo " --wxwin-only Only do wxWin lib building phase" | |
223 | echo " --docs-only Only do docs building phase" | |
224 | echo " --pdf-only Only do PDF building phase" | |
225 | echo " --bin-only Only do .exe building phase" | |
226 | exit 1 | |
227 | ;; | |
228 | esac | |
229 | done | |
230 | ||
231 | mkdir -p $SRC/docs/pdf | |
232 | mkdir -p $SRC/docs/html | |
233 | mkdir -p $SRC/docs/htmlhelp | |
234 | mkdir -p $SRC/docs/htb | |
235 | mkdir -p $SRC/docs/winhelp | |
236 | mkdir -p $SRC/contrib/docs/pdf | |
237 | mkdir -p $SRC/contrib/docs/html | |
238 | mkdir -p $SRC/contrib/docs/htmlhelp | |
239 | mkdir -p $SRC/contrib/docs/htb | |
240 | mkdir -p $SRC/contrib/docs/winhelp | |
241 | ||
242 | setup_vars | |
243 | check_files | |
244 | ||
245 | if [ "$OK" = "1" ]; then | |
246 | if [ "$DOCSONLY" = "1" ] || [ "$DOALL" = "1" ]; then | |
247 | build_docs | |
248 | fi | |
249 | fi | |
250 | ||
251 | if [ "$OK" = "1" ] && [ "$DOPDF" = "1" ]; then | |
252 | if [ "$PDFONLY" = "1" ] || [ "$DOALL" = "1" ]; then | |
253 | build_pdf | |
254 | fi | |
255 | fi | |
256 | ||
257 | if [ "$OK" = "1" ]; then | |
258 | if [ "$WXWINONLY" = "1" ] || [ "$DOALL" = "1" ]; then | |
259 | build_wxwin_vc | |
260 | fi | |
261 | fi | |
262 | ||
263 | if [ "$OK" = "1" ]; then | |
264 | if [ "$BINONLY" = "1" ] || [ "$DOALL" = "1" ]; then | |
265 | build_executables | |
266 | fi | |
267 | fi | |
268 | ||
269 | if [ "$OK" = "1" ]; then | |
270 | copy_files | |
271 | fi | |
272 | ||
273 | if [ "$OK" = "1" ] && [ "$DOWISE" = "1" ]; then | |
274 | if [ "$WISEONLY" = "1" ] || [ "$DOALL" = "1" ]; then | |
275 | $SRC/distrib/msw/zipdist.sh --wise | |
276 | fi | |
277 | fi | |
278 | ||
279 | if [ "$OK" = "1" ]; then | |
280 | echo Finished successfully. | |
281 | else | |
282 | echo Finished unsuccessfully. There were errors. | |
283 | fi | |
284 | ||
285 | echo Press return to continue. | |
286 | read dummy | |
287 |