]>
Commit | Line | Data |
---|---|---|
1 | Motif Multi-Document Interface Version 1.0 | |
2 | ------------------------------------------ | |
3 | ||
4 | INTRODUCTION | |
5 | ============ | |
6 | ||
7 | The Motif Multi-Document Interface (MDI) is a collection of C++ classes | |
8 | that emulates the behaviour of the Multi-Document Interface in Microsoft | |
9 | Windows. The MDI framework allows a user to view multiple documents (windows) | |
10 | constrained to a single parent window. | |
11 | ||
12 | ||
13 | REQUIREMENTS | |
14 | ============ | |
15 | ||
16 | The following are required to build MDI: | |
17 | ||
18 | C++ compiler | |
19 | X11R5/X11R6 | |
20 | Motif1.2 | |
21 | ||
22 | ||
23 | PLATFORMS | |
24 | ========= | |
25 | ||
26 | The MDI package is known to compile on the following platforms: | |
27 | ||
28 | SGI IRIX 5.2 | |
29 | SunOS 4.1.3 | |
30 | Sun Solaris 5.4 | |
31 | HP-UX 9.05 | |
32 | AIX 4.1 | |
33 | Alpha/OSF1 v3.2 | |
34 | Linux 1.1.90 (gcc version 2.5.8) | |
35 | ||
36 | ||
37 | INSTALLATION | |
38 | ============ | |
39 | ||
40 | MDI is written in C++. It does not use any language extensions like | |
41 | exceptions or templates, so it should compile with most C++ compilers. | |
42 | ||
43 | To build MDI, you need to set the name of your C++ compiler in the file | |
44 | "config/MDI.tmpl". An attempt is made to pick a logical default for your | |
45 | machine, but if it fails, you will need to edit this file. | |
46 | ||
47 | After setting your compiler, just type: | |
48 | ||
49 | xmkmf | |
50 | make Makefiles | |
51 | make | |
52 | ||
53 | If successful, the MDI library (libXsw.a) will be created in the "lib" | |
54 | directory. Additionally, a short test program (MDItest) will be created | |
55 | in the "test" directory. | |
56 | ||
57 | If you are not successful, see the "Possible Problems" section below. I | |
58 | have had no luck with imake as it seems to only work on about 1/2 of the | |
59 | platforms I have tried. If imake does not work, don't despair. The MDI | |
60 | library is really simple to build by hand. Just follow the following steps | |
61 | and it will work just fine. I have given detailed instructions in the | |
62 | "Possible Problems" section below where I had problems using imake. If | |
63 | anyone sees a problem with my Imakefile (I assume there are many), please | |
64 | let me know. | |
65 | ||
66 | In order to build the MDI package by hand, do the following: | |
67 | ||
68 | 1. "cd" into the "lib" directory (cd lib) | |
69 | 2. Compile all of the source code (CC -g -c *.C). Your compiler | |
70 | name will vary. Some common compilers are: | |
71 | CC: SGI, Sun, Solaris, HP-UX | |
72 | xlC: AIX RS/6000 | |
73 | cxx: Alpha/OSF1 | |
74 | g++: Linux | |
75 | gcc: Most other platforms | |
76 | ||
77 | 3. Create the library "libXsw.a" (ar rlv libXsw.a *.o) | |
78 | 4. Run "ranlib" (not necessary on all machines) | |
79 | 5. "cd" into the "test" directory (cd ../test) | |
80 | 6. Compile the source code (see step #2 above) | |
81 | 7. Link the test program (CC *.o -o MDItest ../lib/libXsw.a \ | |
82 | -lXm -lXt -lX11). Again, the compiler name will vary | |
83 | ||
84 | If you still can't get it to work after all of that, email me and I'll give | |
85 | you a hand. | |
86 | ||
87 | ||
88 | POSSIBLE PROBLEMS | |
89 | ================= | |
90 | ||
91 | SunOS 4.1.3 | |
92 | Kept getting this message when trying to make: | |
93 | ||
94 | make: Fatal error: Don't know how to make target `XsComponent.o' | |
95 | ||
96 | I ended up building the library and test case with the following: | |
97 | ||
98 | cd lib | |
99 | CC -g -c *.C | |
100 | ar rlv libXsw.a *.o | |
101 | ranlib libXsw.a | |
102 | cd ../test | |
103 | CC -g -c *.C -I../lib | |
104 | CC -g *.o -o MDItest ../lib/libXsw.a -L/usr/lib -lXm -lXt -lX11 | |
105 | ||
106 | ||
107 | Solaris 5.4 | |
108 | The generated Makefile had some unsupported options being passed to | |
109 | the linker. I don't know what they were for, so I just removed them. | |
110 | All worked fine after that. | |
111 | ||
112 | ||
113 | HP-UX 9.05 | |
114 | I did not have "xmkmf" on this platform. To build the library and test | |
115 | case, I did the following (paths may vary): | |
116 | ||
117 | cd lib | |
118 | CC -g -c *.C -I/usr/include/Motif1.2 -I/usr/include/X11R5 | |
119 | ar rlv libXsw.a *.o | |
120 | cd ../test | |
121 | CC -g -c *.C -I../lib -I/usr/include/Motif1.2 -I/usr/include/X11R5 | |
122 | CC -g *.o -o MDItest ../lib/libXsw.a -L/usr/lib/Motif1.2 \ | |
123 | -L/usr/lib/X11R5 -lXm -lXt -lX11 | |
124 | ||
125 | ||
126 | AIX 4.1 | |
127 | Running xmkmf on the top Makefile did not work. Got the following: | |
128 | ||
129 | "./Imakefile", line 8.1: 1506-215 (E) Too many arguments | |
130 | specified for macro NamedTargetSubdirs. | |
131 | ||
132 | In order to build the library, I cd'd into both the "lib" and "test" | |
133 | directory and did the following there: | |
134 | ||
135 | xmkmf | |
136 | make | |
137 | ||
138 | ||
139 | Alpha/OSF1 v3.2 | |
140 | Kept getting this message when trying to make: | |
141 | ||
142 | Make: Don't know how to make XsComponent.o. Stop. | |
143 | ||
144 | I ended up building the library and test case with the following: | |
145 | ||
146 | cd lib | |
147 | cxx -g -c *.C | |
148 | ar rlv libXsw.a *.o | |
149 | cd ../test | |
150 | cxx -g -c *.C -I../lib | |
151 | cxx -g *.o -o MDItest ../lib/libXsw.a -lXm -lXt -lX11 | |
152 | ||
153 | ||
154 | Linux | |
155 | "make Makefiles" did not work correctly. Just cd'd into both the | |
156 | "lib" and "test" directories and type: | |
157 | ||
158 | xmkmf | |
159 | make | |
160 | ||
161 | Also, if you don't have the C++ library (libC.a), you will get some | |
162 | undefined symbols like when linking: | |
163 | ||
164 | ../lib/libXsw.a(XsComponent.o): Undefined symbol _cout | |
165 | referenced from text segment | |
166 | ../lib/libXsw.a(XsComponent.o): Undefined symbol | |
167 | ostream::operator<<(char const *) referenced from text segment | |
168 | ||
169 | To get rid of these errors, you will need to recompile the library | |
170 | (specifically XsComponent.C) with -DNDEBUG. This will remove the calls | |
171 | to the <iostream> library and will eliminate the need to link with the | |
172 | C++ library | |
173 | ||
174 | ||
175 | DOCUMENTATION | |
176 | ============= | |
177 | ||
178 | All documentation is written in HTML and can be found in the "doc" directory. | |
179 | The top-most documentation file is "mdi.html" | |
180 | ||
181 | ||
182 | AVAILABILITY | |
183 | =============== | |
184 | ||
185 | The latest version of MDI is available at: | |
186 | ||
187 | ftp://itimail.iti-oh.com/pub/project/sws/MDI-<version>.tar.gz | |
188 | ftp://itimail.iti-oh.com/pub/project/sws/MDI-<version>.tar.Z | |
189 | ||
190 | The MDI WWW page is located at: | |
191 | ||
192 | http://www.iti-oh.com/~sws/mdi.html | |
193 | ||
194 | ||
195 | COPYRIGHT | |
196 | ========= | |
197 | ||
198 | Copyright (c) 1996 Scott W. Sadler | |
199 | All rights reserved. | |
200 | ||
201 | See license conditions in the COPYRIGHT file of the MDI distribution | |
202 | ||
203 | ||
204 | BUG REPORTS | |
205 | =========== | |
206 | ||
207 | Please report any bugs, suggestions or criticisms directly to me at the | |
208 | address below. I want to make this as quality a software package as | |
209 | possible: stable, efficient and portable. It is the feedback from the X | |
210 | community that makes writing the software worthwhile. | |
211 | ||
212 | Scott W. Sadler | |
213 | sws@iti-oh.com | |
214 | http://www.iti-oh.com/~sws | |
215 | ||
216 | ||
217 | HISTORY | |
218 | ======= | |
219 | ||
220 | 03-Mar-96 Version 1.0 Released | |
221 |