1 |
lfinsto1 |
1.2 |
README |
2 |
|
|
Created by Laurence D. Finston (LDF) |
3 |
|
|
|
4 |
lfinsto1 |
1.5 |
* (1) Copyright and License. |
5 |
lfinsto1 |
1.2 |
|
6 |
lfinsto1 |
1.5 |
This file is part of GNU 3DLDF, a package for three-dimensional drawing. |
7 |
lfinsto1 |
1.9 |
Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 The Free Software Foundation |
8 |
lfinsto1 |
1.2 |
|
9 |
|
|
GNU 3DLDF is free software; you can redistribute it and/or modify |
10 |
|
|
it under the terms of the GNU General Public License as published by |
11 |
lfinsto1 |
1.6 |
the Free Software Foundation; either version 3 of the License, or |
12 |
lfinsto1 |
1.5 |
(at your option) any later version. |
13 |
lfinsto1 |
1.2 |
|
14 |
|
|
GNU 3DLDF is distributed in the hope that it will be useful, |
15 |
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 |
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
17 |
lfinsto1 |
1.5 |
GNU General Public License for more details. |
18 |
lfinsto1 |
1.2 |
|
19 |
|
|
You should have received a copy of the GNU General Public License |
20 |
|
|
along with GNU 3DLDF; if not, write to the Free Software |
21 |
lfinsto1 |
1.5 |
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
22 |
lfinsto1 |
1.2 |
|
23 |
|
|
GNU 3DLDF is a GNU package. |
24 |
|
|
It is part of the GNU Project of the |
25 |
|
|
Free Software Foundation |
26 |
|
|
and is published under the GNU General Public License. |
27 |
|
|
See the website http://www.gnu.org |
28 |
|
|
for more information. |
29 |
|
|
GNU 3DLDF is available for downloading from |
30 |
lfinsto1 |
1.5 |
http://www.gnu.org/software/3dldf/LDF.html. |
31 |
lfinsto1 |
1.2 |
It is also available from |
32 |
|
|
http://www.dante.de/software/ctan/, the Dante www-server |
33 |
lfinsto1 |
1.5 |
and from http://wwwuser.gwdg.de/~lfinsto1, |
34 |
lfinsto1 |
1.2 |
the author's website. |
35 |
|
|
|
36 |
lfinsto1 |
1.5 |
Please send bug reports to lfinsto1@gwdg.de |
37 |
lfinsto1 |
1.2 |
The mailing list help-3dldf@gnu.org is available for people to |
38 |
|
|
ask other users for help. |
39 |
|
|
The mailing list info-3dldf@gnu.org is for sending |
40 |
|
|
announcements to users. To subscribe to these mailing lists, send an |
41 |
|
|
email with ``subscribe <email-address>'' as the subject. |
42 |
lfinsto1 |
1.5 |
|
43 |
lfinsto1 |
1.2 |
The author can be contacted at: |
44 |
|
|
|
45 |
lfinsto1 |
1.6 |
Laurence D. Finston |
46 |
|
|
c/o Free Software Foundation, Inc. |
47 |
|
|
51 Franklin St, Fifth Floor |
48 |
|
|
Boston, MA 02110-1301 |
49 |
|
|
USA |
50 |
lfinsto1 |
1.2 |
|
51 |
lfinsto1 |
1.5 |
lfinsto1@gwdg.de |
52 |
lfinsto1 |
1.2 |
s246794@stud.uni-goettingen.de |
53 |
|
|
|
54 |
|
|
|
55 |
lfinsto1 |
1.9 |
$Id: README,v 1.2 2008/12/29 16:22:27 lfinsto2 Exp $ |
56 |
lfinsto1 |
1.2 |
|
57 |
lfinsto1 |
1.3 |
* IMPORTANT! LDF 2004.09.09. |
58 |
lfinsto1 |
1.2 |
|
59 |
|
|
I am currently in the process of preparing an alpha release, |
60 |
lfinsto1 |
1.7 |
to be called "GNU 3DLDF 1.2.0.1". I will be using the number "1.2.0" |
61 |
lfinsto1 |
1.2 |
to identify preliminary versions, so this number does not identify |
62 |
|
|
a particular release. |
63 |
|
|
|
64 |
|
|
I am also working on updating this file. Some of the |
65 |
|
|
information in it _no longer applies_. Please contact |
66 |
|
|
`help-3dldf@gnu.org' if you have questions. |
67 |
|
|
|
68 |
lfinsto1 |
1.3 |
For more information specifically about the preliminary versions, |
69 |
|
|
see the files `00README' and `00NEWS'. |
70 |
|
|
|
71 |
lfinsto1 |
1.2 |
* Downloading |
72 |
|
|
|
73 |
|
|
GNU 3DLDF is available for downloading from the following servers using |
74 |
|
|
the protocols indicated (i.e., `ftp', `http', and `rsync'): |
75 |
|
|
|
76 |
|
|
Free Software Foundation/GNU Project server: |
77 |
|
|
|
78 |
|
|
ftp://ftp.gnu.org/gnu/3dldf |
79 |
|
|
http://ftp.gnu.org/gnu/3dldf |
80 |
|
|
|
81 |
|
|
GWDG (Gesellschaft fuer wissenschaftliche Datenverarbeitung) server: |
82 |
|
|
|
83 |
|
|
http://ftp.gwdg.de/pub/gnu2/3dldf/ |
84 |
|
|
ftp://ftp.gwdg.de/pub/gnu2/3dldf/ |
85 |
|
|
rsync://ftp.gwdg.de/pub/gnu2/3dldf/ |
86 |
|
|
|
87 |
|
|
DANTE's CTAN server (DANTE = Deutschsprachige Anwendervereinigung TeX e.V., |
88 |
|
|
CTAN = Comprehensive TeX Archive Network) |
89 |
|
|
|
90 |
|
|
http://dante.ctan.org/CTAN/graphics/3DLDF/ |
91 |
|
|
|
92 |
|
|
and from the author's website: |
93 |
|
|
http://wwwuser.gwgd.de/~lfinsto1 |
94 |
|
|
|
95 |
|
|
* Mailing lists |
96 |
|
|
|
97 |
|
|
The following mailing lists are now available: |
98 |
|
|
bug-3dldf@gnu.org --- For bug reports. |
99 |
|
|
help-3dldf@gnu.org --- For users to ask one another for help. |
100 |
|
|
info-3dldf@gnu.org --- For the maintainer of GNU 3DLDF to send |
101 |
|
|
announcements to users. |
102 |
|
|
|
103 |
|
|
To subscribe to these mailing lists, please send an |
104 |
|
|
email with ``subscribe'' as the subject. |
105 |
|
|
|
106 |
|
|
|
107 |
|
|
* Web sites |
108 |
|
|
The official GNU 3DLDF website is |
109 |
|
|
http://www.gnu.org/software/3dldf. |
110 |
|
|
|
111 |
|
|
* Description of GNU 3DLDF |
112 |
|
|
|
113 |
|
|
GNU 3DLDF is a package for three-dimensional drawing with MetaPost output. |
114 |
|
|
|
115 |
|
|
* Documentation |
116 |
|
|
|
117 |
lfinsto1 |
1.7 |
The files /3DLDF-1.2.0/CWEB/3DLDFprg.ps and |
118 |
|
|
/3DLDF-1.2.0/DOC/TEXINFO/3DLDF.ps contain respectively the documents |
119 |
lfinsto1 |
1.2 |
_3DLDF: The Program_ and the _3DLDF User and Reference Manual_ |
120 |
|
|
in PostScript format. In addition, |
121 |
lfinsto1 |
1.7 |
/3DLDF-1.2.0/CWEB/3DLDFprg.dvi contains _3DLDF: The Program_ in DVI |
122 |
lfinsto1 |
1.2 |
format. If you need to |
123 |
|
|
regenerate the documentation for some reason, type `make ps' at the |
124 |
lfinsto1 |
1.7 |
command line from the directory /3DLDF-1.2.0/. |
125 |
lfinsto1 |
1.2 |
Please note, that if you decide to run cweave on 3DLDFprg.web by hand, |
126 |
|
|
be sure to use the version of the file cwebmacs.tex |
127 |
lfinsto1 |
1.7 |
in /3DLDF-1.2.0/CWEB/, since I've made a number of additions and changes |
128 |
lfinsto1 |
1.2 |
to the original. Ordinarily, it will be used automatically, so most |
129 |
|
|
users won't need to worry about this. |
130 |
|
|
|
131 |
|
|
The file 3DLDF.info contains the _User and Reference Manual_ in |
132 |
|
|
Info format. It's generated by `make install'. It can also be |
133 |
|
|
generated by `make info'. To make an HTML version, call |
134 |
|
|
`makeinfo --html 3DLDF.texi'. |
135 |
|
|
|
136 |
|
|
I apologize for the number of typos and other errors in the |
137 |
|
|
documentation. I hope they don't detract from their usefulness. |
138 |
|
|
Please see the section ``Errata and Addenda'' on my website: |
139 |
|
|
http://wwwuser.gwdg.de/~lfinsto1/index.html |
140 |
|
|
|
141 |
|
|
* Installing |
142 |
|
|
|
143 |
|
|
See the file INSTALL for instructions on installing GNU 3DLDF. |
144 |
|
|
|
145 |
|
|
|
146 |
|
|
* Patch instructions |
147 |
|
|
|
148 |
|
|
The following instructions explain how to use |
149 |
lfinsto1 |
1.7 |
`3DLDF-1.1.5.1-1.2.0.diff.gz' to update 3DLDF 1.1.5.1. |
150 |
lfinsto1 |
1.2 |
|
151 |
lfinsto1 |
1.7 |
The best way to apply the patch `3DLDF-1.1.5.1-1.2.0.diff.gz' is to |
152 |
lfinsto1 |
1.2 |
put the distribution of GNU 3DLDF 1.1.5.1 in a new directory, e.g., |
153 |
|
|
`3DLDF-1.1.5.1'. |
154 |
|
|
You may want you create a distribution by calling `make dist' from a |
155 |
|
|
shell in the working directory `3DLDF-1.1.5.1/'. |
156 |
|
|
Then you will have to uncompress and expand `3DLDF-1.1.5.1.tar.gz': |
157 |
|
|
|
158 |
|
|
gunzip 3DLDF-1.1.5.1.tar.gz |
159 |
|
|
tar pxvf 3DLDF-1.1.5.1.tar |
160 |
|
|
|
161 |
|
|
If you choose to use your existing `3DLDF-1.1.5.1' directory instead, |
162 |
|
|
you should save any files you don't want changed in a safe place. |
163 |
|
|
|
164 |
|
|
Please note that the HTML version of the Texinfo manual is not part of |
165 |
|
|
the distribution. It is, however, downloadable separately from |
166 |
|
|
my website and the GWDG server, so there should be no need to |
167 |
|
|
generate it yourself. See `* Downloading', above, for the |
168 |
|
|
URLs (Uniform Resource Locators). |
169 |
|
|
|
170 |
lfinsto1 |
1.7 |
Rename `3DLDF-1.1.5.1' `3DLDF-1.2.0' |
171 |
lfinsto1 |
1.2 |
|
172 |
lfinsto1 |
1.7 |
mv 3DLDF-1.1.5.1 3DLDF-1.2.0 |
173 |
lfinsto1 |
1.2 |
|
174 |
lfinsto1 |
1.7 |
Now, put `3DLDF-1.1.5.1-1.2.0.diff.gz' in `3DLDF-1.2.0'. |
175 |
|
|
Change the working directory to `3DLDF-1.2.0' and unpack |
176 |
|
|
`3DLDF-1.1.5.1-1.2.0.diff.gz': |
177 |
lfinsto1 |
1.2 |
|
178 |
lfinsto1 |
1.7 |
mv 3DLDF-1.1.5.1-1.2.0.diff.gz 3DLDF-1.2.0/ |
179 |
|
|
cd 3DLDF-1.2.0 |
180 |
|
|
gunzip 3DLDF-1.1.5.1-1.2.0.diff.gz |
181 |
lfinsto1 |
1.2 |
|
182 |
|
|
Apply the patch: |
183 |
|
|
|
184 |
lfinsto1 |
1.7 |
patch -p1 -i 3DLDF-1.1.5.1-1.2.0.diff |
185 |
lfinsto1 |
1.2 |
|
186 |
|
|
* Running GNU 3DLDF |
187 |
|
|
|
188 |
|
|
Once GNU 3DLDF is installed, put the code for your drawings in |
189 |
lfinsto1 |
1.7 |
/3DLDF-1.2.0/main.web, and call `make run' from the command |
190 |
|
|
line in the directory /3DLDF-1.2.0/ to run 3dldf (the executable |
191 |
lfinsto1 |
1.2 |
program), MetaPost, TeX, and dvips, to generate a PostScript file |
192 |
|
|
containing your drawings. |
193 |
|
|
|
194 |
lfinsto1 |
1.7 |
As a convenience, 3DLDF-1.2.0/ and 3DLDF-1.2.0/CWEB/ both contain an |
195 |
lfinsto1 |
1.2 |
identical shell script called `ldfr', which simply calls 'make run', |
196 |
|
|
so that GNU 3DLDF can be used conveniently from either directory. |
197 |
|
|
|
198 |
|
|
* make Targets |
199 |
|
|
|
200 |
|
|
BUG FIX: I've added `touch 3DLDFmp.mp' to the `3DLDFmp.mp' target in |
201 |
lfinsto1 |
1.7 |
3DLDF-1.2.0/CWEB/Makefile.am. This ensures that |
202 |
lfinsto1 |
1.2 |
TeX and dvips will be run if MetaPost is run on `3DLDFmp.mp'. This |
203 |
|
|
happens if `3DLDFput.mp' is newer than `3DLDFmp.mp', but the latter |
204 |
|
|
isn't changed, so TeX and dvips weren't being run. I'm surprized |
205 |
|
|
nobody's complained about this. Not yet documented in the |
206 |
|
|
_3DLDF User and Reference Manual_. |
207 |
|
|
|
208 |
lfinsto1 |
1.7 |
3DLDF-1.2.0/CWEB/Makefile.am contains several |
209 |
lfinsto1 |
1.2 |
`PHONY' targets as synonyms for several targets. |
210 |
|
|
|
211 |
|
|
These are targets that users may want to call often: |
212 |
|
|
|
213 |
|
|
`cpl' for `3dldf': For compiling and linking `3dldf'. |
214 |
|
|
|
215 |
|
|
`mp' for `3DLDFmp.mp': For running MetaPost on `3DLDFmp.mp'. |
216 |
|
|
|
217 |
|
|
`ldf' for `3DLDFput.mp': For running `3dldf'. |
218 |
|
|
|
219 |
|
|
Most users should never need to call `make ps' or `make pdf', |
220 |
|
|
unless they are making changes to GNU 3DLDF. |
221 |
|
|
|
222 |
|
|
`ps' for generating `3DLDFprg.ps'. |
223 |
|
|
|
224 |
|
|
`pdf' for generating `3DLDFprg.pdf'. It uses `ps2pdf'. Automake |
225 |
lfinsto1 |
1.7 |
doesn't generate a `pdf' target in 3DLDF-1.2.0/CWEB/ automatically, |
226 |
|
|
but it does in 3DLDF-1.2.0/DOC/TEXINFO/. However, it requires |
227 |
lfinsto1 |
1.2 |
`pdftex', which is not installed on the computer I'm using. It may be |
228 |
|
|
on yours, however, so I didn't want to override the default `pdf' target. |
229 |
|
|
|
230 |
|
|
If you want to generate `3DLDF.pdf' for some reason, and `make pdf' |
231 |
|
|
doesn't work on your computer either, try `ps2pdf 3DLDF.ps'. However, |
232 |
|
|
please note that `3DLDF.pdf' is included in the distribution and |
233 |
|
|
available separately from my website and other download sites (see |
234 |
|
|
"Downloading" above), along with `3DLDF.ps'. |
235 |
|
|
The HTML version is also available from my website, |
236 |
|
|
http://ftp.gwdg.de/pub/gnu2/3dldf/ |
237 |
|
|
ftp://ftp.gwdg.de/pub/gnu2/3dldf/ |
238 |
|
|
and |
239 |
|
|
rsync://ftp.gwdg.de/pub/gnu2/3dldf/ |
240 |
|
|
|
241 |
lfinsto1 |
1.7 |
These targets are new in GNU 3DLDF 1.2.0, and are not yet documented in |
242 |
|
|
the _3DLDF User and Reference Manual_ (/3DLDF-1.2.0/DOC/TEXINFO/3DLDF.ps). |
243 |
lfinsto1 |
1.2 |
|
244 |
|
|
To get rid of the files that GNU 3DLDF generates, without deleting any |
245 |
|
|
important ones, call `make purge'. |
246 |
|
|
|
247 |
|
|
For further information, see the _3DLDF User and |
248 |
lfinsto1 |
1.7 |
Reference Manual_ (/3DLDF-1.2.0/DOC/TEXINFO/3DLDF.ps). |
249 |
lfinsto1 |
1.2 |
|
250 |
|
|
Users should avoid the use of the following extensions in |
251 |
lfinsto1 |
1.7 |
/3DLDF-1.2.0/CWEB/: .rpo, .h, .hbk, .tim, and .tmw. |
252 |
lfinsto1 |
1.2 |
Each CWEB file has corresponding files with the same name and |
253 |
|
|
these extensions. |
254 |
|
|
|
255 |
|
|
* Information on building: |
256 |
|
|
|
257 |
|
|
If only TeX text, comments, or whitespace in the CWEB file are |
258 |
|
|
changed, then no recompilation or relinking takes place, and the CWEB |
259 |
|
|
file isn't retangled the next time `make 3dldf' is called. |
260 |
|
|
Unfortunately, whitespace in literal strings that are part of the C++ |
261 |
|
|
code are also ignored, contrary to what I wrote in |
262 |
lfinsto1 |
1.7 |
3DLDF-1.2.0/CWEB/ChangeLog. It's not likely that this will cause any |
263 |
lfinsto1 |
1.2 |
problems in actual use, though. |
264 |
|
|
|
265 |
|
|
If only the C++ code has changed, the .cxx file is recompiled, and 3dldf is |
266 |
|
|
relinked. |
267 |
|
|
|
268 |
|
|
If the header file has changed, all of the C++ files that depend on it are |
269 |
|
|
recompiled, and 3dldf is relinked. |
270 |
|
|
|
271 |
|
|
Two ``timer'' files are used for keeping track of whether |
272 |
|
|
<filename>.h and/or <filename>.cxx has changed. |
273 |
|
|
|
274 |
|
|
The procedure seems to work when multiple files are changed in various |
275 |
|
|
ways. However, one unpleasant consequence is that the CWEB file must |
276 |
|
|
be touched to give it an earlier timestamp in the case that neither |
277 |
|
|
the C++ file nor the header file |
278 |
|
|
has changed (but only in this case!). This means that the file has |
279 |
|
|
changed on disk, so that |
280 |
|
|
the buffer must be reverted, if the user is currently working on it, |
281 |
|
|
which is likely. The shell script `tsthdweb' prints a message to this |
282 |
|
|
effect to standard output. It's annoying to have to revert the |
283 |
|
|
buffer, but I haven't thought of a way |
284 |
|
|
around this problem. It's a consequence of using the timestamps of |
285 |
|
|
files to decide whether they need to be reprocessed. The best solution |
286 |
|
|
may be to return to using an auxilliary program for controlling |
287 |
|
|
recompilation. However, this will mean maintaining two different |
288 |
|
|
methods of rebuilding, because Automake requires valid build rules. |
289 |
|
|
|
290 |
|
|
** Reverting buffers |
291 |
|
|
|
292 |
|
|
If you're using Emacs, you can set a key to revert the buffer without |
293 |
|
|
querying by putting the following sexp (s-expression, but I don't know |
294 |
|
|
what ``s'' stands for) into your `.emacs' file: |
295 |
|
|
|
296 |
|
|
(global-set-key [f5] '(lambda () (interactive) (revert-buffer t t))) |
297 |
|
|
|
298 |
|
|
Or, if you're using, for example, foo mode, you can put the following |
299 |
|
|
sexp into your foo-mode-hook declaration: |
300 |
|
|
|
301 |
|
|
(local-set-key foo-mode-map [f5] '(lambda () (interactive) |
302 |
|
|
(revert-buffer t t))) |
303 |
|
|
For example, |
304 |
|
|
(setq lisp-mode-hook |
305 |
|
|
'(lambda () |
306 |
|
|
(local-set-key [f5] '(lambda () (interactive) |
307 |
|
|
(revert-buffer t t))))) |
308 |
|
|
|
309 |
|
|
Or, if you've defined a foo mode yourself, you can put the key |
310 |
|
|
assignment into foo-mode-map: |
311 |
|
|
|
312 |
|
|
(if foo-mode-map () |
313 |
|
|
(setq foo-mode-map (nconc (make-sparse-keymap) c-mode-map)) |
314 |
|
|
(define-key foo-mode-map [f5] '(lambda () (interactive) |
315 |
|
|
(revert-buffer t t)))) |
316 |
|
|
|
317 |
|
|
|
318 |
|
|
*Information about Changes |
319 |
|
|
|
320 |
|
|
For information about changes to GNU 3DLDF, see |
321 |
|
|
NEWS, ChangeLog, ./CWEB/ChangeLog, |
322 |
|
|
./DOC/ChangeLog, ./DOC/TEXINFO/ChangeLog, |
323 |
|
|
./RCSFREEZE.log |
324 |
|
|
./CWEB/RCSFREEZE.log, ./DOC/RCSFREEZE.log, and ./DOC/TEXINFO/RCSFREEZE.log. |
325 |
|
|
The latter files |
326 |
|
|
contain information about frozen configurations, referring to general |
327 |
|
|
changes affecting multiple files. |
328 |
|
|
|
329 |
|
|
|
330 |
|
|
|
331 |
|
|
%% Local Variables: |
332 |
|
|
%% mode:TeX |
333 |
|
|
%% outline-minor-mode:t |
334 |
|
|
%% outline-regexp:"^\\*+" |
335 |
|
|
%% End: |
336 |
|
|
|