1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
|
M-Tx Preprocessor Source Code
This is a development version of "prepmx", the M-Tx Preprocessor.
It contains the file "mtx.tex" and all the sources for generating the
binary executable file ("prepmx", "prepmx.exe", etc., depending on your
operating system). There is no documentation: find the latest available
mtxD????.zip and read the Corrections file. There are no examples: find
the latest available mtxX????.zip. Or stay with the most recent stable
release for those.
The development version is provided for those who need more recent features
than the most recent stable release has, in the hope that they will be
willing to report bugs and maybe even suggest how those can be fixed.
Send e-mail to Dirk Laurie <dlaurie@na-net.ornl.gov>.
You will have found this README in a file called something like mtxP054f.zip
(which containes Pascal code) or mtxC054f.zip (which contains C code).
I will refer to that file as mtxP????.zip or mtxC????.zip.
You need one of the following compilers. A later version than specified
should also work, but an earlier one probably will not.
1. Free Pascal 1.0.10 (for mtxP????.zip)
2. Borland Pascal 7.0 (for mtxP????.zip)
3. Any ANSI-compliant C compiler (for mtxC????.zip)
4. The p2c package plus any ANSI-compliant C compiler (for mtxP????.zip)
The first of these is recommended, since that is the compiler I use.
I try to stay compatible with the other three, but this may not always
be possible.
"GNU System" means any system on which standard GNU utilities such as "bash"
and "make" is available. Typical GNU systems are (a) Linux (b) Windows with
the Cygwin package installed (c) other systems on which an appropriate
package has been installed. You do not need a GNU system to use M-Tx,
but it is easier to make the executable on a GNU system.
Read Section 1 below, and, depending on which compiler you have,
one of the other sections. If you have no appropriate compiler,
visit http://www.freepascal.org/ to see whether there is a Free Pascal
compiler for your system (at present, MacOS is the only popular operating
system not available); if not, get an ANSI compliant C compiler and read
Section 6.
Contents
1. Text file format and unzipping
2. Compiling with Free Pascal
3. Compiling with Borland Pascal 7.0
4. Compiling with p2c
5. Compiling with a C compiler on a GNU system
6. Compiling with a C compiler on a non-GNU system
7. For experts only
1. Text file format and unzipping
Change to some empty directory and unzip the distribution file. YOU MUST
UNZIP THE FILES USING AN UNZIPPER THAT CAN CONVERT TEXT FILES TO YOUR
SYSTEM'S FORMAT. Some things may work even if you don't (maybe even
everything, if your system happens to use the same text format as the
system on which the zipfile was made) but then any later errors will
only be more mysterious because of that. It may be necessary to set
special options in your unzipper to achieve this. On a GNU system,
the command is
unzip -a mtxP????.zip
2. Compiling with Free Pascal
Free Pascal is available from for most current operating systems, including
Linux, SunOS and Windows.
If your system has GNU Make, simply type
make
Otherwise, type
fpc -B -So prepmx
to make the executable.
3. Compiling with Borland Pascal 7.0
This compiler is a 16-bit compiler specific to MSDOS, even though it
runs under Windows and under DOS emulators on other 32-bit systems.
It cannot handle very large code and data segments, and unfortunately
it is necessary to cripple M-Tx somewhat to make it fit in, as follows:
3.1 Edit the file "globals.pas" and change the lines
lines_in_paragraph = 100;
max_words = 128;
max_notes = 128;
to
lines_in_paragraph = 50;
max_words = 64;
max_notes = 64;
3.2 Type
bpc -b prepmx
to make prepmx.exe.
4. Compiling with p2c
This route is only available if you have a GNU system with a C compiler
and the package p2c (on old Red Hat systems, both p2c and p2c-devel). Type
make prepmxc
to make prepmx. On this system only, you can make the mtxC????.zip file
that corresponds to your mtxP????.zip file with
make Czip
5. Compiling with a C compiler on a GNU system
Just type
make prepmxc
to make prepmx.
6. Compiling with a C compiler on a non-GNU system
Your C compiler must be ANSI compliant (sorry, Visual C++ 6.0 is not
such, but Turbo C++ is). Then issue a command that will compile and
link all the .c files to produce an appropriately named executable.
The command line will depend on your system; for example
cc *.c -o prepmx
should work on non-GNU Un?x systems.
7. For experts only
You can modify the source code as you wish -- this is open source software
and the copyright is GPL. If you wish to redistribute your modified version,
please augment the name so that there is no risk of confusion: e.g. if you
are Johannes Brahms and you have made changes to mtxC054f.zip, call it
mtxC054f-brahms.zip.
Even better, send me an e-mail with your changes so that I can insert them
into the current development version.
The primary source is the Pascal version; the C version is made with p2c as
described in Section 4. Therefore, any change made to the C code is volatile;
only changes made to the Pascal version become permanent.
If you make both Pascal and C executables, it is your responsibilty to
move or rename the first executable, otherwise it will be overwritten.
Moreover, it is possible to confuse the Makefile, since object files
from Pascal and C compilations may well have the same name; you will
then get numerous error messages. The safe thing is to "make clean"
before switching languages.
|