1 | SccsID: %Z% %M% %I% %E% %U% |
---|
2 | |
---|
3 | Widget Creation Library Version 2.5 Build Instructions |
---|
4 | ------------------------------------------------------- |
---|
5 | |
---|
6 | |
---|
7 | SNI AP Build Instructions |
---|
8 | ------------------------- |
---|
9 | |
---|
10 | Simply execute the SniAp_Indigo or SniAp_SVR4 scripts as a user |
---|
11 | with write permission to /CommonTools. These scripts install the |
---|
12 | libraries and resource interpreters in /CommonTools and in the |
---|
13 | standard locations (/usr/bin and /usr/lib on SVR4, /usr/X11/bin and |
---|
14 | /usr/X11/lib on Indigo). |
---|
15 | |
---|
16 | |
---|
17 | |
---|
18 | Imakefiles and MakeByHand Makefiles |
---|
19 | ----------------------------------- |
---|
20 | |
---|
21 | Both Imakefiles and hand-built (MakeByHand) Makefiles are provided. |
---|
22 | |
---|
23 | If imake works on your machine, then USE IT! The hand-built makefiles |
---|
24 | work, but they are not any where near as convenient nor powerful. |
---|
25 | Imakefiles are a far better way to go. Bitch to your system |
---|
26 | administrator and/or hardware/software vendor if imake does not work on |
---|
27 | your machine. |
---|
28 | |
---|
29 | If using Imake, all Wcl build and install paramters are pulled from a |
---|
30 | file named Wc.tmpl. There are many comments. You probably only need |
---|
31 | to edit the list of widgets, and the X release. |
---|
32 | |
---|
33 | If you don't have Imake, then you should use the MakeByHand files. |
---|
34 | MakeByHand is controlled by files named WcMake1.tmpl, WcMake2.tmpl, |
---|
35 | WcMakeC.tmpl, and WcMakeL.tmpl. You should never have to edit the |
---|
36 | WcMakeC.tmpl or WcMakeL.tmpl files. You probably can simply choose the |
---|
37 | WcMake1* and WcMake2* which is closest to your platform, and make |
---|
38 | symbolic links names WcMake1.tmpl and WcMake2.tmpl. |
---|
39 | |
---|
40 | There are scripts named makeSun, makeSVR4, and so on which you can use |
---|
41 | to make log files of the builds. The file names are time stamps, which |
---|
42 | means they can collide if the make goes REALLY fast (sometimes between |
---|
43 | makeSun install and makeSun install.man). You probably want to wait |
---|
44 | a minute between the makes so the names do not collide. |
---|
45 | |
---|
46 | makeSun BSD-ish system, including Sun and Indigo |
---|
47 | makeSV SVR3 or SVR4 |
---|
48 | makeSCO SCO |
---|
49 | makeSNISVR4 SNI SVR4 |
---|
50 | |
---|
51 | There are three make targets you will probably use: World, install, and |
---|
52 | install.man. Also, you can clean after installing. |
---|
53 | |
---|
54 | ------------------------------------------------------------------------- |
---|
55 | | NOTE: OpenLook is not based on R5, so you must use MakeByHand, and | |
---|
56 | | not Imake, to build libWc, libXol, and Ori for OpenLook. Wcl and | |
---|
57 | | the resource interpreters are Xt Intrinsics version dependent. If | |
---|
58 | | you have different versions of libXt on your system, then you need | |
---|
59 | | different versions of libWc on your system. This IS supported! | |
---|
60 | ------------------------------------------------------------------------- |
---|
61 | |
---|
62 | |
---|
63 | Using Imake with X11R5 or X11R4 |
---|
64 | =============================== |
---|
65 | |
---|
66 | |
---|
67 | Quick Example: Sun with X11R5 and Motif |
---|
68 | --------------------------------------- |
---|
69 | % xmkmf |
---|
70 | % makeSun World |
---|
71 | % setenv LD_LIBRARY_PATH ./Xmp:./Xp:./Wc:$LD_LIBRARY_PATH |
---|
72 | % setenv PATH ./Ari:./Mri:$PATH |
---|
73 | % Ari -rf Ari/Demo |
---|
74 | % Mri -rf Mri/Demo |
---|
75 | |
---|
76 | |
---|
77 | The Real Scoop |
---|
78 | ============== |
---|
79 | |
---|
80 | The Wc.tmpl file is used to provide all imake parameters which are |
---|
81 | important to building Wcl. All you should ever need to do is change |
---|
82 | the X11 release you have (about line 38) and the sets of widgets you |
---|
83 | have (about line 52). |
---|
84 | |
---|
85 | % vi Wc.tmpl |
---|
86 | <change lines 38 and 52> |
---|
87 | |
---|
88 | NOTE: Even if you have R5, you probably do NOT have an R5 |
---|
89 | compatible version of libXol. Therefore, you very likely |
---|
90 | must leave HaveOpenLookWidgetSet set to NO. More to come... |
---|
91 | |
---|
92 | To build, do this (substitute makeSun with the appropriate make logging |
---|
93 | script, or just use make): |
---|
94 | |
---|
95 | % xmkmf |
---|
96 | % makeSun World |
---|
97 | |
---|
98 | Now test the distribution. On SunOS and SVR4 machines, you need to |
---|
99 | be certain you are using the newly built local libraries: |
---|
100 | |
---|
101 | % setenv LD_LIBRARY_PATH ./Xmp:./Xp:./Wc:$LD_LIBRARY_PATH |
---|
102 | -or- |
---|
103 | % LD_LIBRARY_PATH=./Xmp:./Xp:./Wc:$LD_LIBRARY_PATH |
---|
104 | % export LD_LIBRARY_PATH |
---|
105 | |
---|
106 | Change the path, as the Demos will spawn more instances of Ari and/or |
---|
107 | Mri, and start the resource interpreter demos for one or both of |
---|
108 | Athena and Motif widget sets (whichever you have). |
---|
109 | |
---|
110 | % setenv PATH ./Ari:./Mri:$PATH |
---|
111 | -or- |
---|
112 | % PATH=./Ari:./Mri:$PATH |
---|
113 | |
---|
114 | % Ari -rf Ari/Demo |
---|
115 | % Mri -rf Mri/Demo |
---|
116 | |
---|
117 | On R5, all the demos should work. The demo interfaces may suggest that |
---|
118 | there are problems with certain versions of Motif. Also, the Template and |
---|
119 | PerTem demos for Mri will NOT work correctly unless you have X11R5 patch |
---|
120 | level 16 or later. |
---|
121 | |
---|
122 | If anything seems strange, you can test the distribution in more detail |
---|
123 | by compiling the Mri/Test program and using the Wc* resource files in |
---|
124 | the Mri subdirectory. By default, debug versions of the Wcl libraries |
---|
125 | are built, and if you have Mri, then Mri/Test is built. Assuming you |
---|
126 | have Motif, you can do this: |
---|
127 | |
---|
128 | % cd Mri |
---|
129 | % dbx Test |
---|
130 | dbx> run -rf WcAll |
---|
131 | |
---|
132 | There are targets useful for Saber-C (codecenter or objectcenter) |
---|
133 | in the Makefile. You can do this in objectcenter: |
---|
134 | |
---|
135 | % xobjectcenter& |
---|
136 | C++> make Saber |
---|
137 | C> run -rf WcAll |
---|
138 | |
---|
139 | If everything works OK, then you can install. You probably need to be |
---|
140 | superuser to install. |
---|
141 | |
---|
142 | % su |
---|
143 | Password: |
---|
144 | # ./makeSun install |
---|
145 | # ./makeSun install.man |
---|
146 | |
---|
147 | |
---|
148 | Sun with OpenWindows |
---|
149 | -------------------- |
---|
150 | |
---|
151 | No imake with openwin for some reason, but the MakeByHand system works |
---|
152 | well. You should be able to use WcMake1.sun and WcMake2.sun without |
---|
153 | any edits to create an OpenLook specific version of Wcl, and to create |
---|
154 | Ori. |
---|
155 | |
---|
156 | NOTE: if you have X11R5 and OW, you MUST NOT create Ari by editing |
---|
157 | WcMake1.tmpl and uncommenting the WcATHENA define. You MUST create |
---|
158 | Ari using imake and R5. This means you need to make and install both |
---|
159 | an R5 version of Wcl for R5 Athena, AND an openwindows version of |
---|
160 | Wcl for Ori. |
---|
161 | |
---|
162 | % ln -s WcMake1.sun WcMake1.tmpl |
---|
163 | % ln -s WcMake2.sun WcMake2.tmpl |
---|
164 | % makeSun -f MakeByHand World |
---|
165 | |
---|
166 | You can test the Ori open look resource interpreter like this: |
---|
167 | |
---|
168 | % setenv LD_LIBRARY_PATH ./Xop:./Wc:/usr/openwin/lib:$LD_LIBRARY_PATH |
---|
169 | % setenv PATH ./Ori:$PATH |
---|
170 | % Ori/Ori -rf Ori/Demo |
---|
171 | |
---|
172 | NOTE: The Ori/ScrollingListDemo does not work, I am hoping that someone |
---|
173 | will fix it, so I have left it in the distribution. With some of the |
---|
174 | Ori examples you might get warnings "OPEN LOOK Toolkit Warning in |
---|
175 | application "Ori": Invalid XtNlabelJustify value: Using OL_LEFT as |
---|
176 | default." which I suppose you can ignore. This message simply points |
---|
177 | out the limitations of some of the Xol string-to-resource converters |
---|
178 | which will probably be improved over time. |
---|
179 | |
---|
180 | If all the demos work OK otherwise, then install. By default, |
---|
181 | WcMake1.tmpl installs into /usr/openwin. Edit the lines about 37 to |
---|
182 | install where you like. You probably need to be root to install. |
---|
183 | |
---|
184 | % su |
---|
185 | Password: |
---|
186 | # ./makeSun -f MakeByHand install |
---|
187 | # ./makeSun -f MakeByHand install.man |
---|
188 | |
---|
189 | |
---|
190 | |
---|
191 | IRIX SVR3 with X11R4 and Motif 1.1.3 |
---|
192 | ----------------------------------- |
---|
193 | % xmkmf |
---|
194 | % makeSun World |
---|
195 | |
---|
196 | Test the distribution. Ari for Athena and Mro for Motif should |
---|
197 | have been built: |
---|
198 | |
---|
199 | % setenv PATH ./Ari:./Mri:$PATH |
---|
200 | % Ari -rf Ari/Demo |
---|
201 | % Mri -rf Mri/Demo |
---|
202 | |
---|
203 | Everything should work except the PerTem and Template demos in |
---|
204 | Mri, since these both require X11R5. |
---|
205 | |
---|
206 | If everything seems to work, then install. If you have a previous |
---|
207 | version of Wcl on your SGI machine, first remove the include |
---|
208 | directories. You may also need to make /usr/man/mann for the man |
---|
209 | pages. |
---|
210 | |
---|
211 | % su |
---|
212 | Password: |
---|
213 | # rm -rf /usr/include/X11/Wc |
---|
214 | # rm -rf /usr/include/X11/Xmp |
---|
215 | # rm -rf /usr/include/X11/Xp |
---|
216 | # ./makeSun install |
---|
217 | |
---|
218 | <wait a minute so the log file names created by makeSun do not collide> |
---|
219 | |
---|
220 | # mkdir /usr/man/mann |
---|
221 | # chmod ugo+rx /usr/man/mann |
---|
222 | # ./makeSun install.man |
---|
223 | |
---|
224 | |
---|
225 | SNI SVR4 with X11R5 and Motif |
---|
226 | ----------------------------- |
---|
227 | % xmkmf |
---|
228 | % makeSNISVR4 World |
---|
229 | % LD_LIBRARY_PATH=./Xmp:./Xp:./Wc:$LD_LIBRARY_PATH |
---|
230 | % export LD_LIBRARY_PATH |
---|
231 | % PATH=./Mri:./Ari:$PATH |
---|
232 | % export PATH |
---|
233 | % Ari -rf Ari/Demo |
---|
234 | % Mri -rf Mri/Demo |
---|
235 | % su |
---|
236 | Password: |
---|
237 | # ./makeSNISVR4 install |
---|
238 | # ./makeSNISVR4 install.man |
---|
239 | |
---|
240 | |
---|
241 | SVR4 with X11R4 and Motif - static libraries |
---|
242 | -------------------------------------------- |
---|
243 | % ln -s WcMake1.svr4-a WcMake1.tmpl |
---|
244 | % ln -s WcMake2.svr4-a WcMake2.tmpl |
---|
245 | <edit WcMake1.tmpl line 24 if you do have Athena widgets> |
---|
246 | % makeSV -f MakeByHand World |
---|
247 | % PATH=./Mri:./Ari:$PATH |
---|
248 | % export PATH |
---|
249 | % Ari -rf Ari/Demo |
---|
250 | % Mri -rf Mri/Demo |
---|
251 | % su |
---|
252 | Password: |
---|
253 | # ./makeSV -f MakeByHand install |
---|
254 | # ./makeSV -f MakeByHand install.man |
---|
255 | |
---|
256 | |
---|
257 | |
---|
258 | SVR4 with X11R4 and Motif - shared libraries |
---|
259 | -------------------------------------------- |
---|
260 | |
---|
261 | % ln -s WcMake1.svr4 WcMake1.tmpl |
---|
262 | % ln -s WcMake2.svr4 WcMake2.tmpl |
---|
263 | <edit WcMake1.tmpl line 24 if you do have Athena widgets> |
---|
264 | % makeSV -f MakeByHand World |
---|
265 | % LD_LIBRARY_PATH=./Xmp:./Xp:./Wc:$LD_LIBRARY_PATH |
---|
266 | % export LD_LIBRARY_PATH |
---|
267 | % PATH=./Mri:./Ari:$PATH |
---|
268 | % export PATH |
---|
269 | % Ari -rf Ari/Demo |
---|
270 | % Mri -rf Mri/Demo |
---|
271 | % su |
---|
272 | Password: |
---|
273 | # ./makeSV -f MakeByHand install |
---|
274 | # ./makeSV -f MakeByHand install.man |
---|
275 | |
---|
276 | |
---|
277 | |
---|
278 | SCO ODT SVR3 with Motif 1.0 |
---|
279 | --------------------------- |
---|
280 | |
---|
281 | Sorry, but this is not very well supported. You will need to edit |
---|
282 | 6 of the resource files in the Mri sub-directory, un-commenting |
---|
283 | the resource specification line or lines following the comment lines: |
---|
284 | |
---|
285 | ! for old Motif 1.0 |
---|
286 | |
---|
287 | The files you must edit are Mri/Dialogs, Mri/Goodbye, Mri/Menubar, |
---|
288 | Mri/Periodic, Mri/Wc, and Mri/WcAll. It will only take a moment... |
---|
289 | |
---|
290 | Then, build as follows: |
---|
291 | |
---|
292 | % mv WcMake1.sco WcMake1.tmpl |
---|
293 | % mv WcMake2.sco WcMake2.tmpl |
---|
294 | % makeSCO -f MakeByHand World |
---|
295 | % PATH=./Mri:./Ari:$PATH |
---|
296 | % export PATH |
---|
297 | % Mri -rf Mri/Demo |
---|
298 | % su |
---|
299 | Password: |
---|
300 | # ./makeSCO -f MakeByHand install |
---|
301 | # ./makeSCO -f MakeByHand install.man |
---|
302 | |
---|
303 | |
---|
304 | Interactive 3.0.1 |
---|
305 | ----------------- |
---|
306 | |
---|
307 | This is supported only because someone (J.J.Bailey, |
---|
308 | jjb@jagware.acco.com) sent me the WcMake1 and WcMake2 files for ISC. I |
---|
309 | cannot test this, but you should be able to build as follows: |
---|
310 | |
---|
311 | % rm WcMake1.tmpl WcMake2.tmpl |
---|
312 | % ln -s WcMake1.isc WcMake1.tmpl |
---|
313 | % ln -s WcMake2.isc WcMake2.tmpl |
---|
314 | % makeSCO -f MakeByHand World |
---|
315 | % PATH=./Mri:./Ari:$PATH |
---|
316 | % export PATH |
---|
317 | % Mri -rf Mri/Demo |
---|
318 | % su |
---|
319 | Password: |
---|
320 | # ./makeSCO -f MakeByHand install |
---|
321 | # ./makeSCO -f MakeByHand install.man |
---|
322 | |
---|
323 | AIX |
---|
324 | --- |
---|
325 | |
---|
326 | Fairly smooth. I've only got one AIX machine... |
---|
327 | |
---|
328 | % rm WcMake1.tmpl WcMake2.tmpl |
---|
329 | % ln -s WcMake1.aix WcMake1.tmpl |
---|
330 | % ln -s WcMake2.aix WcMake2.tmpl |
---|
331 | % makeSV -f MakeByHand World |
---|
332 | % PATH=./Mri:$PATH |
---|
333 | % export PATH |
---|
334 | % Mri -rf Mri/Demo |
---|
335 | % su |
---|
336 | Password: |
---|
337 | # ./makeSV -f MakeByHand install |
---|
338 | # ./makeSV -f MakeByHand install.man |
---|
339 | |
---|
340 | |
---|
341 | |
---|
342 | ESIX |
---|
343 | ---- |
---|
344 | |
---|
345 | The Imake system has some problems on some ESIX platforms. First, |
---|
346 | try imake. If you have problems, look at the file ESIX for suggested |
---|
347 | fixes to the Makefiles generated by the ESIX imake. |
---|
348 | |
---|
349 | |
---|
350 | POTENTIAL PROBLEMS |
---|
351 | ------------------ |
---|
352 | |
---|
353 | If using SunOS 4.1.2 and X11R4 (fixes 1-18), then you may have |
---|
354 | a problem linking Ari: |
---|
355 | |
---|
356 | ld: Undefined symbol |
---|
357 | _get_wmShellWidgetClass |
---|
358 | _get_applicationShellWidgetClass |
---|
359 | |
---|
360 | A solution is to statically link libXmu.a, for example, add: |
---|
361 | |
---|
362 | XMULIB = /usr/lib/libXmu.a |
---|
363 | |
---|
364 | to your Wc.tmpl. |
---|
365 | |
---|
366 | If you get an undefined symbol error for XtSetDefaultFilePredicate, |
---|
367 | then you somehow have -DXTRACEFILEHACKS passed to cc, and you don't |
---|
368 | have a specially hacked Xt. Remove this flag. |
---|
369 | |
---|
370 | If you get undefined symbol errors for __XtFree, __XtMalloc, __XtCalloc |
---|
371 | then you somehow have -DXTTRACEMEMORY passed to cc, and you don't have |
---|
372 | a specially built Xt. Note that if you have -DXTTRACEMEMORY set when |
---|
373 | you build Xt, you really should build all libraries on top of Xt |
---|
374 | (widget libraries, Wcl, the client) also using -DXTTRACEMEMORY. Hardly |
---|
375 | anyone does this, but I think it is worthwhile for debugging. |
---|
376 | |
---|
377 | You never NEED to build the Stuff directory (it is never installed). |
---|
378 | The Mri/Test resource files can make use of the Stuff library for |
---|
379 | testing dynamic linking of callbacks. Comment out the references to |
---|
380 | Stuff at about line 289 in Wc.tmpl and about line 72 in WcMake1.tmpl |
---|
381 | to disable doing anything with Stuff. |
---|
382 | |
---|
383 | |
---|
384 | |
---|
385 | |
---|
386 | Passing Wcl on to others |
---|
387 | ------------------------ |
---|
388 | |
---|
389 | As mentioned in the Wcl copyright (see the COPY.h include file) the entire |
---|
390 | Wcl distribution can be given to others. In order to make this easy, the |
---|
391 | hand-built Makefile has targets for making compressed tarfiles: |
---|
392 | |
---|
393 | % make -f MakeByHand tar.Z |
---|
394 | |
---|
395 | _____________________________________________________________________ |
---|
396 | | David E. Smyth David.E.Smyth@jpl.nasa.gov |_ |
---|
397 | |_____________________________________________________________________| | |
---|
398 | | Project: Mars Pathfinder -- Low Cost Lander with "Rocky IV" Rover | | |
---|
399 | | Team: Flight Software -- Object-Oriented Software for Mars | | |
---|
400 | |_____________________________________________________________________| | |
---|
401 | | Voice: (818) 393-7944 | | |
---|
402 | | FAX: (818) 393-0530 | | |
---|
403 | | Office: Space Flight Operations Facility 230/207a | | |
---|
404 | | Snail: JPL, MS 230-200, 4800 Oak Grove Dr., Pasadena, CA 91109 | | |
---|
405 | |_____________________________________________________________________| | |
---|
406 | |_____________________________________________________________________| |
---|