]>
Commit | Line | Data |
---|---|---|
5de9c45c JS |
1 | wxWindows 2.0 for Motif installation |
2 | ------------------------------------ | |
3 | ||
dbda9e86 JS |
4 | IMPORTANT NOTE: If you experience problems installing, please |
5 | re-read this instructions and other related files (todo.txt, | |
6 | bugs.txt etc.) carefully before mailing wxwin-users or | |
7 | the author. Preferably, try to fix the problem first and | |
8 | then send a patch to the author. | |
9 | ||
44c4a334 JS |
10 | - Prerequisites: Motif 1.2 or above, or Lesstif |
11 | (not yet tested). Motif 2.0 and above may also be suitable. | |
5de9c45c JS |
12 | |
13 | - Download the files wx200gen.zip and wx200mot.zip, and | |
14 | documentation in a preferred format, such as wx200htm.zip | |
15 | or wx200pdf.zip. | |
16 | ||
17 | - Make a directory such as ~/wx and unzip the files into this | |
18 | directory. Use the -a option if available to convert the ASCII | |
19 | files to Unix format. Don't worry about files being | |
20 | overwritten: they should be identical anyway. | |
21 | ||
98ffbab9 JS |
22 | (See http://www.cdrom.com/pub/infozip/ if you don't have zip/unzip |
23 | already installed. Zip isn't the same as gzip!) | |
24 | ||
acbd13a3 JS |
25 | - It is recommended that you install bison and flex; using yacc |
26 | and lex may require tweaking of the makefiles. You also need | |
27 | Xpm (see comments in the Notes section below). | |
28 | ||
29 | - You now have the option of using the configure-based system, | |
30 | or the simple makefile system. Configure is more hard to debug | |
31 | if things go wrong, but may be easier to use if they go OK :-) | |
32 | Makefiles are easier to tweak. | |
33 | ||
44c4a334 | 34 | COMPILING USING CONFIGURE |
acbd13a3 | 35 | ========================= |
44c4a334 JS |
36 | |
37 | - You can use the wxGTK configure system to make wxMotif, or | |
38 | you can follow the following steps to use the simpler (but | |
39 | less automatic) makefile system. If using configure, the | |
40 | following script should make the library and samples, when | |
8870c26e JS |
41 | run from the top-level wxWindows directory (see also 'makewxmotif' |
42 | in this directory). Make this script executable with the command | |
43 | chmod a+x makewxmotif. | |
44 | ||
45 | -------:x-----Cut here-----:x----- | |
46 | # makewxmotif | |
47 | # Sets permissions (in case we extracted wxMotif from zip files) | |
48 | # and makes wxMotif. | |
49 | # Call from top-level wxWindows directory. | |
50 | # Note that this uses standard (but commonly-used) configure options; | |
51 | # if you're feeling brave, you may wish to compile with threads. | |
52 | # -- Julian Smart | |
53 | chmod a+x configure config.sub config.guess setup/general/* setup/shared/* | |
54 | ./configure --with-shared --with-motif --without-gtk --with-debug_flag --with-debug_info --without-threads | |
55 | make makefiles | |
44c4a334 | 56 | make |
8870c26e JS |
57 | -------:x-----Cut here-----:x----- |
58 | ||
59 | This script will build wxMotif using shared libraries. | |
60 | ||
61 | - Change directory to a sample e.g. samples/minimal, and type make. | |
62 | The binary will end up under the Linux (or other appropriate) subdirectory. | |
63 | ||
64 | - To build an application outside the wxWindows hierarchy, you can | |
65 | use `wx-config --cflags` when compiling source files and `wx-config --libs` | |
66 | when linking, where wx-config is in the wxWindows root directory. | |
67 | These invocations return the appropriate flags for the compiler. | |
68 | ||
69 | - When compiling certain utilities such as Dialog Editor, you may find | |
70 | that the makefile refers to wx-config as above. Unless you have used | |
71 | "make install" to install wxWindows, wx-config won't be found, so | |
72 | either edit the makefile to hard-wire the flags, or place wx-config | |
73 | where it will be found by the makefile. | |
44c4a334 JS |
74 | |
75 | COMPILING USING MAKEFILES | |
acbd13a3 | 76 | ========================= |
44c4a334 JS |
77 | |
78 | - Choose a .env file from src/makeenvs that matches your | |
79 | environment, and copy it to src/make.env. These are the | |
80 | settings read by wxWindows for Motif makefiles. | |
81 | ||
5de9c45c | 82 | - Edit src/make.env to change options according to your local |
ea57084d | 83 | environment. In particular, change WXDIR to where wxWindows is |
5dcf05ae JS |
84 | found on your system, or set the WXWIN environment variable |
85 | before compilation, e.g.: | |
86 | ||
87 | export WXWIN=/home/jacs/wx2 | |
88 | ||
5de9c45c JS |
89 | Please feel free to contribute settings files for your environment. |
90 | ||
91 | - Change directory to src/motif and type: | |
92 | ||
93 | make -f makefile.unx motif | |
94 | ||
95 | This should make the library libwx_motif.a in the lib | |
8870c26e JS |
96 | directory. Note that this makefile system does not build shared |
97 | libraries, only static ones (that is, the wxWindows library will be | |
98 | linked statically; to see remaining dependencies on shared libraries, | |
99 | type e.g. ldd minimal_motif). | |
5de9c45c JS |
100 | |
101 | - Make a sample, such as the minimal sample: | |
102 | ||
103 | cd samples/minimal | |
104 | make -f makefile.unx motif | |
105 | ||
106 | and run the resulting minimal_motif binary. | |
107 | ||
750b78ba JS |
108 | Troubleshooting |
109 | --------------- | |
110 | ||
111 | - If you have trouble compiling the file y_tab.c, or have strange | |
112 | linking errors, check whether you're using a C or C++ compiler for this file. | |
113 | You should specify a C compiler in the CCLEX variable in src/make.env. | |
114 | You could also try using bison and flex instead of yacc and | |
115 | lex. | |
116 | ||
117 | - Solaris compilation with gcc: if the compiler has problems with the variable argument | |
118 | functions, try putting the gcc fixinclude file paths early in the | |
119 | include path. | |
120 | ||
0492c5a0 JS |
121 | - If you operator-related compile errors or strange memory problems |
122 | (for example in deletion of string arrays), set wxUSE_GLOBAL_MEMORY_OPERATORS | |
123 | and wxUSE_MEMORY_TRACING to 0 in setup.h, and recompile. | |
cba2db0c | 124 | |
ca5c8b2d JS |
125 | - If you get an internal compiler error in gcc, turn off |
126 | optimisations. | |
127 | ||
cba2db0c JS |
128 | - Problems with XtDestroyWidget crashing in ~wxWindow have been |
129 | reported on SGI IRIX 6.4. This has not yet been resolved, so | |
130 | any advice here would be very welcome. See bugs.txt for a | |
0492c5a0 JS |
131 | possible temporary workaround (comment out the final |
132 | XtDestroyWidget from ~wxWindow in window.cpp). | |
cba2db0c | 133 | |
ad813b00 JS |
134 | - If you use flex and bison instead of yacc and lex, you may need |
135 | to change the relevant part of src/motif/makefile.unx to read: | |
136 | ||
137 | ../common/y_tab.c: ../common/parser.y | |
138 | $(YACC) ../common/parser.y | |
139 | mv ../common/parser.tab.c ../common/y_tab.c | |
140 | ||
141 | (the 'mv' command needs to be changed) | |
142 | ||
143 | - Some compilers, such as Sun C++, may give a lot of warnings about | |
144 | virtual functions being hidden. Please ignore these, it's correct C++ syntax. | |
145 | If you find any incorrect instances, though, such as a | |
146 | missing 'const' in an overridden function, please let us know. | |
147 | ||
750b78ba JS |
148 | Other Notes |
149 | ----------- | |
5de9c45c JS |
150 | |
151 | - Better installation and makefile systems are | |
8870c26e | 152 | required. A revised configure system is in preparation. |
5de9c45c | 153 | |
ea57084d | 154 | - Debugging mode is switched on by default. To compile in non-debug |
8870c26e JS |
155 | mode, remove the -D__WXDEBUG__ switch in make.env (or if using the |
156 | configure system, change --with-debug_flag to --without_debug_flag | |
157 | and --with-debug_info to --without-debug_info in the makewxmotif | |
158 | script). | |
ea57084d | 159 | |
5de9c45c JS |
160 | - Some classes can be switched off in include/wx/motif/setup.h, |
161 | if you are having trouble with a particular file. However, | |
162 | I'd prefer you to fix the problem and send the fix to me :-) or at | |
163 | least let me know about it. | |
b412f9be JS |
164 | |
165 | - Thread support is switched off by default in setup.h (wxUSE_THREADS) | |
166 | because standard Unices often do not have the necessary thread library | |
167 | installed. Please see ../docs/gtk/install.txt for more details on this. | |
168 | For Linux, the problem is expected to go away with future | |
169 | distributions of the operating system. | |
5de9c45c | 170 | |
2243eed5 JS |
171 | - If you run into problems with a missing X11/Xpm.h header, you |
172 | need to install the XPM package. It can be obtained from: | |
173 | ||
174 | ftp://ftp.x.org/contrib/libraries/xpm-3.4k.tar.gz | |
44c4a334 JS |
175 | http://sunfreeware.com |
176 | ||
177 | You may need to modify make.env to add -I and -L options pointing to where Xpm | |
178 | is installed and possibly change bitmap.cpp to | |
179 | include <xpm.h> instead of <X11/xpm.h> | |
2243eed5 JS |
180 | |
181 | Alternatively, edit include/motif/setup.h, set wxUSE_XPM | |
182 | to 0, and recompile. You will not be able to load any XPMs, | |
183 | though (currently the only supported colour bitmap format). | |
184 | ||
750b78ba JS |
185 | Bug reports |
186 | ----------- | |
187 | ||
188 | Please send bug reports with a description of your environment, | |
189 | compiler and the error message(s) to the wxwin-users mailing list at: | |
5de9c45c | 190 | |
ea57084d | 191 | wxwin-users@wx.dent.med.uni-muenchen.de |
5de9c45c | 192 | |
cba2db0c | 193 | Julian Smart, February 1999. |
ea57084d | 194 | julian.smart@ukonline.co.uk |