2 |
- |
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
|
|
2 |
<html>
|
|
|
3 |
<head>
|
|
|
4 |
<title>How to build Ghostscript from source code</title>
|
|
|
5 |
<!-- $Id: Make.htm,v 1.90 2005/10/20 19:46:23 ray Exp $ -->
|
|
|
6 |
<!-- Originally: make.txt -->
|
|
|
7 |
<link rel="stylesheet" type="text/css" href="gs.css" title="Ghostscript Style">
|
|
|
8 |
</head>
|
|
|
9 |
|
|
|
10 |
<body>
|
|
|
11 |
<!-- [1.0 begin visible header] ============================================ -->
|
|
|
12 |
|
|
|
13 |
<!-- [1.1 begin headline] ================================================== -->
|
|
|
14 |
|
|
|
15 |
<h1>How to build Ghostscript from source code</h1>
|
|
|
16 |
|
|
|
17 |
<!-- [1.1 end headline] ==================================================== -->
|
|
|
18 |
|
|
|
19 |
<!-- [1.2 begin table of contents] ========================================= -->
|
|
|
20 |
|
|
|
21 |
<h2>Table of contents</h2>
|
|
|
22 |
|
|
|
23 |
<blockquote><ul>
|
|
|
24 |
<li><a href="#General_overview">General overview</a>
|
|
|
25 |
<li><a href="#Acquiring">How to acquire the source code</a>
|
|
|
26 |
<ul>
|
|
|
27 |
<li><a href="#Ghostscript_source">Ghostscript source code</a>
|
|
|
28 |
<li><a href="#Third-party_libraries">Third-party library source code</a>
|
|
|
29 |
</ul>
|
|
|
30 |
<li><a href="#Unpack">How to unpack the source code</a>
|
|
|
31 |
<ul>
|
|
|
32 |
<li><a href="#Tarfiles">How to unpack compressed tar files generally</a>
|
|
|
33 |
<li><a href="#Zipfiles">How to unpack zip files generally</a>
|
|
|
34 |
<li><a href="#Unpack_Ghostscript">How to unpack Ghostscript itself</a>
|
|
|
35 |
<li><a href="#Unpack_libraries">How to unpack the third-party libraries</a>
|
|
|
36 |
</ul>
|
|
|
37 |
<li><a href="#Bug_check">How to check for post-release bug fixes</a>
|
|
|
38 |
<li><a href="#Makefile_overview">How to prepare the makefiles</a>
|
|
|
39 |
<ul>
|
|
|
40 |
<li><a href="#Preparing_makefiles">Changes for your environment</a>
|
|
|
41 |
<li><a href="#Features_and_devices">Selecting features and devices</a>
|
|
|
42 |
<ul>
|
|
|
43 |
<li><a href="#Precompiled_data">Precompiled run-time data</a>
|
|
|
44 |
<li><a href="#GNU_readline">GNU readline</a>
|
|
|
45 |
</ul>
|
|
|
46 |
<li><a href="#Makefile_setup">Setting up "makefile"</a>
|
|
|
47 |
<li><a href="#Invoke_make">Invoking "make"</a>
|
|
|
48 |
<li><a href="#Cross-compiling">Cross-compiling</a>
|
|
|
49 |
</ul>
|
|
|
50 |
<li><a href="#PC_build">How to build Ghostscript from source (PC version)</a>
|
|
|
51 |
<ul>
|
|
|
52 |
<li><a href="#Borland_build">Borland/Inprise environment</a>
|
|
|
53 |
<li><a href="#Microsoft_build">Microsoft environment</a>
|
|
|
54 |
<li><a href="#Microsoft_build_64">Microsoft environment 64-bit</a>
|
|
|
55 |
<li><a href="#Self-extracting_executables">Making self-extracting executables</a>
|
|
|
56 |
<li><a href="#Watcom_build">Watcom environment</a>
|
|
|
57 |
<li><a href="#Cygwin32_build">Cygwin32 gcc</a>
|
|
|
58 |
<li><a href="#IntelWin32_build">Intel C/C++ compiler</a>
|
|
|
59 |
</ul>
|
|
|
60 |
<li><a href="#Mac_build">How to build Ghostscript from source (MacOS version)</a>
|
|
|
61 |
<ul>
|
|
|
62 |
<li><a href="#MacOS">Traditional MacOS</a>
|
|
|
63 |
<li><a href="#MacOSX">MacOS X</a>
|
|
|
64 |
</ul>
|
|
|
65 |
<li><a href="#Unix_build">How to build Ghostscript from source (Unix version)</a>
|
|
|
66 |
<ul>
|
|
|
67 |
<li><a href="#Multi_architecture_makefile">The multi-architecture makefile</a>
|
|
|
68 |
<li><a href="#UNIX_makefile">Setting up "makefile"</a>
|
|
|
69 |
<li><a href="#Shared_object">Shared object</a>
|
|
|
70 |
<li><a href="#Tool_specific_issues">Tool-specific issues</a>
|
|
|
71 |
<ul>
|
|
|
72 |
<li><a href="#gcc_27x">gcc 2.7.*</a>
|
|
|
73 |
<li><a href="#GNU_make">GNU make</a>
|
|
|
74 |
</ul>
|
|
|
75 |
<li><a href="#OS_specific_issues">OS-specific issues</a>
|
|
|
76 |
<ul>
|
|
|
77 |
<li><a href="#386_Unix">386 Unix</a>
|
|
|
78 |
<li><a href="#BSDI">BSDI</a>
|
|
|
79 |
<li><a href="#Digital_Unix">Digital Unix (Alpha)</a>
|
|
|
80 |
<li><a href="#Linux">Linux</a>
|
|
|
81 |
<li><a href="#NeXTSTEP">NeXTSTEP / OpenSTEP</a>
|
|
|
82 |
<li><a href="#SCO">SCO Unix/Xenix</a>
|
|
|
83 |
<li><a href="#SVR4">SVR4 Unix</a>
|
|
|
84 |
<li><a href="#System_V">System V Unix platforms</a>
|
|
|
85 |
<li><a href="#Unixware">Unixware</a>
|
|
|
86 |
</ul>
|
|
|
87 |
<li><a href="#Hardware_specific_issues">Hardware-specific issues</a>
|
|
|
88 |
<ul>
|
|
|
89 |
<li><a href="#Alpha_with_gcc">Alpha with gcc</a>
|
|
|
90 |
<li><a href="#Apollo">H-P Apollo</a>
|
|
|
91 |
<li><a href="#ATT_7040">AT&T 7040 R3</a>
|
|
|
92 |
<li><a href="#Convex">Convex</a>
|
|
|
93 |
<li><a href="#DECStations">DECStations with Ultrix</a>
|
|
|
94 |
<li><a href="#HP_RISC">H-P RISC workstations</a>
|
|
|
95 |
<li><a href="#Intergraph">Intergraph Clipper</a>
|
|
|
96 |
<li><a href="#MIPS">MIPS</a>
|
|
|
97 |
<li><a href="#NCR_3550">NCR 3550</a>
|
|
|
98 |
<li><a href="#Pyramid">Pyramid MIServer-S</a>
|
|
|
99 |
<li><a href="#RS6000">IBM RS/6000 with AIX</a>
|
|
|
100 |
<li><a href="#Silicon_Graphics">Silicon Graphics</a>
|
|
|
101 |
<li><a href="#Sun">Sun</a>
|
|
|
102 |
<li><a href="#SunOS">SunOS</a>
|
|
|
103 |
<li><a href="#Solaris">Solaris</a>
|
|
|
104 |
<li><a href="#VAX_Ultrix">VAX with Ultrix</a>
|
|
|
105 |
</ul>
|
|
|
106 |
</ul>
|
|
|
107 |
<li><a href="#OS2_build">How to build Ghostscript from source (OS/2 version)</a>
|
|
|
108 |
<li><a href="#VMS_build">How to build Ghostscript from source (OpenVMS version)</a>
|
|
|
109 |
<ul>
|
|
|
110 |
<li><a href="#GNU_make_VMS">Building with GNU make on OpenVMS</a>
|
|
|
111 |
<li><a href="#MMK_MMS_VMS">Building with MMK or MMS on OpenVMS</a>
|
|
|
112 |
</ul>
|
|
|
113 |
<li><a href="#Other_environments">Other environments</a>
|
|
|
114 |
<ul>
|
|
|
115 |
<li><a href="#No_multi_thread">Environments lacking multi-threading</a>
|
|
|
116 |
<li><a href="#Plan_9">Plan 9</a>
|
|
|
117 |
<li><a href="#QNX">QNX</a>
|
|
|
118 |
</ul>
|
|
|
119 |
<li><a href="#UFST_build">How to build Ghostscript with UFST</a>
|
|
|
120 |
<li><a href="#FT_build">How to build Ghostscript with Free Type</a>
|
|
|
121 |
</ul></blockquote>
|
|
|
122 |
|
|
|
123 |
<!-- [1.2 end table of contents] =========================================== -->
|
|
|
124 |
|
|
|
125 |
<!-- [1.3 begin hint] ====================================================== -->
|
|
|
126 |
|
|
|
127 |
<p>For other information, see the <a href="Readme.htm">Ghostscript
|
|
|
128 |
overview</a> and the instructions on how to <a href="Install.htm">install
|
|
|
129 |
Ghostscript</a>.
|
|
|
130 |
|
|
|
131 |
<!-- [1.3 end hint] ======================================================== -->
|
|
|
132 |
|
|
|
133 |
<hr>
|
|
|
134 |
|
|
|
135 |
<!-- [1.0 end visible header] ============================================== -->
|
|
|
136 |
|
|
|
137 |
<!-- [2.0 begin contents] ================================================== -->
|
|
|
138 |
|
|
|
139 |
<h2><a name="General_overview"></a>General overview</h2>
|
|
|
140 |
|
|
|
141 |
<p>
|
|
|
142 |
This document describes how to build a Ghostscript executable from source
|
|
|
143 |
code. There are four major steps to building Ghostscript:
|
|
|
144 |
|
|
|
145 |
<ol>
|
|
|
146 |
<li>Acquire the compressed archive files of source code for Ghostscript and
|
|
|
147 |
the required third-party libraries.
|
|
|
148 |
<li>Unpack the archive files into the Ghostscript directory and correctly
|
|
|
149 |
named subdirectories.
|
|
|
150 |
<li>Configure the build to match your system and desired configuration options.
|
|
|
151 |
<li>Invoke "<b><tt>make</tt></b>" to build the software.
|
|
|
152 |
</ol>
|
|
|
153 |
|
|
|
154 |
<p>
|
|
|
155 |
The remainder of this document describes each of these steps in detail.
|
|
|
156 |
Note that some of this process is platform-dependent. After building
|
|
|
157 |
Ghostscript you must then install it; for that, see the
|
|
|
158 |
<a href="Install.htm">installation instructions</a>.
|
|
|
159 |
|
|
|
160 |
<hr>
|
|
|
161 |
|
|
|
162 |
<h2><a name="Acquiring"></a>How to acquire the source code</h2>
|
|
|
163 |
|
|
|
164 |
<p>
|
|
|
165 |
Building Ghostscript requires the Ghostscript source code itself, and also
|
|
|
166 |
the source code for some third-party libraries that Ghostscript uses.
|
|
|
167 |
|
|
|
168 |
<h3><a name="Ghostscript_source"></a>Ghostscript source code</h3>
|
|
|
169 |
|
|
|
170 |
<p><a name="Authoritative_distribution_site"></a>
|
|
|
171 |
There are two kinds of Ghostscript distributions available, called "AFPL
|
|
|
172 |
Ghostscript" and "GPL Ghostscript"; the distinction between them is
|
|
|
173 |
explained in the <a href="Commprod.htm">conditions for distributing
|
|
|
174 |
Ghostscript</a>. The authoritative distribution site for AFPL
|
|
|
175 |
Ghostscript is
|
|
|
176 |
|
|
|
177 |
<blockquote>
|
|
|
178 |
<a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/"
|
|
|
179 |
class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/</a>gs###
|
|
|
180 |
</blockquote>
|
|
|
181 |
|
|
|
182 |
<p>
|
|
|
183 |
where "###" is the unpunctuated version number. GPL Ghostscript is
|
|
|
184 |
available from the same site at
|
|
|
185 |
|
|
|
186 |
<blockquote>
|
|
|
187 |
<a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/"
|
|
|
188 |
class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/GPL/</a>
|
|
|
189 |
</blockquote>
|
|
|
190 |
|
|
|
191 |
<p>
|
|
|
192 |
Ghostscript source code is packaged in two different formats:
|
|
|
193 |
gzip-compressed tar files (*<b><tt>.tar.gz</tt></b>) and zip files
|
|
|
194 |
(*<b><tt>.zip</tt></b>). For all versions there are gzip-compressed tar
|
|
|
195 |
files:
|
|
|
196 |
|
|
|
197 |
<blockquote>
|
|
|
198 |
<b><tt>ghostscript-</tt></b>#.##<b><tt>.tar.gz</tt></b><br>
|
|
|
199 |
<b><tt>ghostscript-fonts-std-</tt></b>#.##<b><tt>.tar.gz</tt></b><br>
|
|
|
200 |
<b><tt>ghostscript-fonts-other-</tt></b>#.##<b><tt>.tar.gz</tt></b>
|
|
|
201 |
</blockquote>
|
|
|
202 |
|
|
|
203 |
<p>For recent versions of Ghostscript there are also zip files
|
|
|
204 |
|
|
|
205 |
<blockquote>
|
|
|
206 |
<b><tt>gs</tt></b>###<b><tt>src.zip</tt></b><br>
|
|
|
207 |
<b><tt>gs</tt></b>###<b><tt>w32.exe</tt></b>
|
|
|
208 |
</blockquote>
|
|
|
209 |
|
|
|
210 |
<p>
|
|
|
211 |
("#.##" and "###" are version numbers in punctuated and unpunctuated form.)
|
|
|
212 |
Software to decompress and extract both formats is available for almost
|
|
|
213 |
every platform for which Ghostscript is available -- including Unix, DOS,
|
|
|
214 |
MS Windows, and VMS -- so you can choose the format most convenient for
|
|
|
215 |
you; but it's up to you to locate that software. See the section on <a
|
|
|
216 |
href="#Unpack">unpacking the source code</a>.
|
|
|
217 |
|
|
|
218 |
<h3><a name="Third-party_libraries"></a>Third-party library source code</h3>
|
|
|
219 |
|
|
|
220 |
<p>
|
|
|
221 |
To build Ghostscript you need the source code for the <a
|
|
|
222 |
href="http://www.ijg.org/">Independent JPEG Group</a> (IJG) library, the
|
|
|
223 |
<a href="http://www.libpng.org/pub/png/">Portable Network Graphics</a>
|
|
|
224 |
(PNG)
|
|
|
225 |
library, and the <a
|
|
|
226 |
href="http://www.gzip.org/zlib/">zlib</a>
|
|
|
227 |
compression and decompression library. The default build also expects source
|
|
|
228 |
for the <a href="http://jbig2dec.sourceforge.net">jbig2dec</a> JBIG2 decompression
|
|
|
229 |
library.
|
|
|
230 |
|
|
|
231 |
<p>
|
|
|
232 |
On Windows and MacOS, the .zip and .sit source archives include the appropriate
|
|
|
233 |
source versions of these libraries, so no additional downloads are necessary.
|
|
|
234 |
Unix tarballs may also contain appropriate library source; the configure script
|
|
|
235 |
will tell you if it cannot find the appropriate libraries.
|
|
|
236 |
|
|
|
237 |
<p>
|
|
|
238 |
Here are authoritative distribution points for these libraries, should you need
|
|
|
239 |
to obtain the source yourself. As elsewhere, "#" is used for version
|
|
|
240 |
numbers. The JPEG source code is quite stable, so the reference
|
|
|
241 |
here includes the latest version number. Versions of the zlib source are
|
|
|
242 |
not compatible between the 1.1.x and 1.2.x series; if you wish to
|
|
|
243 |
compile in zlib (as opposed to linking to a separately build dynamic
|
|
|
244 |
library) you must use a 1.2.x version.
|
|
|
245 |
|
|
|
246 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
247 |
<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Third-party libraries: authoritative sources</font><hr>
|
|
|
248 |
<tr> <td valign=top>JPEG
|
|
|
249 |
<td>
|
|
|
250 |
<td><a href="ftp://ftp.uu.net/graphics/jpeg/"
|
|
|
251 |
class="offsite">ftp://ftp.uu.net/graphics/jpeg/</a><a
|
|
|
252 |
href="ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz"
|
|
|
253 |
class="offsite">jpegsrc.v6b.tar.gz</a><br>
|
|
|
254 |
<a href="ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/"
|
|
|
255 |
class="offsite">ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/</a><a
|
|
|
256 |
href="ftp://ftp.simtel.net/pub/simtelnet/msdos/graphics/jpegsr6b.zip">jpegsr6b.zip</a>
|
|
|
257 |
|
|
|
258 |
<tr> <td valign=top>PNG
|
|
|
259 |
<td>
|
|
|
260 |
<td><a href="http://www.libpng.org/pub/png/src/"
|
|
|
261 |
class="offsite">http://www.libpng.org/pub/png/src/</a>libpng-#.#.#.tar.gz<br>
|
|
|
262 |
<a href="http://www.libpng.org/pub/png/src/"
|
|
|
263 |
class="offsite">http://www.libpng.org/pub/png/src/</a>lpng###.zip<br>
|
|
|
264 |
<a href="ftp://swrinde.nde.swri.edu/pub/png/src/"
|
|
|
265 |
class="offsite">ftp://swrinde.nde.swri.edu/pub/png/src/</a>libpng-#.#.#.tar.gz<br>
|
|
|
266 |
<a href="ftp://swrinde.nde.swri.edu/pub/png/src/"
|
|
|
267 |
class="offsite">ftp://swrinde.nde.swri.edu/pub/png/src/</a>lpng###.zip
|
|
|
268 |
|
|
|
269 |
<tr> <td valign=top>zlib (latest)
|
|
|
270 |
<td>
|
|
|
271 |
<td> <a href="http://www.gzip.org/zlib/zlib-1.2.1.tar.gz"
|
|
|
272 |
class="offsite">http://www.gzip.org/zlib/zlib-1.2.1.tar.gz</a><br>
|
|
|
273 |
<a href="http://www.gzip.org/zlib/zlib121.zip"
|
|
|
274 |
class="offsite">http://www.gzip.org/zlib/zlib121.zip</a><br>
|
|
|
275 |
See the <a href="http://www.gzip.org/zlib/">official website</a>
|
|
|
276 |
for a list of mirrors.
|
|
|
277 |
<tr> <td valign=top>jbig2dec
|
|
|
278 |
<td>
|
|
|
279 |
<td> <a href="http://sourceforge.net/project/showfiles.php?group_id=28301"
|
|
|
280 |
class="offsite">http://sourceforge.net/project/showfiles.php?group_id=28301</a><br>
|
|
|
281 |
</table></blockquote>
|
|
|
282 |
|
|
|
283 |
<p>
|
|
|
284 |
On DOS or MS Windows one ordinarily uses the zip file kits, in other
|
|
|
285 |
environments the compressed tar files, but this is simply a matter of
|
|
|
286 |
convenience, since for the same version of the software the compressed tar
|
|
|
287 |
file has the same contents as the zip file. Note that each of these
|
|
|
288 |
libraries has <b><em>its own version number</em></b> that has
|
|
|
289 |
<b><em>nothing to do with Ghostscript's version number</em></b>; you should
|
|
|
290 |
get the highest numbered version. (If you encounter difficulties in the
|
|
|
291 |
build process you might have to use a lower-numbered version, but don't
|
|
|
292 |
worry about this yet.) If you're running Linux, you might check whether
|
|
|
293 |
these libraries are already available in source form on your system, since
|
|
|
294 |
many Linux distributors include them; but we advise you to get the highest
|
|
|
295 |
version from the Net if you can.
|
|
|
296 |
|
|
|
297 |
<hr>
|
|
|
298 |
|
|
|
299 |
<h2><a name="Unpack"></a>How to unpack the source code</h2>
|
|
|
300 |
|
|
|
301 |
<p>
|
|
|
302 |
Unfortunately there are no generally accepted standards for how to package
|
|
|
303 |
source code into archives, so the instructions for unpacking Ghostscript are
|
|
|
304 |
longer than they should be. We begin with a brief explanation of how to
|
|
|
305 |
extract the two kinds of archive files.
|
|
|
306 |
|
|
|
307 |
<h3><a name="Tarfiles"></a>How to unpack compressed tar files generally</h3>
|
|
|
308 |
|
|
|
309 |
<p>
|
|
|
310 |
Tar (<b><tt>.tar</tt></b>) files are the <em>de facto</em> standard for
|
|
|
311 |
archiving files on Unix (every Unix system has the <b><tt>tar</tt></b>
|
|
|
312 |
program), and programs to extract their contents are also widely available
|
|
|
313 |
for DOS, MS Windows, and VMS. To economize on space and downloading time,
|
|
|
314 |
Ghostscript's tar files are compressed with GNU <b><tt>gzip</tt></b>, which
|
|
|
315 |
adds the suffix "<b><tt>.gz</tt></b>" to the file name, giving
|
|
|
316 |
"<b><tt>.tar.gz</tt></b>".
|
|
|
317 |
|
|
|
318 |
<p>
|
|
|
319 |
To unpack a compressed tar file <b><tt>MyArchive.tar.gz</tt></b> you
|
|
|
320 |
must both decompress it and extract the contents. You can do this in two
|
|
|
321 |
steps, one to decompress the file and another to unpack it:
|
|
|
322 |
|
|
|
323 |
<blockquote>
|
|
|
324 |
<b><tt>gzip -d MyArchive.tar.gz</tt></b>
|
|
|
325 |
<br><b><tt>tar -xf MyArchive.tar</tt></b>
|
|
|
326 |
</blockquote>
|
|
|
327 |
|
|
|
328 |
<p>
|
|
|
329 |
or in a pipeline:
|
|
|
330 |
|
|
|
331 |
<blockquote>
|
|
|
332 |
<b><tt>gzip -d -c MyArchive.tar.gz | tar -xf -</tt></b>
|
|
|
333 |
</blockquote>
|
|
|
334 |
|
|
|
335 |
<p>
|
|
|
336 |
or, if you have a program like GNU <b><tt>tar</tt></b> that can handle
|
|
|
337 |
compressed tar files, with a single command:
|
|
|
338 |
|
|
|
339 |
<blockquote>
|
|
|
340 |
<b><tt>tar -zxf MyArchive.tar.gz</tt></b>
|
|
|
341 |
</blockquote>
|
|
|
342 |
|
|
|
343 |
<p>
|
|
|
344 |
The <b><tt>tar</tt></b> program automatically preserves directory structure
|
|
|
345 |
in extracting files. The Ghostscript source archive puts all files under a
|
|
|
346 |
directory <b><tt>gs</tt></b>#.##, so using <b><tt>tar</tt></b> to unpack a
|
|
|
347 |
compressed archive should always properly create that directory, which we
|
|
|
348 |
will call the "gs directory". Make sure you're positioned in the
|
|
|
349 |
<b><em>parent</em></b> of the gs directory <b><em>before</em></b> unpacking
|
|
|
350 |
the files. If a subdirectory doesn't already exist, <b><tt>tar</tt></b>
|
|
|
351 |
creates it.
|
|
|
352 |
|
|
|
353 |
<p>
|
|
|
354 |
Some other programs -- under MS Windows, for instance -- can also unpack
|
|
|
355 |
compressed tar files, but they may not automatically preserve directory
|
|
|
356 |
structure nor even extract files into the current directory. If you use
|
|
|
357 |
one of these, you must
|
|
|
358 |
|
|
|
359 |
<ul>
|
|
|
360 |
<li>set the program's options to "Use folder names" or the equivalent, and
|
|
|
361 |
<li>check that it is extracting files into the right place.
|
|
|
362 |
</ul>
|
|
|
363 |
|
|
|
364 |
<h3><a name="Zipfiles"></a>How to unpack zip files generally</h3>
|
|
|
365 |
|
|
|
366 |
<p>
|
|
|
367 |
Zip files are the <em>de facto</em> standard for archiving files on DOS and
|
|
|
368 |
MS Windows, and programs to extract their contents are widely available for
|
|
|
369 |
DOS, MS Windows, Unix, VMS, and other platforms. Zip files are at once an
|
|
|
370 |
archive format and a compressed format, so an unzipping program
|
|
|
371 |
decompresses and extracts archived files as a single step.
|
|
|
372 |
|
|
|
373 |
<p>
|
|
|
374 |
One common 16-bit DOS program is <b><tt>pkunzip</tt></b>, which comes in
|
|
|
375 |
the <b><tt>pkzip</tt></b> package. If you use this, you should ensure that
|
|
|
376 |
you have at least version 2.04g, because with its <b><tt>-d</tt></b>
|
|
|
377 |
switch, that version of <b><tt>pkunzip</tt></b> preserves the directory
|
|
|
378 |
structure of archived files when extracting them; see below. Another
|
|
|
379 |
popular free program to unpack zip archives, available for DOS and MS
|
|
|
380 |
Windows (16-bit and 32-bit), Unix, VMS, and other platforms, is InfoZIP
|
|
|
381 |
<b><tt>unzip</tt></b>:
|
|
|
382 |
|
|
|
383 |
<blockquote>
|
|
|
384 |
<a href="http://www.info-zip.org/pub/infozip/UnZip.html"
|
|
|
385 |
class="offsite">http://www.info-zip.org/pub/infozip/UnZip.html</a>
|
|
|
386 |
</blockquote>
|
|
|
387 |
|
|
|
388 |
<p>
|
|
|
389 |
Unlike <b><tt>pkunzip</tt></b>, InfoZIP <b><tt>unzip</tt></b> automatically
|
|
|
390 |
preserves the directory structure of extracted files. So if you have a zip
|
|
|
391 |
archive <b><tt>MyArchive.zip</tt></b>:
|
|
|
392 |
|
|
|
393 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
394 |
<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Extracting zipped files</font><hr>
|
|
|
395 |
<tr valign=bottom>
|
|
|
396 |
<th align=left>Command
|
|
|
397 |
<td>
|
|
|
398 |
<th align=left>Preserves directory structure
|
|
|
399 |
<tr> <td colspan=3><hr>
|
|
|
400 |
<tr valign=top> <td><b><tt>pkunzip MyArchive.zip</tt></b>
|
|
|
401 |
<td>
|
|
|
402 |
<td>Does <b><em>NOT</em></b>
|
|
|
403 |
<tr valign=top> <td><b><tt>pkunzip -d MyArchive.zip</tt></b>
|
|
|
404 |
<td>
|
|
|
405 |
<td><b><em>DOES</em></b> (note the <b><tt>-d</tt></b> switch)
|
|
|
406 |
<tr valign=top> <td><b><tt>unzip MyArchive.zip</tt></b>
|
|
|
407 |
<td>
|
|
|
408 |
<td><b><em>DOES</em></b>
|
|
|
409 |
</table></blockquote>
|
|
|
410 |
|
|
|
411 |
<p>
|
|
|
412 |
As with the compressed tar files, make sure you're positioned in the
|
|
|
413 |
<b><em>parent</em></b> of the gs directory <b><em>before</em></b> unpacking
|
|
|
414 |
the files. If a subdirectory doesn't already exist, <b><tt>zip</tt></b> or
|
|
|
415 |
<b><tt>pkunzip -d</tt></b> creates it.
|
|
|
416 |
|
|
|
417 |
<h3><a name="Unpack_Ghostscript"></a>How to unpack Ghostscript itself</h3>
|
|
|
418 |
|
|
|
419 |
<p>
|
|
|
420 |
At this point you have <a href="#Acquiring">acquired all the source code</a>
|
|
|
421 |
and are ready to unpack it according to the preceding guidelines for <a
|
|
|
422 |
href="#Tarfiles">tar files</a> or <a href="#Zipfiles">zip files</a>. To
|
|
|
423 |
unpack the Ghostscript source, make the <b><em>parent</em></b> of the (new)
|
|
|
424 |
gs directory the current directory.
|
|
|
425 |
|
|
|
426 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
427 |
<tr> <th align=left valign=top>2-step:
|
|
|
428 |
<td>
|
|
|
429 |
<td><b><tt>gzip -d ghostscript-</tt></b>#.##<b><tt>.tar.gz</tt></b><br><b><tt>tar -xf ghostscript-</tt></b>#.##<b><tt>.tar</tt></b>
|
|
|
430 |
<tr><td>
|
|
|
431 |
<tr> <th align=left valign=top>Pipe:
|
|
|
432 |
<td>
|
|
|
433 |
<td><b><tt>gzip -d -c ghostscript-</tt></b>#.##<b><tt>.tar.gz | tar -xf -</tt></b>
|
|
|
434 |
<tr><td>
|
|
|
435 |
<tr> <th align=left valign=top>GNU <b><tt>tar</tt></b>:
|
|
|
436 |
<td>
|
|
|
437 |
<td><b><tt>tar -zxf ghostscript-</tt></b>#.##<b><tt>.tar.gz</tt></b>
|
|
|
438 |
<tr><td>
|
|
|
439 |
<tr> <th align=left valign=top><b><tt>pkunzip</tt></b>:
|
|
|
440 |
<td>
|
|
|
441 |
<td><b><tt>pkunzip -d gs</tt></b>###<b><tt>sr1.zip</tt></b><br><b><tt>pkunzip -d gs</tt></b>###<b><tt>sr2.zip</tt></b><br>...
|
|
|
442 |
<tr><td>
|
|
|
443 |
<tr> <th align=left valign=top><tt>unzip</tt>:
|
|
|
444 |
<td>
|
|
|
445 |
<td><b><tt>unzip gs</tt></b>###<b><tt>src.zip</tt></b>
|
|
|
446 |
</table></blockquote>
|
|
|
447 |
|
|
|
448 |
<p>
|
|
|
449 |
All the Ghostscript source files are now in subdirectories of the gs
|
|
|
450 |
directory.
|
|
|
451 |
|
|
|
452 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
453 |
<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">Source subdirectories</font><hr>
|
|
|
454 |
<tr> <th valign=bottom align=left>Subdirectory
|
|
|
455 |
<td>
|
|
|
456 |
<th valign=bottom align=left>Contents
|
|
|
457 |
<tr> <td colspan=5><hr>
|
|
|
458 |
<tr> <td><b><tt>src/</tt></b>
|
|
|
459 |
<td>
|
|
|
460 |
<td>C source code and makefiles
|
|
|
461 |
<tr> <td><b><tt>lib/</tt></b>
|
|
|
462 |
<td>
|
|
|
463 |
<td>PostScript files and scripts used when running Ghostscript
|
|
|
464 |
<tr> <td><b><tt>doc/</tt></b>
|
|
|
465 |
<td>
|
|
|
466 |
<td>Documentation
|
|
|
467 |
<tr> <td><b><tt>man/</tt></b>
|
|
|
468 |
<td>
|
|
|
469 |
<td>Unix <b><tt>man</tt></b> pages
|
|
|
470 |
<tr> <td><b><tt>examples/</tt></b>
|
|
|
471 |
<td>
|
|
|
472 |
<td>Sample PostScript files
|
|
|
473 |
</table></blockquote>
|
|
|
474 |
|
|
|
475 |
<h3><a name="Unpack_libraries"></a>How to unpack the third-party libraries</h3>
|
|
|
476 |
|
|
|
477 |
<p>
|
|
|
478 |
The Ghostscript makefiles expect to find the JPEG, PNG, and zlib source code
|
|
|
479 |
in specific subdirectories of the <b><tt>gs</tt></b> directory, and this
|
|
|
480 |
means you must pay careful attention to unpacking the source code for these
|
|
|
481 |
packages. Use the same method for all of them, no matter how they're
|
|
|
482 |
packaged:
|
|
|
483 |
|
|
|
484 |
<ol>
|
|
|
485 |
<li>Make the gs directory current.
|
|
|
486 |
<li>Unpack the archive file, creating a subdirectory (which will include a
|
|
|
487 |
version number).
|
|
|
488 |
<li>Whatever the subdirectory's original name, rename it to the versionless
|
|
|
489 |
name shown just below.
|
|
|
490 |
</ol>
|
|
|
491 |
|
|
|
492 |
<p>
|
|
|
493 |
If you're uncertain how to unpack an archive, review the sections on <a
|
|
|
494 |
href="#Tarfiles">compressed tar files</a> and <a href="#Zipfiles">zip
|
|
|
495 |
files</a>.
|
|
|
496 |
|
|
|
497 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
498 |
<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">3d-party software subdirectories</font><hr>
|
|
|
499 |
<tr> <th valign=bottom align=left>Package
|
|
|
500 |
<td>
|
|
|
501 |
<th valign=bottom align=left>Possible<br>original name
|
|
|
502 |
<td>
|
|
|
503 |
<th valign=bottom align=left>Rename to
|
|
|
504 |
<tr> <td colspan=5><hr>
|
|
|
505 |
<tr> <td>JPEG
|
|
|
506 |
<td>
|
|
|
507 |
<td><b><tt>./jpeg-6b</tt></b>
|
|
|
508 |
<td>
|
|
|
509 |
<td><b><tt>./jpeg</tt></b>
|
|
|
510 |
<tr> <td>PNG
|
|
|
511 |
<td>
|
|
|
512 |
<td><b><tt>./libpng-</tt></b>#.##
|
|
|
513 |
<td>
|
|
|
514 |
<td><b><tt>./libpng</tt></b>
|
|
|
515 |
<tr> <td>zlib
|
|
|
516 |
<td>
|
|
|
517 |
<td><b><tt>./zlib-</tt></b>#.#.#
|
|
|
518 |
<td>
|
|
|
519 |
<td><b><tt>./zlib</tt></b>
|
|
|
520 |
</table></blockquote>
|
|
|
521 |
|
|
|
522 |
<hr>
|
|
|
523 |
|
|
|
524 |
<h2><a name="Bug_check"></a>How to check for post-release bug fixes</h2>
|
|
|
525 |
|
|
|
526 |
<p>
|
|
|
527 |
Bug information and fixes are tracked on Ghostscript Bugzilla.
|
|
|
528 |
For more information, please visit
|
|
|
529 |
|
|
|
530 |
<blockquote>
|
|
|
531 |
<a href="http://bugs.ghostscript.com">
|
|
|
532 |
http://bugs.ghostscript.com</a>
|
|
|
533 |
</blockquote>
|
|
|
534 |
|
|
|
535 |
<hr>
|
|
|
536 |
|
|
|
537 |
<h2><a name="Makefile_overview"></a>How to prepare the makefiles</h2>
|
|
|
538 |
|
|
|
539 |
<p>
|
|
|
540 |
The Ghostscript makefiles are very large and complex in order to deal with
|
|
|
541 |
the diverse requirements of all the different systems where they may be
|
|
|
542 |
used.
|
|
|
543 |
|
|
|
544 |
<p>
|
|
|
545 |
Ghostscript has an automatic configuration script. If you're on unix or
|
|
|
546 |
a system that supports unix shell scripts, this is the easiest option to use.
|
|
|
547 |
Simply type:
|
|
|
548 |
|
|
|
549 |
<blockquote><pre>
|
|
|
550 |
./configure
|
|
|
551 |
</blockquote>
|
|
|
552 |
|
|
|
553 |
from the top level of the ghostscript source directory. It should configure
|
|
|
554 |
itself based on what's available on your system, warn you of any missing
|
|
|
555 |
dependencies, and generate a Makefile. At this point you can skip to the
|
|
|
556 |
section <a href="#Invoke_make">invoking make</a> below. Also, many common
|
|
|
557 |
configuration options (like install location) can be set through options
|
|
|
558 |
to the configure script. Type '<tt>./configure --help</tt>' for a complete
|
|
|
559 |
listing. Note that the configuration option is only available with the
|
|
|
560 |
unix .tar distributions of the source.
|
|
|
561 |
|
|
|
562 |
<p>
|
|
|
563 |
Note that if you're building Ghostscript from development source out of
|
|
|
564 |
a repository instead of from a released source package, you should run
|
|
|
565 |
'<tt>./autogen.sh</tt>' instead of <tt>./configure.</tt> This script
|
|
|
566 |
takes all the same options that configure does.
|
|
|
567 |
|
|
|
568 |
<p>
|
|
|
569 |
If your system doesn't support the configure script or you don't wish to
|
|
|
570 |
use it, you can use the traditional ghostscript makefile system, editing
|
|
|
571 |
the options by hand to match your system as described below.
|
|
|
572 |
Fortunately, the only makefiles you're likely to want to change are
|
|
|
573 |
relatively small ones containing platform-specific information.
|
|
|
574 |
|
|
|
575 |
<blockquote><a name="Platform-specific_makefiles"></a><table cellpadding=0 cellspacing=0>
|
|
|
576 |
<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Platform-specific makefiles</font><hr>
|
|
|
577 |
<tr> <th align=left>Makefile
|
|
|
578 |
<td>
|
|
|
579 |
<th align=left>Used for
|
|
|
580 |
<tr> <td colspan=3><hr>
|
|
|
581 |
<tr> <td><b><tt>Makefile.in</tt></b>
|
|
|
582 |
<td>
|
|
|
583 |
<td>Template makefile for the autoconf build
|
|
|
584 |
<tr> <td><b><tt>bcwin32.mak</tt></b>
|
|
|
585 |
<td>
|
|
|
586 |
<td>MS Windows with Borland/Inprise compilers
|
|
|
587 |
<tr> <td><b><tt>msvc32.mak</tt></b>
|
|
|
588 |
<td>
|
|
|
589 |
<td>MS Windows with Microsoft Visual C++ version 4 to 7.
|
|
|
590 |
<tr> <td><b><tt>openvms.mak</tt></b>
|
|
|
591 |
<td>
|
|
|
592 |
<td>OpenVMS
|
|
|
593 |
<tr> <td><b><tt>os2.mak</tt></b>
|
|
|
594 |
<td>
|
|
|
595 |
<td>OS/2 with the gcc/emx compiler
|
|
|
596 |
<tr> <td><b><tt>unix-gcc.mak</tt></b>
|
|
|
597 |
<td>
|
|
|
598 |
<td>Unix with gcc
|
|
|
599 |
<tr> <td><b><tt>unixansi.mak</tt></b>
|
|
|
600 |
<td>
|
|
|
601 |
<td>Unix with ANSI C compilers other than gcc
|
|
|
602 |
<tr> <td><b><tt>watcw32.mak</tt></b>
|
|
|
603 |
<td>
|
|
|
604 |
<td>MS Windows with Watcom compilers
|
|
|
605 |
<tr> <td>
|
|
|
606 |
<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Platform-independent makefiles</font><hr>
|
|
|
607 |
<tr> <td><b><tt>contrib.mak</tt></b>
|
|
|
608 |
<td>
|
|
|
609 |
<td>Contributed device drivers
|
|
|
610 |
<tr> <td><b><tt>devs.mak</tt></b>
|
|
|
611 |
<td>
|
|
|
612 |
<td>Maintained device drivers
|
|
|
613 |
<tr> <td><b><tt>gs.mak</tt></b>
|
|
|
614 |
<td>
|
|
|
615 |
<td>Documentation and miscellany
|
|
|
616 |
<tr> <td><b><tt>icclib.mak</tt></b>
|
|
|
617 |
<td>
|
|
|
618 |
<td>ICC color correction library
|
|
|
619 |
<tr> <td><b><tt>ijs.mak</tt></b>
|
|
|
620 |
<td>
|
|
|
621 |
<td>IJS raster driver library
|
|
|
622 |
<tr> <td><b><tt>int.mak</tt></b>
|
|
|
623 |
<td>
|
|
|
624 |
<td>Main makefile for the PostScript & PDF interpreter
|
|
|
625 |
<tr> <td><b><tt>jpeg.mak</tt></b>
|
|
|
626 |
<td>
|
|
|
627 |
<td>JPEG library
|
|
|
628 |
<tr> <td><b><tt>lib.mak</tt></b>
|
|
|
629 |
<td>
|
|
|
630 |
<td>Graphics engine
|
|
|
631 |
<tr> <td><b><tt>libpng.mak</tt></b>
|
|
|
632 |
<td>
|
|
|
633 |
<td>PNG library
|
|
|
634 |
<tr> <td><b><tt>version.mak</tt></b>
|
|
|
635 |
<td>
|
|
|
636 |
<td>Version and release date
|
|
|
637 |
<tr> <td><b><tt>zlib.mak</tt></b>
|
|
|
638 |
<td>
|
|
|
639 |
<td>zlib library
|
|
|
640 |
</table></blockquote>
|
|
|
641 |
|
|
|
642 |
<p>
|
|
|
643 |
Since these files change from one Ghostscript version to another, sometimes
|
|
|
644 |
substantially, and since they all include documentation for the various
|
|
|
645 |
options, here we don't duplicate most of that documentation: we recommend
|
|
|
646 |
strongly that you review the entire makefile specific for your operating
|
|
|
647 |
system and compiler before building Ghostscript.
|
|
|
648 |
|
|
|
649 |
<h3><a name="Preparing_makefiles"></a>Changes for your environment</h3>
|
|
|
650 |
|
|
|
651 |
<p>
|
|
|
652 |
You must edit the platform-specific makefile to change any of these:
|
|
|
653 |
|
|
|
654 |
<ul>
|
|
|
655 |
<li>The name of the makefile itself (<b><tt>MAKEFILE</tt></b> macro)
|
|
|
656 |
<li>The locations to install Ghostscript files (<b><tt>prefix</tt></b> etc.)
|
|
|
657 |
<li>The default search paths for the initialization and font files
|
|
|
658 |
(<b><tt>GS_LIB_DEFAULT</tt></b> macro)
|
|
|
659 |
<li>The debugging options (<b><tt>DEBUG</tt></b> and <b><tt>TDEBUG</tt></b>
|
|
|
660 |
macros)
|
|
|
661 |
<li>Which optional features to include (<b><tt>FEATURE_DEVS</tt></b>)
|
|
|
662 |
<li>Which device drivers to include (<b><tt>DEVICE_DEVS</tt></b> and
|
|
|
663 |
<b><tt>DEVICE_DEVS</tt></b>{<em>1--20</em>} macros)
|
|
|
664 |
<li>Default resolution parameters for some printer drivers
|
|
|
665 |
(<b><tt>devs.mak</tt></b> or <b><tt>contrib.mak</tt></b>, whichever defines
|
|
|
666 |
the driver)
|
|
|
667 |
|
|
|
668 |
</ul>
|
|
|
669 |
|
|
|
670 |
<p>
|
|
|
671 |
The <a href="#Platform-specific_makefiles">platform-specific makefiles</a>
|
|
|
672 |
include comments describing all these except the
|
|
|
673 |
<b><tt>DEVICE_DEVS</tt></b> options. These are described in
|
|
|
674 |
<b><tt>devs.mak</tt></b> and <b><tt>contrib.mak</tt></b>, even though the
|
|
|
675 |
file that must be edited to select them is the <a
|
|
|
676 |
href="#Platform-specific_makefiles">platform-specific makefile</a>. Check
|
|
|
677 |
also the <b><tt>JVERSION</tt></b> and <b><tt>PVERSION</tt></b> macros in
|
|
|
678 |
the platform-specific makefile, and adjust them if they don't match the
|
|
|
679 |
JPEG and PNG library versions you're using: see <b><tt>jpeg.mak</tt></b>
|
|
|
680 |
and <b><tt>libpng.mak</tt></b> for more information.
|
|
|
681 |
|
|
|
682 |
<p>
|
|
|
683 |
Some platform-specific options are described in the sections for individual
|
|
|
684 |
platforms. See the "Options" section near the beginning of the relevant
|
|
|
685 |
makefile for more information.
|
|
|
686 |
|
|
|
687 |
<h3><a name="Features_and_devices"></a>Selecting features and devices</h3>
|
|
|
688 |
|
|
|
689 |
<p>
|
|
|
690 |
You may build Ghostscript with any of a variety of features and with any
|
|
|
691 |
subset of the available device drivers. The complete list of features is
|
|
|
692 |
in a comment at the beginning of <b><tt>gs.mak</tt></b>, and the complete
|
|
|
693 |
list of drivers in comments at the beginning of <b><tt>devs.mak</tt></b>
|
|
|
694 |
and <b><tt>contrib.mak</tt></b>. To find what devices a platform-specific
|
|
|
695 |
makefile selects to include in the executable, look in it for all lines of
|
|
|
696 |
the form
|
|
|
697 |
|
|
|
698 |
<blockquote>
|
|
|
699 |
<b><tt>FEATURE_DEVS=</tt></b><em>{list of features}</em><br>
|
|
|
700 |
<b><tt>DEVICE_DEVS</tt></b>*<b><tt>=</tt></b><em>{list of devices}</em>
|
|
|
701 |
</blockquote>
|
|
|
702 |
|
|
|
703 |
<p>
|
|
|
704 |
For example, if the makefile has
|
|
|
705 |
|
|
|
706 |
<blockquote><b><tt>
|
|
|
707 |
FEATURE_DEVS=$(PSD)level2.dev
|
|
|
708 |
</tt></b></blockquote>
|
|
|
709 |
|
|
|
710 |
<p>
|
|
|
711 |
indicating that only the PostScript Level 2 facilities should be included,
|
|
|
712 |
you might make it
|
|
|
713 |
|
|
|
714 |
<blockquote><b><tt>
|
|
|
715 |
FEATURE_DEVS=$(PSD)level2.dev $(PSD)pdf.dev
|
|
|
716 |
</tt></b></blockquote>
|
|
|
717 |
|
|
|
718 |
<p>
|
|
|
719 |
to add the ability to interpret PDF files. (In fact,
|
|
|
720 |
<b><tt>FEATURE_DEVS</tt></b> in the current Unix makefiles already includes
|
|
|
721 |
<b><tt>$(PSD)pdf.dev</tt></b>.) The Unix makefile also defines
|
|
|
722 |
|
|
|
723 |
<blockquote><b><tt>
|
|
|
724 |
DEVICE_DEVS=$(DD)x11.dev
|
|
|
725 |
</tt></b></blockquote>
|
|
|
726 |
|
|
|
727 |
<p>
|
|
|
728 |
indicating that the X Windows driver should be included, but since
|
|
|
729 |
platform-specific makefiles as distributed normally include many of the
|
|
|
730 |
possible features and drivers, you will probably rather remove from the
|
|
|
731 |
makefile the features and drivers you don't want. It does no harm to
|
|
|
732 |
include unneeded features and devices, but the resulting executable will be
|
|
|
733 |
larger than needed.
|
|
|
734 |
|
|
|
735 |
<p>
|
|
|
736 |
You may edit the <b><tt>FEATURE_DEVS</tt></b> line to select or omit any of
|
|
|
737 |
the features listed near the beginning of <b><tt>gs.mak</tt></b>, and the
|
|
|
738 |
<b><tt>DEVICE_DEVS</tt></b>* lines to select or omit any of the device
|
|
|
739 |
drivers listed near the beginning of <b><tt>devs.mak</tt></b> and
|
|
|
740 |
<b><tt>contrib.mak</tt></b>. The first device listed in the definition of
|
|
|
741 |
<b><tt>DEVICE_DEVS</tt></b> becomes the default device for this executable;
|
|
|
742 |
see the usage documentation for <a href="Use.htm#Output_device">how to
|
|
|
743 |
select an output device</a> at run time using the
|
|
|
744 |
<a href="Use.htm#DEVICE_switch"><b><tt>-sDEVICE=</tt></b></a> switch. If
|
|
|
745 |
you can't fit all the devices on a single line, you may add lines defining
|
|
|
746 |
|
|
|
747 |
<blockquote>
|
|
|
748 |
<b><tt>DEVICE_DEVS1=$(DD)</tt></b><em>{dev11}</em><b><tt>.dev</tt></b> ... <b><tt>$(DD)</tt></b><em>{dev1n}</em><b><tt>.dev</tt></b>
|
|
|
749 |
<br><b><tt>DEVICE_DEVS2=$(DD)</tt></b><em>{dev21}</em><b><tt>.dev</tt></b> ... <b><tt>$(DD)</tt></b><em>{dev2n}</em><b><tt>.dev</tt></b>
|
|
|
750 |
</blockquote>
|
|
|
751 |
|
|
|
752 |
<p>
|
|
|
753 |
etc., up to <b><tt>DEVICE_DEVS15</tt></b>. Don't use continuation lines --
|
|
|
754 |
on some platforms they don't work.
|
|
|
755 |
|
|
|
756 |
<p>
|
|
|
757 |
Note that if you want to include a driver named <em>xxx</em>, you must put
|
|
|
758 |
<b><tt>$(DD)</tt></b><em>xxx</em><b><tt>.dev</tt></b> in
|
|
|
759 |
<b><tt>DEVICE_DEVS</tt></b>*. Similarly, if you want to include a feature
|
|
|
760 |
related to the PostScript or PDF language interpreters (PostScript level
|
|
|
761 |
1 .. 3, or other language features such as the ability to read EPSF files or
|
|
|
762 |
TrueType font files), you must represent it as
|
|
|
763 |
<b><tt>$(PSD)</tt></b><em>xxx</em><b><tt>.dev</tt></b>. If you are linking
|
|
|
764 |
only the graphics library -- not the language interpreter(s) -- with an
|
|
|
765 |
application and want to include optional graphics library features such as
|
|
|
766 |
CIE color, you represent them as
|
|
|
767 |
<b><tt>$(GLD)</tt></b><em>xxx</em><b><tt>.dev</tt></b>.
|
|
|
768 |
|
|
|
769 |
<h4><a name="Precompiled_data"></a>Precompiled run-time data</h4>
|
|
|
770 |
|
|
|
771 |
<p>
|
|
|
772 |
Ghostscript normally reads a number of external data files at run time:
|
|
|
773 |
initialization files containing PostScript code, fonts, and other resources
|
|
|
774 |
such as halftones. By changing options in the top-level makefile for the
|
|
|
775 |
platform, you can cause some of these files to be compiled into the
|
|
|
776 |
executable: this simplifies installation, improves security, may reduce
|
|
|
777 |
memory requirements, and may be essential if you are planning on putting
|
|
|
778 |
Ghostscript into ROM.
|
|
|
779 |
|
|
|
780 |
<p>
|
|
|
781 |
To compile the initialization files (<b><tt>lib/gs_init.ps</tt></b>, etc.)
|
|
|
782 |
into the executable, change the <b><tt>0</tt></b> to a <b><tt>1</tt></b> in
|
|
|
783 |
the line
|
|
|
784 |
|
|
|
785 |
<blockquote><b><tt>
|
|
|
786 |
COMPILE_INITS=0
|
|
|
787 |
</tt></b></blockquote>
|
|
|
788 |
|
|
|
789 |
<p>
|
|
|
790 |
Compiled initialization includes the default font map.
|
|
|
791 |
It is used only if Ghostscript cannot find or open the default font
|
|
|
792 |
map file at run time.
|
|
|
793 |
|
|
|
794 |
<p>
|
|
|
795 |
To compile fonts into the executable, see <a
|
|
|
796 |
href="Fonts.htm#Precompiling">Precompiling fonts</a>.
|
|
|
797 |
|
|
|
798 |
<p>
|
|
|
799 |
To compile threshold-array halftones into the executable, see the "Compiled
|
|
|
800 |
halftone" section of <b><tt>int.mak</tt></b> for a sample makefile fragment,
|
|
|
801 |
<b><tt>genht.c</tt></b> for the syntax of halftone data files, and
|
|
|
802 |
<b><tt>lib/ht_ccsto.ps</tt></b> for a sample data file. Note that even
|
|
|
803 |
though the data files use PostScript syntax, compiled halftones do not
|
|
|
804 |
require the PostScript interpreter and may be used with the graphics library
|
|
|
805 |
alone.
|
|
|
806 |
|
|
|
807 |
<h4><a name="GNU_readline"></a>GNU readline</h4>
|
|
|
808 |
|
|
|
809 |
<p>
|
|
|
810 |
AFPL Ghostscript does not include an interface to GNU readline. A user
|
|
|
811 |
contributed code for this purpose, which we spent significant time debugging
|
|
|
812 |
and then updating to track internal architectural changes in Ghostscript.
|
|
|
813 |
The contributor was willing to assign the copyright to Aladdin Enterprises
|
|
|
814 |
(the copyright holder of Ghostscript at the time), and to allow the code to
|
|
|
815 |
be distributed with the Aladdin Free Public License (AFPL) as well as the
|
|
|
816 |
GNU License (GPL). However, even though the GPL allows linking GPLed code
|
|
|
817 |
(such as the GNU readline library package) with non-GPLed code (such as all
|
|
|
818 |
the rest of AFPL Ghostscript) if one doesn't distribute the result, the Free
|
|
|
819 |
Software Foundation, creators of the GPL, have told us that in their
|
|
|
820 |
opinion, the GPL forbids distributing non-GPLed code that is merely
|
|
|
821 |
<em>intended</em> to be linked with GPLed code. We understand that FSF
|
|
|
822 |
takes this position in order to prevent the construction of software that is
|
|
|
823 |
partly GPLed and partly not GPLed, even though the text of the GPL does not
|
|
|
824 |
actually forbid this (it only forbids <em>distribution</em> of such
|
|
|
825 |
software). We think that FSF's position is legally questionable and not in
|
|
|
826 |
the best interest of users, but we do not have the resources to challenge
|
|
|
827 |
it, especially since FSF's attorney apparently supports it. Therefore, even
|
|
|
828 |
though we added the user-contributed interface to GNU readline in internal
|
|
|
829 |
Aladdin Ghostscript version 5.71 and had it working in version 5.93 (one of
|
|
|
830 |
the last beta versions before the 6.0 release), we removed it from the
|
|
|
831 |
Aladdin Ghostscript 6.0 distribution.
|
|
|
832 |
|
|
|
833 |
<p>
|
|
|
834 |
GPL Ghostscript distributions will include support for GNU readline. As
|
|
|
835 |
with other GPL Ghostscript components that are not included in AFPL
|
|
|
836 |
Ghostscript, the maintainers of Ghostscript will not attempt to run, link,
|
|
|
837 |
or even compile this code, or keep it current across changes in the rest of
|
|
|
838 |
Ghostscript. We will, however, welcome bug fixes or updates, and distribute
|
|
|
839 |
them with subsequent releases of GPL Ghostscript.
|
|
|
840 |
|
|
|
841 |
<p>
|
|
|
842 |
The first Ghostscript distribution to include GPL readline
|
|
|
843 |
support was GNU Ghostscript 6.0. Support has unfortunately
|
|
|
844 |
been spotty since then.
|
|
|
845 |
|
|
|
846 |
<p>
|
|
|
847 |
We put considerable work into making it possible for Ghostscript to use GNU
|
|
|
848 |
readline, including the creation and adjustment of internal software
|
|
|
849 |
interfaces specifically to serve this purpose. In principle, we should have
|
|
|
850 |
undone this work in AFPL Ghostscript, lest FSF object to it too as
|
|
|
851 |
intended to facilitate linking AFPL Ghostscript with GNU readline (as the
|
|
|
852 |
U.S. government has been said to do for code that merely provides APIs where
|
|
|
853 |
encryption may be added). However, we are willing to take this risk rather
|
|
|
854 |
than spend the time to undo the interface changes.
|
|
|
855 |
|
|
|
856 |
<p>
|
|
|
857 |
If you have comments or questions about this situation, please feel free to
|
|
|
858 |
contact the Free Software Foundation, authors of the GPL and copyright
|
|
|
859 |
holders of GNU readline, at <a href="mailto:gnu@gnu.org">gnu@gnu.org</a>,
|
|
|
860 |
and/or artofcode LLC, copyright holder of Ghostscript, at <a
|
|
|
861 |
href="mailto:raph@artofcode.com">raph@artofcode.com</a>.
|
|
|
862 |
|
|
|
863 |
<h3><a name="Makefile_setup"></a>Setting up "makefile"</h3>
|
|
|
864 |
|
|
|
865 |
<p>
|
|
|
866 |
After going through the steps just described to <a href="#Unpack">unpack
|
|
|
867 |
the
|
|
|
868 |
sources</a>, configure the build and make any desired
|
|
|
869 |
<a href="#Preparing_makefiles">changes to the
|
|
|
870 |
makefiles</a>, and unpack or create links to the <a
|
|
|
871 |
href="#Unpack_libraries">third party libraries</a>, as the final step in
|
|
|
872 |
preparing to build Ghostscript you must usually associate the name
|
|
|
873 |
"<b><tt>makefile</tt></b>" with the correct makefile for your environment so
|
|
|
874 |
the <b><tt>make</tt></b> command can find it. See the section on your
|
|
|
875 |
particular platform for how to do that if necessary.
|
|
|
876 |
|
|
|
877 |
<h3><a name="Invoke_make"></a>Invoking "make"</h3>
|
|
|
878 |
|
|
|
879 |
<dl>
|
|
|
880 |
<dt><b><tt>make</tt></b>
|
|
|
881 |
<dd>Builds Ghostscript without debugging options.
|
|
|
882 |
</dl>
|
|
|
883 |
|
|
|
884 |
<dl>
|
|
|
885 |
<dt><a name="Debugging"></a><b><tt>make debug</tt></b>
|
|
|
886 |
<dd>Builds Ghostscript with debugging options and additional internal error
|
|
|
887 |
checks. The program will be somewhat larger and slower, but it will behave
|
|
|
888 |
no differently unless you actually turn on debugging options at execution
|
|
|
889 |
time with the <b><tt>-DDEBUG</tt></b> or
|
|
|
890 |
<a href="Use.htm#Debugging"><b><tt>-Z</tt></b> command line switches</a>
|
|
|
891 |
described in the usage documentation.
|
|
|
892 |
</dl>
|
|
|
893 |
|
|
|
894 |
<dl>
|
|
|
895 |
<dt><b><tt>make pg</tt></b>
|
|
|
896 |
<dd>On Unix platforms, builds with the <b><tt>-pg</tt></b> compiler
|
|
|
897 |
switch, creating an executable for time profiling.
|
|
|
898 |
</dl>
|
|
|
899 |
|
|
|
900 |
<dl>
|
|
|
901 |
<dt><b><tt>make begin</tt></b>
|
|
|
902 |
<dd>On PC platforms, attempts a quick and dirty compilation of all the
|
|
|
903 |
<b><tt>.c</tt></b> files in the current directory. See the
|
|
|
904 |
<a href="#Make_begin">more detailed explanation</a>.
|
|
|
905 |
</dl>
|
|
|
906 |
|
|
|
907 |
<dl>
|
|
|
908 |
<dt><b><tt>make install</tt></b>
|
|
|
909 |
<dd>After building, installs the Ghostscript executables, support files,
|
|
|
910 |
and documentation, but does <b><em>not</em></b> install fonts. See the
|
|
|
911 |
<a href="Install.htm">installation documentation</a>.
|
|
|
912 |
</dl>
|
|
|
913 |
|
|
|
914 |
<dl>
|
|
|
915 |
<dt><b><tt>make clean</tt></b>
|
|
|
916 |
<dd>Deletes all the files created by the build process (relocatables,
|
|
|
917 |
executables, and miscellaneous temporary files). If you've built an
|
|
|
918 |
executable and want to save it, move it first to another place, because
|
|
|
919 |
"<b><tt>make clean</tt></b>" deletes it.
|
|
|
920 |
</dl>
|
|
|
921 |
|
|
|
922 |
<p>
|
|
|
923 |
<b><em>Note:</em></b> on most platforms some of these simple instructions don't
|
|
|
924 |
quite work in one way or another. Read the section on your specific
|
|
|
925 |
platform.
|
|
|
926 |
|
|
|
927 |
<h3><a name="Cross-compiling"></a>Cross-compiling</h3>
|
|
|
928 |
|
|
|
929 |
<p>
|
|
|
930 |
If you are compiling Ghostscript on machines <b>X1</b> ... <b>X</b><em>n</em> with
|
|
|
931 |
cross-compilers that generate code for machine <b>Y</b>, you must first
|
|
|
932 |
perform several extra steps on some machine <b>Z</b> (not necessarily of the
|
|
|
933 |
same type as either <b>X</b><em>i</em> or <b>Y</b>). First of all, choose a makefile
|
|
|
934 |
appropriate for <b>Z</b> and edit it to reflect the run-time options you
|
|
|
935 |
wish to include (<b><tt>FEATURE_DEVS</tt></b>, <b><tt>DEVICE_DEVS*</tt></b>,
|
|
|
936 |
and any other relevant options), just as for non-cross-compilation.
|
|
|
937 |
|
|
|
938 |
<p>
|
|
|
939 |
If <b>Z</b> runs Unix, perform the following steps:
|
|
|
940 |
<ol>
|
|
|
941 |
<li>On <b>Z</b>,
|
|
|
942 |
<blockquote>
|
|
|
943 |
<b><tt>make clean</tt></b><br>
|
|
|
944 |
<b><tt>make obj/arch.h obj/genconf obj/echogs</tt></b>
|
|
|
945 |
</blockquote>
|
|
|
946 |
|
|
|
947 |
<li>Edit <b><tt>obj/arch.h</tt></b> to reflect the architecture of <b>Y</b>.
|
|
|
948 |
|
|
|
949 |
<li>On <b>Z</b>,
|
|
|
950 |
<blockquote>
|
|
|
951 |
<b><tt>make CC=: CCLD=:</tt></b>
|
|
|
952 |
</blockquote>
|
|
|
953 |
|
|
|
954 |
<li>Copy the files <b><tt>obj/*.h</tt></b> from <b>Z</B> to the directory on
|
|
|
955 |
each <b>X</b><em>i</em> that will be used for compilation.
|
|
|
956 |
|
|
|
957 |
<li>Extract from the file <b><tt>obj/ldt.tr</tt></b> (on <b>Z</b>) the list
|
|
|
958 |
of <b><tt>.o</tt></b> files that will be linked: this gives the list of
|
|
|
959 |
source files that must be compiled.
|
|
|
960 |
|
|
|
961 |
<li>Do the compilations on <b>X</b><em>i</em>.
|
|
|
962 |
</ol>
|
|
|
963 |
|
|
|
964 |
<p>
|
|
|
965 |
If <b>Z</b> runs some version of Microsoft Windows with Microsoft Visual
|
|
|
966 |
C++, use the following steps. <em>NOTE: We have not actually tested
|
|
|
967 |
this.</em>
|
|
|
968 |
|
|
|
969 |
<ol>
|
|
|
970 |
<li>On <b>Z</b>,
|
|
|
971 |
<blockquote>
|
|
|
972 |
<b><tt>nmake clean</tt></b><br>
|
|
|
973 |
<b><tt>nmake obj\arch.h obj\genconf.exe obj\echogs.exe</tt></b>
|
|
|
974 |
</blockquote>
|
|
|
975 |
|
|
|
976 |
<li>Edit <b><tt>obj\arch.h</tt></b> to reflect the architecture of <b>Y</b>.
|
|
|
977 |
|
|
|
978 |
<li>On <b>Z</b>,
|
|
|
979 |
<blockquote>
|
|
|
980 |
<b><tt>nmake CC=rem LINK=rem</tt></b>
|
|
|
981 |
</blockquote>
|
|
|
982 |
|
|
|
983 |
<li>Copy the files <b><tt>obj\*.h</tt></b> from <b>Z</B> to the directory on
|
|
|
984 |
each <b>X</b><em>i</em> that will be used for compilation.
|
|
|
985 |
|
|
|
986 |
<li>Extract from the file <b><tt>obj\ldt.tr</tt></b> (on <b>Z</b>) the list
|
|
|
987 |
of <b><tt>.obj</tt></b> files that will be linked: this gives the list of
|
|
|
988 |
source files that must be compiled.
|
|
|
989 |
|
|
|
990 |
<li>Do the compilations on <b>X</b><em>i</em>.
|
|
|
991 |
</ol>
|
|
|
992 |
|
|
|
993 |
<hr>
|
|
|
994 |
|
|
|
995 |
<h2><a name="PC_build"></a>How to build Ghostscript from source (PC version)</h2>
|
|
|
996 |
|
|
|
997 |
<p>
|
|
|
998 |
All Ghostscript builds in PC (DOS and MS Windows) environments are 32- or
|
|
|
999 |
64-bit: 16-bit builds are not supported. The relevant makefiles are
|
|
|
1000 |
|
|
|
1001 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
1002 |
<tr><th colspan=5 bgcolor="#CCCC00"><hr><font size="+1">PC makefiles</font><hr>
|
|
|
1003 |
<tr> <th align=left>Makefile
|
|
|
1004 |
<td>
|
|
|
1005 |
<th align=left>Construction tools
|
|
|
1006 |
<td>
|
|
|
1007 |
<th align=left>For environment
|
|
|
1008 |
<tr> <td colspan=5><hr>
|
|
|
1009 |
<tr> <td valign=top><b><tt>bcwin32.mak</tt></b>
|
|
|
1010 |
<td>
|
|
|
1011 |
<td valign=top><a href="#Borland_build">Borland/Inprise C++ 4.x</a>
|
|
|
1012 |
<td>
|
|
|
1013 |
<td valign=top>32-bit MS Windows 3.1 + Win32s, 95, 98, NT
|
|
|
1014 |
<tr> <td valign=top><b><tt>msvc32.mak</tt></b>
|
|
|
1015 |
<td>
|
|
|
1016 |
<td valign=top><a href="#Microsoft_build">Microsoft Visual C++ 4 to 8</a>
|
|
|
1017 |
<td>
|
|
|
1018 |
<td valign=top>MS Windows 32-bit
|
|
|
1019 |
<tr> <td valign=top><b><tt>watcw32.mak</tt></b>
|
|
|
1020 |
<td>
|
|
|
1021 |
<td valign=top><a href="#Watcom_build">Watcom C/386 or C++</a>
|
|
|
1022 |
<td>
|
|
|
1023 |
<td valign=top>MS Windows 32-bit
|
|
|
1024 |
<tr> <td valign=top><b><tt>unix-gcc.mak</tt></b>
|
|
|
1025 |
<td>
|
|
|
1026 |
<td valign=top><a href="#Cygwin32_build">Cygnus gcc</a>
|
|
|
1027 |
<td>
|
|
|
1028 |
<td valign=top><a href="http://sourceware.cygnus.com/cygwin/">Cygnus gnu-win32</a>
|
|
|
1029 |
</table></blockquote>
|
|
|
1030 |
|
|
|
1031 |
<p>
|
|
|
1032 |
To build Ghostscript you need MS-DOS version 3.3 or later and
|
|
|
1033 |
Borland/Inprise C/C++ (4.0 or later); Microsoft Visual C++ (version 4.0 or
|
|
|
1034 |
later); Watcom C/386 (version 8.5 or later) or C++ (any version); or the
|
|
|
1035 |
free djgpp + go32 development system. The options in the makefiles are
|
|
|
1036 |
chosen to strike a balance between RAM consumption and likely usefulness.
|
|
|
1037 |
If you run <b><tt>make</tt></b> in directory <em>{dir}</em>, the default
|
|
|
1038 |
configuration generates an executable that assumes the Ghostscript
|
|
|
1039 |
initialization and font files are in directory
|
|
|
1040 |
<em>{dir}</em><b><tt>\lib</tt></b>.
|
|
|
1041 |
|
|
|
1042 |
<p>
|
|
|
1043 |
Note that the <b><tt>make</tt></b> program supplied with each PC compiler
|
|
|
1044 |
has a different name. We refer to this program generically as
|
|
|
1045 |
<b><tt>make</tt></b> everywhere else in this document, but you will find the
|
|
|
1046 |
correct name for each compiler in the relevant section below that discusses
|
|
|
1047 |
that compiler.
|
|
|
1048 |
|
|
|
1049 |
<p>
|
|
|
1050 |
You must have <b><tt>COMMAND.COM</tt></b> in your path to build Ghostscript.
|
|
|
1051 |
After making the changes needed to choose features and devices to build into
|
|
|
1052 |
the executable, you must create the directory where the compiler will do its
|
|
|
1053 |
work (normally the <b><tt>obj</tt></b> subdirectory of the current
|
|
|
1054 |
directory) and the directory where the compiled code will be placed
|
|
|
1055 |
(normally the <b><tt>bin</tt></b> subdirectory). Then to build the
|
|
|
1056 |
Ghostscript executable all you need do is give the <b><tt>make</tt></b>
|
|
|
1057 |
command.
|
|
|
1058 |
|
|
|
1059 |
<p><a name="Make_begin"></a>
|
|
|
1060 |
A special make target "<b><tt>begin</tt></b>" attempts to compile all the
|
|
|
1061 |
<b><tt>.c</tt></b> files in the current directory. Some of these
|
|
|
1062 |
compilations will fail, but the ones that succeed will go considerably
|
|
|
1063 |
faster because they don't individually pay the overhead of starting up the
|
|
|
1064 |
compiler. So a good strategy for building the executable for the first
|
|
|
1065 |
time, or after changing a widely used <b><tt>.h</tt></b> file, is to do the
|
|
|
1066 |
fast compilation of everything possible, then the controlled compilation of
|
|
|
1067 |
everything that failed in the first step:
|
|
|
1068 |
|
|
|
1069 |
<blockquote><b><tt>
|
|
|
1070 |
make begin<br>
|
|
|
1071 |
make
|
|
|
1072 |
</tt></b></blockquote>
|
|
|
1073 |
|
|
|
1074 |
<p>
|
|
|
1075 |
<b><em>Note:</em></b> if you unpack the Ghostscript sources on a DOS or MS Windows
|
|
|
1076 |
system from a Unix tar file, the unpacked files have linefeed alone as the
|
|
|
1077 |
line terminator (the Unix convention) instead of carriage return + linefeed
|
|
|
1078 |
(the Microsoft convention), which may make the C compiler unhappy. One
|
|
|
1079 |
simple way to fix this, if you have the InfoZIP <b><tt>zip</tt></b> and
|
|
|
1080 |
<b><tt>unzip</tt></b> programs, is
|
|
|
1081 |
|
|
|
1082 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
1083 |
<tr> <td><b><tt>zip -l CVTEMP.zip *.bat *.c *.h *.def *.rc</tt></b>
|
|
|
1084 |
<td>
|
|
|
1085 |
<td>(Letter "l", not the digit "1")
|
|
|
1086 |
<tr> <td><b><tt>unzip -o CVTEMP.zip</tt></b>
|
|
|
1087 |
<td>
|
|
|
1088 |
<td>(Rewrite all the same files correctly)
|
|
|
1089 |
<tr> <td><b><tt>del CVTEMP.zip</tt></b>
|
|
|
1090 |
<td>
|
|
|
1091 |
<td>(Delete the temporary zip file)
|
|
|
1092 |
</table></blockquote>
|
|
|
1093 |
|
|
|
1094 |
<h3><a name="Borland_build"></a>Borland/Inprise environment</h3>
|
|
|
1095 |
|
|
|
1096 |
<p>
|
|
|
1097 |
To compile Ghostscript with the Borland/Inprise environment (hereafter
|
|
|
1098 |
referred to as just "Borland"), you need Borland C++ (version 4.0 or later);
|
|
|
1099 |
specifically the compiler, <b><tt>make</tt></b> utility, and linker. You
|
|
|
1100 |
also need either the Borland assembler (version 1.0 or later) or the
|
|
|
1101 |
Microsoft assembler (version 4.0 or later).
|
|
|
1102 |
|
|
|
1103 |
<p>
|
|
|
1104 |
To create "<b><tt>makefile</tt></b>", give the command
|
|
|
1105 |
|
|
|
1106 |
<blockquote><b><tt>
|
|
|
1107 |
echo !include "src\bcwin32.mak" >makefile
|
|
|
1108 |
</tt></b></blockquote>
|
|
|
1109 |
|
|
|
1110 |
<p>
|
|
|
1111 |
To run the <b><tt>make</tt></b> program, give the commmand
|
|
|
1112 |
|
|
|
1113 |
<blockquote><b><tt>
|
|
|
1114 |
make
|
|
|
1115 |
</tt></b></blockquote>
|
|
|
1116 |
|
|
|
1117 |
<p>
|
|
|
1118 |
Besides the source files and the makefiles, you need:
|
|
|
1119 |
|
|
|
1120 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
1121 |
<tr valign=top> <td>*<b><tt>.bat</tt></b>
|
|
|
1122 |
<td>
|
|
|
1123 |
<td>(a variety of batch files used in the build process)
|
|
|
1124 |
</table></blockquote>
|
|
|
1125 |
|
|
|
1126 |
<p>
|
|
|
1127 |
Comments in the makefiles describe the configuration parameters. If your
|
|
|
1128 |
configuration is different from the following, you should definitely read
|
|
|
1129 |
those comments and see if you want or need to change any of this:
|
|
|
1130 |
<ul>
|
|
|
1131 |
<li>The compiler files are in <b><tt>C:\BC</tt></b> and its subdirectories.
|
|
|
1132 |
<li>You are using the Borland assembler <b><tt>tasm</tt></b>.
|
|
|
1133 |
<li>You want an executable that will run on any 32-bit PC-compatible,
|
|
|
1134 |
regardless of processor type (80386, 80486, Pentium, or compatible) and
|
|
|
1135 |
regardless of whether a math coprocessor (80x87) is present -- an issue only
|
|
|
1136 |
with 80386 processors.
|
|
|
1137 |
</ul>
|
|
|
1138 |
|
|
|
1139 |
<p>
|
|
|
1140 |
<b>Notes</b>
|
|
|
1141 |
|
|
|
1142 |
<ul>
|
|
|
1143 |
<li>A user reports that the Borland C++ 4.00 with patch 1-6 doesn't
|
|
|
1144 |
produce a working executable of Ghostscript 5.03. We can't test this,
|
|
|
1145 |
since we no longer have this compiler.
|
|
|
1146 |
|
|
|
1147 |
<li>Borland C++ 4.5 has a bug or bugs that cause(s) the 32-bit Windows
|
|
|
1148 |
executable to crash if you give any @-files on the command line. Among
|
|
|
1149 |
other things, this makes the uniprint driver unusable, because it references
|
|
|
1150 |
the .upp configuration files this way. This problem may possibly be fixed
|
|
|
1151 |
by one or more of the patch files on
|
|
|
1152 |
|
|
|
1153 |
<blockquote>
|
|
|
1154 |
<a href="ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/"
|
|
|
1155 |
class="offsite">ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/</a>
|
|
|
1156 |
</blockquote>
|
|
|
1157 |
|
|
|
1158 |
<li>Borland C++ 4.52 has a bug that causes the 32-bit Windows executable to
|
|
|
1159 |
fail during startup. Borland provides a patch for this bug in
|
|
|
1160 |
|
|
|
1161 |
<blockquote>
|
|
|
1162 |
<a
|
|
|
1163 |
href="ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/bc45xp1.zip"
|
|
|
1164 |
class="offsite">ftp://ftp.borland.com/pub/borlandcpp/devsupport/patches/bc4_5/bc45xp1.zip</a>
|
|
|
1165 |
</blockquote>
|
|
|
1166 |
|
|
|
1167 |
<li>Borland C++ 5.0 and 5.01 have a code generator bug that generates
|
|
|
1168 |
incorrect code for the construct <b><tt>!file_is_valid()</tt></b>. Do not
|
|
|
1169 |
attempt to compile Ghostscript with these compilers. If you want to report
|
|
|
1170 |
this bug to Borland, send them the result of compiling
|
|
|
1171 |
<b><tt>ziodev.c</tt></b> and tell them to look at the code generated for
|
|
|
1172 |
<b><tt>file_is_valid()</tt></b> and <b><tt>!file_is_valid()</tt></b>. We
|
|
|
1173 |
don't know whether Borland C++ 5.02 still has this problem. The problem
|
|
|
1174 |
does not appear to exist in Borland C++Builder 4 or 5.</li>
|
|
|
1175 |
|
|
|
1176 |
<li>When building for the MS Windows Win32s environment, the make
|
|
|
1177 |
process will stop after it has created <b><tt>genarch.exe</tt></b>.
|
|
|
1178 |
You should then run "<b><tt>_genarch.bat</tt></b>", wait until
|
|
|
1179 |
<b><tt>genarch</tt></b> has finished and then exit MS Windows. Then type
|
|
|
1180 |
"<b><tt>make</tt></b>" again to restart the make process.
|
|
|
1181 |
|
|
|
1182 |
<li>Borland C++Builder 5 and above require <strong><tt>BUILDER_VERSION</tt></strong>
|
|
|
1183 |
to be set explicitly to 5 in the make file because the version of MAKE which ships
|
|
|
1184 |
with this product (Version 5.2) is the same as that shipped with Version 4.5. Therefore,
|
|
|
1185 |
there is no way to automatically establish the compiler version that is in use. Note that
|
|
|
1186 |
because a 16 bit compile does not ship with Version 5.5, conditionals have been added to
|
|
|
1187 |
prevent attempts to compile 16 bit code when <tt><strong>BUILDER_VERSION = 5</strong></tt></li>
|
|
|
1188 |
<li>Note that under Borland C++Builder 5, MAKE
|
|
|
1189 |
does not stop when <tt><strong>_genarch.bat</strong></tt> should be run as described
|
|
|
1190 |
above. It is necessary for the user to Abort the make by pressing Control-C. You should
|
|
|
1191 |
then run "<b><tt>_genarch.bat</tt></b>", wait until <b><tt>genarch</tt></b> has
|
|
|
1192 |
finished and then exit MS Windows. Then type "<b><tt>make</tt></b>" again to
|
|
|
1193 |
restart the make process. All targets are built succesfully if this step is ignored. <tt><strong>I
|
|
|
1194 |
don't know if the targets are correct although they seem to run OK.</strong></tt></li>
|
|
|
1195 |
<li>To prevent the compiler terminating because too
|
|
|
1196 |
many warning messages have been generated, copy the file file <tt><strong>bcc32.cfg </strong></tt>to
|
|
|
1197 |
the top level directory using the following command:</li>
|
|
|
1198 |
|
|
|
1199 |
</ul>
|
|
|
1200 |
|
|
|
1201 |
<h3><a name="Microsoft_build"></a>Microsoft Environment</h3>
|
|
|
1202 |
|
|
|
1203 |
<p> NOTE: We have received reports that the Microsoft Visual C++ 5.0 and 6.0 compilers
|
|
|
1204 |
produce incorrect code for Ghostscript version 6.0 and later, from the same
|
|
|
1205 |
source code that compiles and runs correctly with other compilers. In spite
|
|
|
1206 |
of these reports, several members of the Artifex staff use version 6.0 of the
|
|
|
1207 |
MSVC compiler on a regular basis and we have not found any problems. You may
|
|
|
1208 |
also want to try out the <a href="#IntelWin32_build">Intel C/C++ compiler</a>,
|
|
|
1209 |
which can be integrated into the Microsoft Visual C++ environment.
|
|
|
1210 |
<p>To compile Ghostscript using the Microsoft environment, you need Microsoft
|
|
|
1211 |
Visual C++ 4.0 or later with its associated "<b><tt>nmake</tt></b>" utility
|
|
|
1212 |
and linker.
|
|
|
1213 |
<h4><a name="Using_the_MS_Development_Environment"> </a>Using Microsoft Developer
|
|
|
1214 |
Studio</h4>
|
|
|
1215 |
<p>Microsoft Developer Studio is the Microsoft Visual C++ integrated development
|
|
|
1216 |
environment. To use it to build Ghostscript: it is first necessary to create
|
|
|
1217 |
a new workspace/project. To create the workspace/project, open Microsoft Developer
|
|
|
1218 |
Studio and select <b><tt>File/New</tt></b>. In the dialog window that is opened,
|
|
|
1219 |
select 'Makefile' as the type of project. Specify a name for the project. (Microsoft
|
|
|
1220 |
does not allow special characters such as ., *, ?, /, or \ as part of project
|
|
|
1221 |
names.) Also specify the location of the master directory for your Ghostscript
|
|
|
1222 |
files. Then select OK.
|
|
|
1223 |
<p> In the next dialog window, specify the build command line as <b><tt>nmake
|
|
|
1224 |
/f src/msvc32.mak DEVSTUDIO= </tt></b> Note the value for <b><tt>DEVSTUDIO</tt></b>
|
|
|
1225 |
is empty. Then select <b><tt>Finish</tt></b>.
|
|
|
1226 |
<p>At this point, it is now possible to build Ghostscript using Developer Studio.
|
|
|
1227 |
To build, press F7 or select the build icon. Note: multiple warnings will also
|
|
|
1228 |
given about things like double to float data conversions. Ignore them. We have
|
|
|
1229 |
not found a way to create a single set of sources that does not create warnings
|
|
|
1230 |
with the different compilers and operating systems supported by Ghostscript.
|
|
|
1231 |
We are working to reduce the number of the warning messages.
|
|
|
1232 |
<p>To run Ghostscript inside of Developer Studio, it is necessary to specify the
|
|
|
1233 |
name of the executable program . Select <b><tt>Project/Settings</tt></b>. Select
|
|
|
1234 |
the <b><tt>Debug</tt></b> tab. Then for <b><tt>Executable for debug session:</tt></b>
|
|
|
1235 |
specify <b><tt>bin/gswin32.exe</tt></b>
|
|
|
1236 |
<p>To use all of the features of Microsoft Developer Studio for debugging, and
|
|
|
1237 |
modifying Ghostscriptt, you need to finish the remaining steps.
|
|
|
1238 |
<p>To add the Ghostscript DLL to the project, select <b><tt>Project/Settings</tt></b>.
|
|
|
1239 |
Select the <b><tt>Debug</tt></b> tab. Change the <b><tt>Category</tt></b> to
|
|
|
1240 |
<b><tt>Additional DLLs</tt></b>. Then specify <b><tt>bin/gsdll32.dll</tt></b>.
|
|
|
1241 |
<p> To specify the Ghostscript program arguments, select <b><tt>Project/Settings</tt></b>.
|
|
|
1242 |
Select the <b><tt>Debug</tt></b> tab. Change the <b><tt>Category</tt></b> to
|
|
|
1243 |
<b><tt>General</tt></b>. Then specify the desired program arguments. For example,
|
|
|
1244 |
specifying: <b><tt>examples/tiger.eps</tt></b> will result in the tiger example
|
|
|
1245 |
file being displayed when Ghostscript is executed. .
|
|
|
1246 |
<p> A final note: it is possible to create a command file (build.bat) to be used
|
|
|
1247 |
for the build command line. If many different workspaces/projects are created,
|
|
|
1248 |
it is simpler to use a build batch command file rather than retyping the build
|
|
|
1249 |
command line for each new project. Here is an example used by one of Artifex's
|
|
|
1250 |
staff members. This file is one line:
|
|
|
1251 |
<blockquote><b><tt> nmake -f src/msvc32.mak DEVSTUDIO= DEBUG=1 TDEBUG=1 GS_LIB_DEFAULT="./lib/;./font;$(GSROOTDIR)/lib;$(AROOTDIR)/fonts"
|
|
|
1252 |
</tt></b></blockquote>
|
|
|
1253 |
<p>Please note the double quotes around the value for <b><tt>GS_LIB_DEFAULT</tt></b>
|
|
|
1254 |
and the addition of <b><tt>./lib;./fonts;</tt></b> to its definition. This uses
|
|
|
1255 |
the local (within the project) copy of the <b><tt>lib</tt></b> and <b><tt>fonts</tt></b>
|
|
|
1256 |
directories. This is convenient if any changes need to be made in these directories.
|
|
|
1257 |
|
|
|
1258 |
<p> Setting <b><tt>DEBUG=1</tt></b> includes debugging features in the build:
|
|
|
1259 |
<ul>
|
|
|
1260 |
<li> It defines the C preprocessor symbol <b><tt>DEBUG</tt></b>. The latter includes
|
|
|
1261 |
tracing and self-validation code fragments into compilation.
|
|
|
1262 |
Particularly it enables the <b><tt>-Z</tt></b> and <b><tt>-T</tt></b>
|
|
|
1263 |
switches in Ghostscript.
|
|
|
1264 |
<li> It compiles code fragments for the C stack overflow checks.
|
|
|
1265 |
</ul>
|
|
|
1266 |
Code produced with this option is somewhat larger and runs
|
|
|
1267 |
somewhat slower.
|
|
|
1268 |
|
|
|
1269 |
<p>Setting <b><tt>TDEBUG=1</tt></b> disables code optimization in the C compiler and
|
|
|
1270 |
includes symbol table information for the debugger.
|
|
|
1271 |
Code becomes substantially slower and larger.
|
|
|
1272 |
|
|
|
1273 |
<p> An optional setting <b><tt>DEBUGSYM=1</tt></b> is only useful with <b><tt>TDEBUG=0</tt></b>
|
|
|
1274 |
for advanced developers. It includes symbol table information for the debugger
|
|
|
1275 |
in an optimized (release) build.
|
|
|
1276 |
<em>
|
|
|
1277 |
NOTE: The debug information generated for the optimized code may be
|
|
|
1278 |
significantly misleading. For general MSVC users we recommend TDEBUG=1.
|
|
|
1279 |
</em>
|
|
|
1280 |
|
|
|
1281 |
<h4><a name="Using_the_command_line"></a>Using the command line</h4>
|
|
|
1282 |
<p>Ghostscript can be made using either the DOS shell or one one of the various
|
|
|
1283 |
command line shells made for Windows.
|
|
|
1284 |
<p>In order for the makefiles to work properly, two items may have to be changed.
|
|
|
1285 |
An attempt is made to select the correct version of Microsoft Visual C++
|
|
|
1286 |
based on the version of nmake. If this doesn't work it will default
|
|
|
1287 |
to version 6.x.
|
|
|
1288 |
If you are not using version 6.x then before building, in <b><tt>src\msvc32.mak</tt></b>
|
|
|
1289 |
find the line "<b><tt>#MSVC_VERSION=6</tt></b>" and change it to "<b><tt>MSVC_VERSION=4</tt></b>",
|
|
|
1290 |
"<b><tt>MSVC_VERSION=5</tt></b>", "<b><tt>MSVC_VERSION=7</tt></b>"
|
|
|
1291 |
or "<b><tt>MSVC_VERSION=8</tt></b>". .
|
|
|
1292 |
<p>In some cases the location of the Microsoft Developer Studio, needs to be changed.
|
|
|
1293 |
The location of Microsoft Developer Studio is defined by the value of <b><tt>DEVSTUDIO</tt></b>.
|
|
|
1294 |
There are several different definitions of <b><tt>DEVSTUDIO</tt></b> in src\msvc32.mak.
|
|
|
1295 |
There is one for each of the currently supported versions of Microsoft Visual
|
|
|
1296 |
C++ (4, 5, 6, 7, 7.1 and 8).
|
|
|
1297 |
<p>The normal installation process for Microsoft Visual C++ includes setting the
|
|
|
1298 |
location of the Microsoft Visual C++ executables (cl.exe, link.exe, nmake.exe,
|
|
|
1299 |
rc.exe) in your PATH definition and the LIB and INCLUDE environment variables
|
|
|
1300 |
are set to point to the Microsoft Visual C++ directories. If this is true then
|
|
|
1301 |
the value for <b><tt>DEVSTUDIO</tt></b> can be changed to empty. I.e. <b><tt>DEVSTUDIO=</tt></b>
|
|
|
1302 |
<p> If PATH, LIB, and INCLUDE are not correctly set then the value for <b><tt>DEVSTUDIO</tt></b>
|
|
|
1303 |
needs to be defined. For example, for version 6.0, the default definition for
|
|
|
1304 |
the location for the Microsoft Developer Studio is: <b><tt>DEVSTUDIO=C:\Program
|
|
|
1305 |
Files\Microsoft Visual Studio </tt></b> If the path to Microsoft Developer Studio
|
|
|
1306 |
on your system differs from the default then change the appropriate definition
|
|
|
1307 |
of <b><tt>DEVSTUDIO</tt></b>. (Remember that there is a separate definition
|
|
|
1308 |
of <b><tt>DEVSTUDIO</tt></b> for each version of MSVC, so be sure to change
|
|
|
1309 |
the correct definition.)
|
|
|
1310 |
<p>To run the <b><tt>make</tt></b> program, give the command
|
|
|
1311 |
<blockquote><b><tt>
|
|
|
1312 |
nmake -f src\msvc32.mak
|
|
|
1313 |
</tt></b></blockquote>
|
|
|
1314 |
|
|
|
1315 |
<p>
|
|
|
1316 |
Rather than changing src/msvc32.mak, these values can be specified on the make
|
|
|
1317 |
command line, I.e.
|
|
|
1318 |
|
|
|
1319 |
<blockquote><b><tt> nmake -f src\msvc32.mak MSVC_VERSION=6 DEVSTUDIO="C:\Program Files\Microsoft Visual Studio" <br>
|
|
|
1320 |
nmake -f src\msvc32.mak MSVC_VERSION=7 DEVSTUDIO="C:\Program Files\Microsoft Visual Studio .NET"
|
|
|
1321 |
</tt></b></blockquote>
|
|
|
1322 |
|
|
|
1323 |
<p> Note that double quotes have been added around the path for <b><tt>DEVSTUDIO</tt></b>
|
|
|
1324 |
due to the spaces in the path value.
|
|
|
1325 |
<p>
|
|
|
1326 |
This command line can also be put into a batch file.
|
|
|
1327 |
|
|
|
1328 |
<p> You may get warning messages during compilation about <b><tt>/QI0f</tt></b>
|
|
|
1329 |
being an undefined switch, or the message "dwmain32.def: EXETYPE not supported
|
|
|
1330 |
for platform; ignored" during linking. Multiple warnings will also given about
|
|
|
1331 |
things like double to float data conversions. Ignore them. We have not found
|
|
|
1332 |
a way to create a single set of sources that does not create warnings with the
|
|
|
1333 |
different compilers and operating systems supported by Ghostscript.
|
|
|
1334 |
<p>
|
|
|
1335 |
The Microsoft VC++ 5.0 compiler locks up when compiling
|
|
|
1336 |
<b><tt>gxi12bit.c</tt></b> with <b><tt>/O2</tt></b>. Compile this file
|
|
|
1337 |
without <b><tt>/O2</tt></b>.
|
|
|
1338 |
|
|
|
1339 |
<p> The Microsoft VC++ 5.0 compiler produces a non-working executable if compiling
|
|
|
1340 |
without stack checking. Don't change the setting <b><tt>TDEBUG=1</tt></b> in
|
|
|
1341 |
<b><tt>msvc32.mak</tt></b>.
|
|
|
1342 |
|
|
|
1343 |
<h3><a name="Microsoft_build_64"></a>Microsoft Environment for 64-bit</h3>
|
|
|
1344 |
|
|
|
1345 |
Building Ghostscript for 64-bit Windows (AMD64 processor) requires
|
|
|
1346 |
Microsoft Visual Studio .NET 2005 beta on 64-bit Windows,
|
|
|
1347 |
or Microsoft Visual Studio .NET 2003 and Windows Server 2003 DDK
|
|
|
1348 |
on 32-bit Windows (cross-compile).
|
|
|
1349 |
<p>
|
|
|
1350 |
Compiling for 64-bit is similar to the
|
|
|
1351 |
<a href="#Microsoft_build">Microsoft Environment</a> instructions above,
|
|
|
1352 |
but with the addition of a WIN64 define.
|
|
|
1353 |
|
|
|
1354 |
<h4><a name="Microsoft_64on32"></a>Cross compile on 32-bit Windows XP</h4>
|
|
|
1355 |
Microsoft Visual Studio .NET 2003 is used for 32-bit compilation
|
|
|
1356 |
of auxiliary programs used by the compile process,
|
|
|
1357 |
while Windows Server 2003 Device Driver Kit (DDK)
|
|
|
1358 |
is used for 64-bit compilation.
|
|
|
1359 |
The DDK cross compilers for the IA64 and AMD64 processors,
|
|
|
1360 |
however only AMD64 is supported by the makefile.
|
|
|
1361 |
The DDK is not installed correctly by the setup program.
|
|
|
1362 |
You need to copy <b><tt>msobj10.dll</tt></b> to the compiler
|
|
|
1363 |
directory from a nearby directory.
|
|
|
1364 |
<p>
|
|
|
1365 |
To make ghostscript use
|
|
|
1366 |
<blockquote><b><tt>
|
|
|
1367 |
nmake -f src/msvc32.mak WIN64=
|
|
|
1368 |
</tt></b></blockquote>
|
|
|
1369 |
This will fail when it tries to run genconf.exe.
|
|
|
1370 |
Move <b><tt>./obj/genconf.exe</tt></b> to 64-bit Windows, then run it
|
|
|
1371 |
<blockquote><b><tt>
|
|
|
1372 |
genconf arch.h
|
|
|
1373 |
</tt></b></blockquote>
|
|
|
1374 |
Move <b><tt>arch.h</tt></b> back to <b><tt>./obj/arch.h</tt></b>.
|
|
|
1375 |
(Alternatively, use arch.h created by a 32-bit build and change
|
|
|
1376 |
ARCH_ALIGN_PTR_MOD to 8,
|
|
|
1377 |
ARCH_ALIGN_STRUCT_MOD to 16,
|
|
|
1378 |
ARCH_SIZEOF_PTR to 8,
|
|
|
1379 |
and ARCH_CACHE1_SIZE to 4194304).
|
|
|
1380 |
Then restart the build
|
|
|
1381 |
<blockquote><b><tt>
|
|
|
1382 |
nmake -f src/msvc32.mak WIN64=
|
|
|
1383 |
</tt></b></blockquote>
|
|
|
1384 |
|
|
|
1385 |
<p>
|
|
|
1386 |
You can also use Microsoft Visual Studio .NET 2005 beta
|
|
|
1387 |
to do a similar cross compile, but you will need to
|
|
|
1388 |
change the DEVSTUDIO path.
|
|
|
1389 |
|
|
|
1390 |
<h4><a name="Microsoft_64on64"></a>Compile on 64-bit Windows XP</h4>
|
|
|
1391 |
To make ghostscript use
|
|
|
1392 |
<blockquote><b><tt>
|
|
|
1393 |
nmake -f src/msvc32.mak WIN64=
|
|
|
1394 |
</tt></b></blockquote>
|
|
|
1395 |
The Microsoft Visual Studio .NET 2005 beta does not have
|
|
|
1396 |
a "go live" licence. You are not permitted to distribute
|
|
|
1397 |
executables created by this compiler.
|
|
|
1398 |
<p>
|
|
|
1399 |
The makefile currently uses the cross compiler (x86_amd64)
|
|
|
1400 |
rather than the native compiler (amd64).
|
|
|
1401 |
<p>
|
|
|
1402 |
You can install Microsoft Visual Studio .NET 2003 on
|
|
|
1403 |
64-bit Windows, but you can't install Windows Server 2003 DDK.
|
|
|
1404 |
You may be able to copy the DDK directory <b><tt>c:\winddk</tt></b>
|
|
|
1405 |
from a 32-bit system to a 64-bit system and compile GS.
|
|
|
1406 |
|
|
|
1407 |
<h4><a name="Self-extracting_executables"></a>Making self-extracting executables</h4>
|
|
|
1408 |
|
|
|
1409 |
<p>
|
|
|
1410 |
You can build self-extracting Windows executables of Ghostscript. (This is
|
|
|
1411 |
not needed to use Ghostscript.) Currently this requires both the
|
|
|
1412 |
Borland/Inprise and the Microsoft compilers, and also two pieces of
|
|
|
1413 |
third-party software:
|
|
|
1414 |
|
|
|
1415 |
<ul>
|
|
|
1416 |
<li><b><tt>WinZipSE</tt></b>, available from <a
|
|
|
1417 |
href="http://www.winzip.com/winzipse.html"
|
|
|
1418 |
class="offsite">http://www.winzip.com/winzipse.html</a>.
|
|
|
1419 |
This is not free.
|
|
|
1420 |
<li><b><tt>zip</tt></b>, available from <a
|
|
|
1421 |
href="http://www.info-zip.org/pub/infozip/Zip.html" class="offsite">
|
|
|
1422 |
http://www.info-zip.org/pub/infozip/Zip.html</a>. This is free.
|
|
|
1423 |
</ul>
|
|
|
1424 |
|
|
|
1425 |
<p>
|
|
|
1426 |
You will have to edit <b><tt>src/winint.mak</tt></b> to define
|
|
|
1427 |
<b><tt>WINZIPSE_XE</tt></b> and <b><tt>ZIP_XE</tt></b> respectively as the
|
|
|
1428 |
path names of these programs. See <a href="Release.htm">Release.htm</a> for
|
|
|
1429 |
the detailed procedure.
|
|
|
1430 |
|
|
|
1431 |
<h3><a name="Watcom_build"></a>Watcom environment</h3>
|
|
|
1432 |
|
|
|
1433 |
<p>
|
|
|
1434 |
To use the Watcom compiler, add to <b><tt>AUTOEXEC.BAT</tt></b> the line
|
|
|
1435 |
"<b><tt>set DOS4G=quiet</tt></b>". Check that
|
|
|
1436 |
<b><tt>AUTOEXEC.BAT</tt></b> also contains a line of the form
|
|
|
1437 |
"<b><tt>set WATCOM=</tt></b><em>{wcdir}</em>" where <em>{wcdir}</em> is
|
|
|
1438 |
the directory where you installed the Watcom tools, and that the setting of
|
|
|
1439 |
<b><tt>PATH</tt></b> includes <em>{wcdir}</em><b><tt>\binnt</tt></b> (or
|
|
|
1440 |
<b><tt>%WATCOM%\binnt</tt></b>) before <em>{wcdir}</em><b><tt>\binw</tt></b>
|
|
|
1441 |
(or <b><tt>%WATCOM%\binw</tt></b>). Then to create
|
|
|
1442 |
"<b><tt>makefile</tt></b>":
|
|
|
1443 |
|
|
|
1444 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
1445 |
<tr> <th align=left>For
|
|
|
1446 |
<td>
|
|
|
1447 |
<th align=left>Give the command
|
|
|
1448 |
<tr> <td colspan=3><hr>
|
|
|
1449 |
<tr> <td>MS Windows
|
|
|
1450 |
<td>
|
|
|
1451 |
<td nowrap><b><tt>echo !include src\watcw32.mak >makefile</tt></b>
|
|
|
1452 |
</table></blockquote>
|
|
|
1453 |
|
|
|
1454 |
<p>
|
|
|
1455 |
Before compiling, change the definition of the <b><tt>WCVERSION</tt></b>
|
|
|
1456 |
macro in the makefile (<b><tt>watcw32.mak</tt></b>) to the version of the Watcom compiler you are
|
|
|
1457 |
using. This is necessary to handle some minor incompatibilities between
|
|
|
1458 |
versions.
|
|
|
1459 |
|
|
|
1460 |
<p>
|
|
|
1461 |
To run the <b><tt>make</tt></b> program, give the commmand
|
|
|
1462 |
|
|
|
1463 |
<blockquote>
|
|
|
1464 |
<b><tt>wmake -u</tt></b>
|
|
|
1465 |
</blockquote>
|
|
|
1466 |
|
|
|
1467 |
<h3><a name="Cygwin32_build"></a>Cygwin32 gcc</h3>
|
|
|
1468 |
|
|
|
1469 |
<p>
|
|
|
1470 |
A user reports that it is possible to compile Ghostscript for MS Windows NT
|
|
|
1471 |
using the Cygwin32 gcc compiler, GNU <b><tt>make</tt></b>, and the
|
|
|
1472 |
<b><tt>unix-gcc.mak</tt></b> makefile, with only two small source code
|
|
|
1473 |
changes:
|
|
|
1474 |
|
|
|
1475 |
<ul>
|
|
|
1476 |
<li>Add "<b><tt>b</tt></b>" to the call to <b><tt>fopen</tt></b> in <b><tt>gp_open_scratch</tt></b>
|
|
|
1477 |
<li>Mirror the <b><tt>gp_ntfs</tt></b> logic for <b><tt>gp_pathstring_not_bare</tt></b>
|
|
|
1478 |
</ul>
|
|
|
1479 |
|
|
|
1480 |
<p>
|
|
|
1481 |
Information about this compiler and environment is at the Cygnus site:
|
|
|
1482 |
|
|
|
1483 |
<blockquote>
|
|
|
1484 |
<a href="http://sources.redhat.com/cygwin/">http://sources.redhat.com/cygwin/</a>
|
|
|
1485 |
</blockquote>
|
|
|
1486 |
|
|
|
1487 |
<p>
|
|
|
1488 |
Please note that Cygnus's licensing terms aren't quite as liberal about
|
|
|
1489 |
redistribution as either the GNU
|
|
|
1490 |
<a href="http://www.gnu.org/copyleft/gpl.html">General Public License</a>
|
|
|
1491 |
or the Aladdin <a href="Public.htm">Free Public License</a>, so read their
|
|
|
1492 |
license carefully if you want to redistribute the results of using their
|
|
|
1493 |
compiler.
|
|
|
1494 |
|
|
|
1495 |
<h3><a name="IntelWin32_build"></a>Intel C/C++ environment</h3>
|
|
|
1496 |
|
|
|
1497 |
<p>
|
|
|
1498 |
Intel provides a C/C++ compiler that is compatible with the <a
|
|
|
1499 |
href="#Microsoft_build">Microsoft Visual C++ environment</a>. The main
|
|
|
1500 |
advantage of this compiler over MSVC 5.0 and 6.0 is that it produces
|
|
|
1501 |
working code even when all optimizations are enabled and when stack checking
|
|
|
1502 |
is disabled.
|
|
|
1503 |
|
|
|
1504 |
<p>
|
|
|
1505 |
To build Ghostscript using the Intel C/C++ compiler, you have to make the
|
|
|
1506 |
following small changes in the makefiles:
|
|
|
1507 |
|
|
|
1508 |
<ul>
|
|
|
1509 |
<li>Find and change the second occurrence of
|
|
|
1510 |
"<b><tt>COMPILE_FULL_OPTIMIZED</tt></b>" to "<b><tt>/O2</tt></b>" in file
|
|
|
1511 |
<b><tt>msvccmd.mak</tt></b>. <li>Override "<b><tt>TDEBUG</tt></b>",
|
|
|
1512 |
"<b><tt>COMP</tt></b>", and "<b><tt>COMPAUX</tt></b>" when invoking
|
|
|
1513 |
<b><tt>nmake</tt></b>.
|
|
|
1514 |
</ul>
|
|
|
1515 |
|
|
|
1516 |
<p>
|
|
|
1517 |
More specifically, use "<b><tt>TDEBUG=0</tt></b>" and set both
|
|
|
1518 |
"<b><tt>COMP</tt></b>" and "<b><tt>COMPAUX</tt></b>" to the full path of
|
|
|
1519 |
<b><tt>icl</tt></b> (for example
|
|
|
1520 |
"<b><tt>COMP=C:\intel\compiler45\bin\icl</tt></b>" if the Intel C/C++
|
|
|
1521 |
compiler V4.5 was installed to <b><tt>C:\intel</tt></b>). It is suggested
|
|
|
1522 |
that you use a batch file to launch <b><tt>nmake</tt></b>, since the command
|
|
|
1523 |
line processes the "<b><tt>=</tt></b>" on its own. Also, you may need to
|
|
|
1524 |
execute <b><tt>vcvars32.bat</tt></b> and <b><tt>iccvars.bat</tt></b> to
|
|
|
1525 |
register the proper paths for the compiler, its include files and its
|
|
|
1526 |
libraries.
|
|
|
1527 |
|
|
|
1528 |
<p>
|
|
|
1529 |
You can buy or download a 30-day evaluation version of the Intel C/C++
|
|
|
1530 |
compiler from Intel's Software Performance Tools web site:
|
|
|
1531 |
|
|
|
1532 |
<blockquote>
|
|
|
1533 |
<a href="http://www.intel.com/vtune/">http://www.intel.com/vtune/</a>
|
|
|
1534 |
</blockquote>
|
|
|
1535 |
|
|
|
1536 |
<hr>
|
|
|
1537 |
|
|
|
1538 |
<h2><a name="Mac_build"></a>How to build Ghostscript from source (MacOS version)</h2>
|
|
|
1539 |
|
|
|
1540 |
<h3><a name="MacOS"></a>Traditional MacOS</h3>
|
|
|
1541 |
|
|
|
1542 |
<p>
|
|
|
1543 |
The Macintosh version of Ghostscript requires the <a href="http://www.metrowerks.com/"
|
|
|
1544 |
class="offsite">Metrowerks Codewarrior</a> development suite. Download the
|
|
|
1545 |
<tt>macgs-7xx-src.sit</tt> source archive from the location listed
|
|
|
1546 |
below. This includes a Codewarrior .mcp project file than can be used to build both
|
|
|
1547 |
Carbon and CFM versions of the ghostscript shared library component.
|
|
|
1548 |
|
|
|
1549 |
<blockquote>
|
|
|
1550 |
<a href="ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/currenti/"
|
|
|
1551 |
class="offsite">ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/current/</a>
|
|
|
1552 |
</blockquote>
|
|
|
1553 |
|
|
|
1554 |
<p>
|
|
|
1555 |
If your system doesn't automatically unpack the source archive, you can
|
|
|
1556 |
download the free <a href="http://stuffit.com/download.html"
|
|
|
1557 |
class="offsite">Stuffit Expander</a> to open it.
|
|
|
1558 |
|
|
|
1559 |
<p>
|
|
|
1560 |
This archive includes appropriate versions of the jpeg, zlib and libpng 3rd party
|
|
|
1561 |
library source for convenience. You must still download the fonts and place them in an
|
|
|
1562 |
appropriate location, along with the contents of the <tt>lib</tt> directory from the source
|
|
|
1563 |
archive.
|
|
|
1564 |
|
|
|
1565 |
<p>
|
|
|
1566 |
Note that since this is just a library component, you will need a front-end application, such as
|
|
|
1567 |
MacGSView, to actually view or convert postscript and pdf documents.
|
|
|
1568 |
|
|
|
1569 |
|
|
|
1570 |
<h3><a name="MacOSX"></a>MacOS X</h3>
|
|
|
1571 |
|
|
|
1572 |
<p>
|
|
|
1573 |
The unix source distribution (.tar.gz) builds fine on Darwin/MacOS X,
|
|
|
1574 |
albeit without a display device. You can generally just use the <tt>Makefile</tt>
|
|
|
1575 |
generated by ./configure or <tt>macosx.mak</tt>
|
|
|
1576 |
as your top-level makefile and get a reasonable default build. This will
|
|
|
1577 |
allow you to use Ghostscript from the command line as a BSD-layer tool
|
|
|
1578 |
to rasterize postscript and pdf to image files, and convert between the
|
|
|
1579 |
high-level formats supported by Ghostscript. See the instructions for the
|
|
|
1580 |
unix build below for details of how to customize this build.
|
|
|
1581 |
|
|
|
1582 |
<p>
|
|
|
1583 |
There is also a support for building Ghostscript as a framework. This is
|
|
|
1584 |
a special encapsulated shared library format specific to MacOS X. To build
|
|
|
1585 |
the framework, copy <tt>macosx.mak</tt> to the top-level directory, rename it to
|
|
|
1586 |
<tt>makefile</tt> and issue 'make framework' from Terminal.app. This will result
|
|
|
1587 |
in a <tt>Ghostscript.framework</tt> in the <tt>sobin</tt> directory. It must be
|
|
|
1588 |
manually copied to /Library/Frameworks/ before applications
|
|
|
1589 |
can use it. You may need to create the Frameworks/ directory on some systems.
|
|
|
1590 |
|
|
|
1591 |
<p>
|
|
|
1592 |
Finally, there is a <tt>macos-mcp.mak</tt> makefile that can be
|
|
|
1593 |
used to set up the Codewarrior shared library component build described
|
|
|
1594 |
in the section on <a href="#MacOS">Classic MacOS</a> above. Currently
|
|
|
1595 |
this makefile is distributed only with the MacOS-specific <tt>.sit</tt>
|
|
|
1596 |
source archive, but with be included generally in future releases.
|
|
|
1597 |
|
|
|
1598 |
<p>
|
|
|
1599 |
To set up the shlib build, download and uncompress the Ghostscript source.
|
|
|
1600 |
If the archive doesn't contain the 3rd party jpeg, png, and zlib source,
|
|
|
1601 |
you must download them as described at the beginning of this document and
|
|
|
1602 |
unpack them under the macgs-###-src directory under the specific names
|
|
|
1603 |
<tt>jpeg</tt>, <tt>zlib</tt> and <tt>libpng</tt>. You cannot use symlinks as
|
|
|
1604 |
Codewarrior will not be able to follow them for some of the needed header
|
|
|
1605 |
files.
|
|
|
1606 |
|
|
|
1607 |
<p>
|
|
|
1608 |
Copy <tt>src/macos-mcp.mak</tt> to the top-level directory and rename
|
|
|
1609 |
it <tt>makefile</tt>. Then run 'make' in that directory, either from
|
|
|
1610 |
within Terminal.app or through Project Builder. This will set up the
|
|
|
1611 |
generated code required for the build and run a shell script to generate
|
|
|
1612 |
<tt>ghostscript.mcp.xml</tt>. Launch Metrowerks Codewarrior, and select
|
|
|
1613 |
'Import Project...' from the File menu, and open the xml project file.
|
|
|
1614 |
When asked, save the results as <tt>ghostscript.mcp</tt> in the same
|
|
|
1615 |
directory and you should be ready to build the shared library component.
|
|
|
1616 |
|
|
|
1617 |
</p>
|
|
|
1618 |
Tradtional ('PPC') applications based on the Code Fragment Manager
|
|
|
1619 |
will not be able to open the shlib linked with CarbonLib, so two
|
|
|
1620 |
targets are provided, one with carbon and one without.
|
|
|
1621 |
|
|
|
1622 |
<hr>
|
|
|
1623 |
|
|
|
1624 |
<h2><a name="Unix_build"></a>How to build Ghostscript from source (Unix version)</h2>
|
|
|
1625 |
|
|
|
1626 |
<p>
|
|
|
1627 |
Ghostscript now ships with a build system for unix-like operating systems
|
|
|
1628 |
based on GNU Autoconf. In general the following should work to configure
|
|
|
1629 |
and build Ghostscript:
|
|
|
1630 |
|
|
|
1631 |
<blockquote><pre>
|
|
|
1632 |
./configure
|
|
|
1633 |
make
|
|
|
1634 |
</pre></blockquote>
|
|
|
1635 |
|
|
|
1636 |
Please report any problems with this method on your system as a bug.
|
|
|
1637 |
|
|
|
1638 |
<p>
|
|
|
1639 |
For the convenience of those already familiar with Ghostscript, the old method
|
|
|
1640 |
based on hand-edited makefiles is still supported. It may also be helpful in
|
|
|
1641 |
getting Ghostscript to build on very old platforms. This section deals exclusively
|
|
|
1642 |
with that older method and includes numerous pointers regarding legacy systems.
|
|
|
1643 |
|
|
|
1644 |
<p>
|
|
|
1645 |
Before issuing the <b><tt>make</tt></b> command to build Ghostscript, you
|
|
|
1646 |
have to make some choices, for instance
|
|
|
1647 |
<ul>
|
|
|
1648 |
<li>which compiler to use;
|
|
|
1649 |
<li>what features and devices to include;
|
|
|
1650 |
<li>whether to use system libraries for PNG and zlib;
|
|
|
1651 |
<li>and how to handle issues for your particular platform.
|
|
|
1652 |
</ul>
|
|
|
1653 |
|
|
|
1654 |
<p>
|
|
|
1655 |
Be sure to check the sections on <a
|
|
|
1656 |
href="#Tool_specific_issues">tool-</a>, <a
|
|
|
1657 |
href="#OS_specific_issues">OS-</a>, and <a
|
|
|
1658 |
href="#Hardware_specific_issues">hardware-</a>specific issues for notes
|
|
|
1659 |
on your particular platform and compiler. In fact, that is the
|
|
|
1660 |
<b><em>first</em></b> place to check if you build Ghostscript and it crashes
|
|
|
1661 |
or produces obviously incorrect results.
|
|
|
1662 |
|
|
|
1663 |
<h3><a name="Multi_architecture_makefile"></a>The multi-architecture makefile</h3>
|
|
|
1664 |
|
|
|
1665 |
<p>
|
|
|
1666 |
Especially if you are working in a Unix environment with multiple CPU types,
|
|
|
1667 |
operating systems, and/or C compilers, you may find the file
|
|
|
1668 |
<b><tt>all-arch.mak</tt></b> useful. This user-contributed file includes
|
|
|
1669 |
"wrappers" for the Unix makefiles for many different common environments.
|
|
|
1670 |
The author of this file notes:
|
|
|
1671 |
|
|
|
1672 |
<blockquote>
|
|
|
1673 |
|
|
|
1674 |
<p>
|
|
|
1675 |
This makefile allows you to execute
|
|
|
1676 |
|
|
|
1677 |
<pre>
|
|
|
1678 |
make `hostname`
|
|
|
1679 |
</pre>
|
|
|
1680 |
|
|
|
1681 |
<p>
|
|
|
1682 |
on any machine on a network, without having to examine the Makefile for a
|
|
|
1683 |
specific target name. Also, some of the targets in the Makefile incorporate
|
|
|
1684 |
special changes in compiler options for certain files, to work around
|
|
|
1685 |
compiler bugs that Ghostscript has been so good at exposing. Having that
|
|
|
1686 |
special handling written down in a Makefile proves very convenient.
|
|
|
1687 |
|
|
|
1688 |
<p>
|
|
|
1689 |
I don't do "make install" until I've done
|
|
|
1690 |
|
|
|
1691 |
<pre>
|
|
|
1692 |
cd ...build-directory.../gs-x.yz
|
|
|
1693 |
cd lib
|
|
|
1694 |
../bin/gs ../examples/tiger.eps
|
|
|
1695 |
</pre>
|
|
|
1696 |
|
|
|
1697 |
<p>
|
|
|
1698 |
and verified that the famous tiger can be correctly displayed. Also, the
|
|
|
1699 |
"make install" step is careful to first remove any existing
|
|
|
1700 |
<b><tt>$(BINDIR)/gs</tt></b>, then install a new gs there with a hard link
|
|
|
1701 |
to gs-x.yz.
|
|
|
1702 |
|
|
|
1703 |
<p>
|
|
|
1704 |
That way, each installation makes gs a synonym for the latest release,
|
|
|
1705 |
but earlier ones remain in place in case backtracking is needed, which
|
|
|
1706 |
I've fairly often wanted to do when investigating changed behavior, or
|
|
|
1707 |
a suspected bug.
|
|
|
1708 |
|
|
|
1709 |
<p>
|
|
|
1710 |
When I've been experimenting with a new feature, such as GNU readline
|
|
|
1711 |
support, I change the setting of GS from gs to ngs (new gs), so as not
|
|
|
1712 |
to break any existing programs by the installation of an experimental
|
|
|
1713 |
version.
|
|
|
1714 |
|
|
|
1715 |
</blockquote>
|
|
|
1716 |
|
|
|
1717 |
<h3><a name="UNIX_makefile"></a>Setting up "makefile"</h3>
|
|
|
1718 |
|
|
|
1719 |
<p>
|
|
|
1720 |
The files <b><tt>src/unix</tt></b>*<b><tt>.mak</tt></b> are the makefiles for
|
|
|
1721 |
Unix platforms, and you choose one based on what compiler you use. To
|
|
|
1722 |
build Ghostscript, however, you must use the simple command
|
|
|
1723 |
"<b><tt>make</tt></b>", which must find the file "<b><tt>makefile</tt></b>"
|
|
|
1724 |
(or "<b><tt>Makefile</tt></b>"). If your system supports symbolic links,
|
|
|
1725 |
set up "<b><tt>makefile</tt></b>" like this.
|
|
|
1726 |
|
|
|
1727 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
1728 |
<tr> <td>GNU gcc:
|
|
|
1729 |
<td>
|
|
|
1730 |
<td nowrap><b><tt>ln -s src/unix-gcc.mak makefile</tt></b>
|
|
|
1731 |
<tr> <td>Non-gcc ANSI C compiler:
|
|
|
1732 |
<td>
|
|
|
1733 |
<td nowrap><b><tt>ln -s src/unixansi.mak makefile</tt></b>
|
|
|
1734 |
</table></blockquote>
|
|
|
1735 |
|
|
|
1736 |
<p>
|
|
|
1737 |
If your system doesn't support symbolic links, first finish all changes to
|
|
|
1738 |
the compiler-specific makefile, then make a hard link, omitting the
|
|
|
1739 |
<b><tt>-s</tt></b> switch.
|
|
|
1740 |
|
|
|
1741 |
<p>
|
|
|
1742 |
The makefile distributed with Ghostscript selects the following devices
|
|
|
1743 |
to include in the build:
|
|
|
1744 |
|
|
|
1745 |
<blockquote><table cellpadding=0 cellspacing=0>
|
|
|
1746 |
<tr><th colspan=3 bgcolor="#CCCC00"><hr><font size="+1">Devices included as distributed</font><hr>
|
|
|
1747 |
<tr valign=bottom>
|
|
|
1748 |
<th align=left>Type
|
|
|
1749 |
<td>
|
|
|
1750 |
<th align=left>Devices
|
|
|
1751 |
<tr> <td colspan=3><hr>
|
|
|
1752 |
<tr valign=top> <td>Display
|
|
|
1753 |
<td>
|
|
|
1754 |
<td>X Windows
|
|
|
1755 |
<tr valign=top> <td>Printers
|
|
|
1756 |
<td>
|
|
|
1757 |
<td>H-P DeskJets, LaserJets, and color DeskJets and PaintJets; Canon BubbleJets
|
|
|
1758 |
<tr valign=top> <td>File formats
|
|
|
1759 |
<td>
|
|
|
1760 |
<td>Group 3 & Group 4 fax; JPEG; PCX; PBM, PGM, PKM, & PPM; TIFF; PostScript images; PNG; distilled PDF, PostScript, and EPS; PCL XL ("PCL 6")
|
|
|
1761 |
</table></blockquote>
|
|
|
1762 |
|
|
|
1763 |
<p>
|
|
|
1764 |
The <b><tt>unix</tt></b>*<b><tt>.mak</tt></b> files explicitly compile and
|
|
|
1765 |
link the JPEG, PNG, and zlib libraries into the executable. If your Unix
|
|
|
1766 |
system already includes the PNG and zlib libraries -- probably in
|
|
|
1767 |
<b><tt>/usr/lib/libpng.</tt></b>{<b><tt>a</tt></b>,<b><tt>so</tt></b>} and
|
|
|
1768 |
<b><tt>/usr/lib/libz.</tt></b>{<b><tt>a</tt></b>,<b><tt>so</tt></b>} -- and
|
|
|
1769 |
you would rather use those copies, change the definition of
|
|
|
1770 |
<b><tt>SHARE_LIBPNG</tt></b> and <b><tt>SHARE_ZLIB</tt></b> from 0 to 1 in
|
|
|
1771 |
the relevant <b><tt>unix</tt></b>*<b><tt>.mak</tt></b> file before
|
|
|
1772 |
compiling. Note that if you do this, you will get non-debug versions of
|
|
|
1773 |
these libraries even if you selected <b><tt>DEBUG</tt></b> in the makefile.
|
|
|
1774 |
At the insistence of some users, we have also provided the ability to do
|
|
|
1775 |
this with the JPEG library (<b><tt>SHARE_JPEG</tt></b>), but should not use
|
|
|
1776 |
it: in order to be compatible with Adobe interpreters (which do not follow
|
|
|
1777 |
the JPEG standard exactly), Ghostscript has to compile the IJG code with
|
|
|
1778 |
the non-standard definition
|
|
|
1779 |
|
|
|
1780 |
<blockquote><b><tt>
|
|
|
1781 |
#define D_MAX_BLOCKS_IN_MCU 64
|
|
|
1782 |
</tt></b></blockquote>
|
|
|
1783 |
|
|
|
1784 |
<p>
|
|
|
1785 |
and since shared versions of this library will not have been compiled this
|
|
|
1786 |
way, you will get errors on some valid PostScript and PDF input files. Note
|
|
|
1787 |
also that because not all the JPEG library header files that Ghostscript
|
|
|
1788 |
uses are normally installed in <b><tt>/usr/include</tt></b>, you must have
|
|
|
1789 |
the source code for this library available even if you set
|
|
|
1790 |
<b><tt>SHARE_JPEG</tt></b> to 1.
|
|
|
1791 |
|
|
|
1792 |
<p>
|
|
|
1793 |
If the X11 client header files are located in some directory which your
|
|
|
1794 |
compiler does not automatically search, you must change the
|
|
|
1795 |
<b><tt>XINCLUDE</tt></b> macro in the makefile to include a specific
|
|
|
1796 |
<b><tt>-I</tt></b> switch. See the comment preceding
|
|
|
1797 |
<b><tt>XINCLUDE</tt></b> in the makefile.
|
|
|
1798 |
|
|
|
1799 |
<p>
|
|
|
1800 |
Currently Ghostscript is set up to compile and link in a generic Unix
|
|
|
1801 |
environment. Some Unix environments may require changing the
|
|
|
1802 |
<b><tt>LDFLAGS</tt></b> macro in the makefile; be sure to check the <a
|
|
|
1803 |
href="#Unix_build">Unix section</a> for your specific tools, operating
|
|
|
1804 |
system, and hardware.
|
|
|
1805 |
|
|
|
1806 |
<h3><a name="Shared_object"></a>Shared object</h3>
|
|
|
1807 |
To build Ghostscript as a shared object with gcc
|
|
|
1808 |
(instead of as a single large executable) use:
|
|
|
1809 |
<pre>
|
|
|
1810 |
ln -s src/unix-gcc.mak makefile
|
|
|
1811 |
make so
|
|
|
1812 |
</pre>
|
|
|
1813 |
<p>
|
|
|
1814 |
This will build <b><tt>libgs.so</tt></b> and two programs which use the
|
|
|
1815 |
shared object, <b><tt>gsx</tt></b> which uses Gtk+ and <b><tt>gsc</tt></b>
|
|
|
1816 |
which does not.
|
|
|
1817 |
|
|
|
1818 |
<p>
|
|
|
1819 |
Do not use <tt>make -f src/unix-gcc.mak</tt> because this will
|
|
|
1820 |
break the recursive make used in building the shared object.
|
|
|
1821 |
<p>
|
|
|
1822 |
To install the shared object and these two programs:
|
|
|
1823 |
<pre>
|
|
|
1824 |
make soinstall
|
|
|
1825 |
</pre>
|
|
|
1826 |
To delete files created by the build process:
|
|
|
1827 |
<pre>
|
|
|
1828 |
make soclean
|
|
|
1829 |
</pre>
|
|
|
1830 |
<p>
|
|
|
1831 |
For more details see <a href="../src/unix-dll.mak">unix-dll.mak</a>.
|
|
|
1832 |
|
|
|
1833 |
<h3><a name="Tool_specific_issues"></a>Tool-specific issues</h3>
|
|
|
1834 |
|
|
|
1835 |
<h4><a name="gcc_27x"></a>gcc 2.7.*</h4>
|
|
|
1836 |
|
|
|
1837 |
<p>
|
|
|
1838 |
Some of the issues in using gcc are very specific to the particular
|
|
|
1839 |
computer, the particular version of the operating system, and the
|
|
|
1840 |
particular version of gcc available to you. You can check the version of
|
|
|
1841 |
gcc with the <b><tt>gcc --version</tt></b> command.
|
|
|
1842 |
|
|
|
1843 |
<p>
|
|
|
1844 |
An optimizer bug in gcc versions 2.7.0, 2.7.1, and 2.7.2 causes the
|
|
|
1845 |
compiler to generate incorrect code. The makefile works around this, but
|
|
|
1846 |
we recommend that if possible you use either an earlier or a later version
|
|
|
1847 |
of gcc; for instance, gcc 2.5.8, gcc 2.6.3, 2.7.2.1 or later which don't
|
|
|
1848 |
have this bug. Note, however, that gcc has other problems on some
|
|
|
1849 |
platforms, so please read the section for your specific platform.
|
|
|
1850 |
|
|
|
1851 |
<h4><a name="GNU_make"></a>GNU make</h4>
|
|
|
1852 |
|
|
|
1853 |
<p>
|
|
|
1854 |
Current versions of GNU <b><tt>make</tt></b> have no problems, but GNU
|
|
|
1855 |
<b><tt>make</tt></b> 3.59 can't handle the final linking step in some
|
|
|
1856 |
cases; if this happens, use the platform's standard <b><tt>make</tt></b>,
|
|
|
1857 |
typically <b><tt>/bin/make</tt></b>.
|
|
|
1858 |
|
|
|
1859 |
<h3><a name="OS_specific_issues"></a>OS-specific issues</h3>
|
|
|
1860 |
|
|
|
1861 |
<h4><a name="386_Unix"></a>386 Unix</h4>
|
|
|
1862 |
|
|
|
1863 |
<ul>
|
|
|
1864 |
<li>gcc versions older than 1.38 on Intel 80386 systems do not compile
|
|
|
1865 |
Ghostscript correctly with the <b><tt>-O</tt></b> option.
|
|
|
1866 |
|
|
|
1867 |
<li>gcc 1.39 under <b><tt>386BSD</tt></b> has a bug that causes
|
|
|
1868 |
float-to-integer conversions to compile incorrectly, rendering the
|
|
|
1869 |
executable unusable.
|
|
|
1870 |
|
|
|
1871 |
<li>X11R5 may need "<b><tt>#include <stddef.h></tt></b>" in <b><tt>x_.h</tt></b>.
|
|
|
1872 |
|
|
|
1873 |
<li>Also see regarding <a href="#System_V">System V</a> platforms.
|
|
|
1874 |
</ul>
|
|
|
1875 |
|
|
|
1876 |
<h4><a name="BSDI"></a>BSDI</h4>
|
|
|
1877 |
|
|
|
1878 |
<ul>
|
|
|
1879 |
|
|
|
1880 |
<li>Use <b><tt>unix-gcc.mak</tt></b> and set<blockquote><b><tt>
|
|
|
1881 |
STDLIBS=-lm<br>
|
|
|
1882 |
XINCLUDE=-I/usr/X11R6/include<br>
|
|
|
1883 |
XLIBDIRS=-L/usr/X11R6/lib<br>
|
|
|
1884 |
XLIBS=Xt SM ICE Xext X11<br></tt></b></blockquote>
|
|
|
1885 |
|
|
|
1886 |
<li>If you want to use the shared versions of the PNG and zlib libraries, set
|
|
|
1887 |
<b><tt>SHARE_LIBPNG=1</tt></b> and <b><tt>SHARE_ZLIB=1</tt></b>
|
|
|
1888 |
as discussed <a href="#UNIX_makefile">previously</a>.
|
|
|
1889 |
|
|
|
1890 |
<li>BSD <b><tt>make</tt></b> uses a different syntax for its
|
|
|
1891 |
<b><tt>include</tt></b> directive than Ghostscript;
|
|
|
1892 |
use <b><tt>gmake</tt></b> instead.
|
|
|
1893 |
</ul>
|
|
|
1894 |
|
|
|
1895 |
<h4><a name="Digital_Unix"></a>Digital Unix (Alpha)</h4>
|
|
|
1896 |
|
|
|
1897 |
<ul>
|
|
|
1898 |
|
|
|
1899 |
<li>Use <b><tt>unixansi.mak</tt></b> for all Digital Unix compilers.
|
|
|
1900 |
|
|
|
1901 |
<li>For versions of Digital Unix before 4.0, set
|
|
|
1902 |
|
|
|
1903 |
<p>
|
|
|
1904 |
<b><tt>CFLAGS=-std -migrate -Olimit 1000 -g3 -O2 $(XCFLAGS)<br>
|
|
|
1905 |
LDFLAGS=-lots $(XLDFLAGS)</tt></b>
|
|
|
1906 |
|
|
|
1907 |
<p>
|
|
|
1908 |
You may be able to omit <b><tt>-g3</tt></b>. For later versions of Digital
|
|
|
1909 |
Unix, users have reported that the proper flags are
|
|
|
1910 |
|
|
|
1911 |
<p>
|
|
|
1912 |
<b><tt>CFLAGS=-std1 -Olimit 1000 -g3 -O2 $(XCFLAGS)</tt></b>
|
|
|
1913 |
|
|
|
1914 |
<p>
|
|
|
1915 |
again, optionally omitting the <b><tt>-g3</tt></b>.
|
|
|
1916 |
|
|
|
1917 |
<li>If you get compiler error messages about "ANSI aliasing rules", please
|
|
|
1918 |
see the section about <a href="#VMS_build">building under OpenVMS</a> below.
|
|
|
1919 |
|
|
|
1920 |
</ul>
|
|
|
1921 |
|
|
|
1922 |
<h4><a name="Linux"></a>Linux</h4>
|
|
|
1923 |
|
|
|
1924 |
<ul>
|
|
|
1925 |
<li>If you build on Linux with X11 R6 or later, you may get link-time error
|
|
|
1926 |
messages about undefined references to various functions beginning with
|
|
|
1927 |
"SMC" and "ICE". If this happens, make sure that <b><tt>XLIBS</tt></b> in
|
|
|
1928 |
the makefile is set to
|
|
|
1929 |
"<b><tt>Xt SM ICE Xext X11</tt></b>" rather than
|
|
|
1930 |
"<b><tt>Xt Xext X11</tt></b>".
|
|
|
1931 |
|
|
|
1932 |
<li>On very old systems (circa gcc version 2.6.3), you may encounter an incompatibility
|
|
|
1933 |
in object formats (a.out vs. ELF) with the XFree86 library.
|
|
|
1934 |
Typically, <b><tt>ld</tt></b> complains that some X library is not found,
|
|
|
1935 |
or that many <b><tt>Xlib</tt></b> or <b><tt>Xt</tt></b> functions are not
|
|
|
1936 |
found in the library (similar to the messages for omitting
|
|
|
1937 |
<b><tt>SM</tt></b> and <b><tt>ICE</tt></b> from <b><tt>XLIBS</tt></b>). Or
|
|
|
1938 |
you get a message when you start Ghostscript that the program or the shared
|
|
|
1939 |
library is an unrecognized format.
|
|
|
1940 |
If this happens, edit your top-level makefile to add the switches
|
|
|
1941 |
"<b><tt>-b i486-linuxaout</tt></b>" to both <b><tt>CFLAGS</tt></b> and
|
|
|
1942 |
<b><tt>LDFLAGS</tt></b>, then "<b><tt>make clean</tt></b>" followed by
|
|
|
1943 |
"<b><tt>make</tt></b>"). If this doesn't help, or if other strange things
|
|
|
1944 |
happen, contact your Linux supplier or support resource.
|
|
|
1945 |
|
|
|
1946 |
<li>A few of Ghostscript's drivers are multi-threaded. None of them are
|
|
|
1947 |
in the default build. Currently the only ones are the "bmpa" series.
|
|
|
1948 |
These drivers require <b><tt>libc</tt></b>
|
|
|
1949 |
version 6 or higher. Most distributions include this, but it may be
|
|
|
1950 |
an issue on very old systems.
|
|
|
1951 |
</ul>
|
|
|
1952 |
|
|
|
1953 |
|
|
|
1954 |
<h4><a name="NeXTSTEP"></a>NeXTSTEP / OpenSTEP</h4>
|
|
|
1955 |
|
|
|
1956 |
<ul>
|
|
|
1957 |
<li>If you are using a NeXTSTEP version before 3.3, please get a no-cost
|
|
|
1958 |
upgrade (along with Y2K patches) from Apple.
|
|
|
1959 |
|
|
|
1960 |
<li>If '<tt>./configure && make</tt>' fails, then for all NeXTSTEP systems, use
|
|
|
1961 |
<b><tt>unix-gcc.mak</tt></b> and make the following changes:
|
|
|
1962 |
|
|
|
1963 |
<ul>
|
|
|
1964 |
<li>In <b><tt>unix-aux.mak</tt></b> (and <b><tt>ugcclib.mak</tt></b>, if you
|
|
|
1965 |
are using only the library) change the definition of <b><tt>INCLUDE</tt></b>
|
|
|
1966 |
to "<b><tt>INCLUDE=/usr/include/bsd</tt></b>";
|
|
|
1967 |
|
|
|
1968 |
<li>in <b><tt>unix-gcc.mak</tt></b>:
|
|
|
1969 |
|
|
|
1970 |
<ul>
|
|
|
1971 |
<li>change <b><tt>CC=gcc</tt></b> to <b><tt>CC=cc</tt></b>;
|
|
|
1972 |
|
|
|
1973 |
<li>change the definition of <b><tt>STDLIBS</tt></b> to only
|
|
|
1974 |
<b><tt>-lm</tt></b>;
|
|
|
1975 |
|
|
|
1976 |
<li>change <b><tt>SYNC=posync</tt></b> to <b><tt>SYNC=nosync</tt></b>;
|
|
|
1977 |
|
|
|
1978 |
<li>add <b><tt>-D_POSIX_SOURCE</tt></b> to <b><tt>CFLAGS</tt></b> and remove
|
|
|
1979 |
<b><tt>-g</tt></b>;
|
|
|
1980 |
|
|
|
1981 |
<li>remove <b><tt>-Wstrict-prototypes</tt></b> from <b><tt>GCFLAGS</tt></b>,
|
|
|
1982 |
and if you are using NeXTSTEP 3.3 (with gcc 2.5.8), also remove
|
|
|
1983 |
<b><tt>-Wmissing-declarations</tt></b>;
|
|
|
1984 |
</ul>
|
|
|
1985 |
|
|
|
1986 |
<li>to the end of <b><tt>Fontmap.GS</tt></b> add the line
|
|
|
1987 |
"<b><tt>/Ohlfs /Courier ;</tt></b>".
|
|
|
1988 |
</ul>
|
|
|
1989 |
|
|
|
1990 |
<li>If you are running the Pencom co-Xist X server (development version),
|
|
|
1991 |
the X headers and libraries are in the default places, so change the
|
|
|
1992 |
makefile definitions of <b><tt>XINCLUDE</tt></b> and
|
|
|
1993 |
<b><tt>XLIBDIRS</tt></b> to empty strings.
|
|
|
1994 |
</ul>
|
|
|
1995 |
|
|
|
1996 |
<h4><a name="SCO"></a>SCO Unix/Xenix</h4>
|
|
|
1997 |
|
|
|
1998 |
<ul>
|
|
|
1999 |
<li>See also "<a href="#386_Unix">386 Unix</a>" and
|
|
|
2000 |
"<a href="#System_V">System V Unix platforms</a>".
|
|
|
2001 |
|
|
|
2002 |
<li>The standard cc compiler on SCO OpenServer v5 has optimizer bugs.
|
|
|
2003 |
Compile without -O.
|
|
|
2004 |
|
|
|
2005 |
<li>The SCO Unix C compiler apparently can't handle the
|
|
|
2006 |
<b><tt>P</tt></b><em>n</em> macros in <b><tt>std.h</tt></b>. If you get
|
|
|
2007 |
strange compilation errors on SCO Unix, ask SCO for a compiler fix.
|
|
|
2008 |
|
|
|
2009 |
<li>Meanwhile, to use gcc with SCO ODT, see <b><tt>unix-gcc.mak</tt></b>
|
|
|
2010 |
for the appropriate switch settings.
|
|
|
2011 |
|
|
|
2012 |
<li>Because of a bug in SCO's floating point emulator, gcc 2.3.3 produces
|
|
|
2013 |
code that causes crashes on machines without hardware floating point. Use
|
|
|
2014 |
a different compiler on these machines.
|
|
|
2015 |
|
|
|
2016 |
<li>If you aren't using the X11 driver, you must add
|
|
|
2017 |
<b><tt>-lsocket</tt></b> to the value of <b><tt>EXTRALIBS</tt></b> to link
|
|
|
2018 |
the date and time functions.
|
|
|
2019 |
|
|
|
2020 |
<li>If you want to use direct frame buffer addressing instead of X Windows,
|
|
|
2021 |
include the relevant frame buffer devices (<b><tt>$(DD)ega.dev</tt></b>,
|
|
|
2022 |
<b><tt>$(DD)vga.dev</tt></b>, etc.) and change the definition of
|
|
|
2023 |
<b><tt>EGAVGA</tt></b> to <b><tt>$(EGAVGA_SCO)</tt></b> as indicated in
|
|
|
2024 |
<b><tt>devs.mak</tt></b>. <b>Note</b>: this works with SuperVGA displays
|
|
|
2025 |
only for 800x600x16 mode.
|
|
|
2026 |
|
|
|
2027 |
<li>If the display looks "smeared", try recompiling
|
|
|
2028 |
<b><tt>gdevpcfb.c</tt></b> with <b><tt>-O0</tt></b>.
|
|
|
2029 |
|
|
|
2030 |
<li>If Ghostscript crashes, use the <b><tt>-q</tt></b> switch or redirect
|
|
|
2031 |
console output to a file.
|
|
|
2032 |
|
|
|
2033 |
<li>If your compiler accepts both the <b><tt>-Xt</tt></b> and
|
|
|
2034 |
<b><tt>-Xa</tt></b> switches, use <b><tt>-Xt</tt></b>. Even though this
|
|
|
2035 |
causes the compiler to use incorrect rules for computing the result types
|
|
|
2036 |
of "<b><tt><<</tt></b>" and "<b><tt>>></tt></b>",
|
|
|
2037 |
<b><tt>-Xa</tt></b> enables optimizations that produce incorrect code.
|
|
|
2038 |
|
|
|
2039 |
<li>For SCO ODT 2.0, in addition to <b><tt>-D__SVR3</tt></b> and
|
|
|
2040 |
<b><tt>-DSYSV</tt></b>, you need to specify <b><tt>-Dsco</tt></b>,
|
|
|
2041 |
<b><tt>-DUSG</tt></b>, and <b><tt>-DMALLOC_0_RETURNS_NULL</tt></b>. For
|
|
|
2042 |
SCO ODT, you need
|
|
|
2043 |
"<b><tt>EXTRALIBS=-lX11 -lsocket -lmalloc</tt></b>", or maybe
|
|
|
2044 |
only <b><tt>-lsocket</tt></b> depending on the version), and for SCO ODT
|
|
|
2045 |
2.0, you must also specify <b><tt>-lc_s</tt></b>. For SCO Xenix, you need
|
|
|
2046 |
"<b><tt>EXTRALIBS=-lmalloc</tt></b>".
|
|
|
2047 |
|
|
|
2048 |
<li>For SCO OpenServer 5.0.5, add <b><tt>-L/usr/local/lib</tt></b> to
|
|
|
2049 |
<b><tt>LDFLAGS</tt></b>.
|
|
|
2050 |
|
|
|
2051 |
<li>For all SCO systems, set "<b><tt>XINCLUDE=</tt></b>" and
|
|
|
2052 |
"<b><tt>XLIBDIRS=</tt></b>".
|
|
|
2053 |
</ul>
|
|
|
2054 |
|
|
|
2055 |
<h4><a name="SVR4"></a>SVR4 Unix</h4>
|
|
|
2056 |
|
|
|
2057 |
<ul>
|
|
|
2058 |
<li>You may need to set <b><tt>EXTRALIBS=-lnsl</tt></b>.
|
|
|
2059 |
|
|
|
2060 |
<li>Do <b><em>not</em></b> change <b><tt>PLATFORM=unix_</tt></b> to <b><tt>PLATFORM=sysv_</tt></b>.
|
|
|
2061 |
|
|
|
2062 |
<li>On SVR4 Unix platforms with dynamic linking, you may need to define
|
|
|
2063 |
<b><tt>XLIBDIR</tt></b> as the name of the directory that holds the X
|
|
|
2064 |
Windows libraries. Do <b><em>not</em></b> prefix the name with
|
|
|
2065 |
"<b><tt>-L</tt></b>".
|
|
|
2066 |
|
|
|
2067 |
<li>For SVR4.0 systems, set <b><tt>-DSVR4</tt></b> and
|
|
|
2068 |
<b><tt>-DSVR4_0</tt></b> in the makefile; do <b><em>not</em></b> set
|
|
|
2069 |
<b><tt>-DSYSV</tt></b>. For SVR4.2 (or later) and Solaris 2.<em>n</em>
|
|
|
2070 |
systems, set only <b><tt>-DSVR4</tt></b> (<b><em>not</em></b>
|
|
|
2071 |
<b><tt>-DSVR4_0</tt></b> nor <b><tt>-DSYSV</tt></b>).
|
|
|
2072 |
</ul>
|
|
|
2073 |
|
|
|
2074 |
<h4><a name="System_V"></a>System V Unix platforms</h4>
|
|
|
2075 |
|
|
|
2076 |
<ul>
|
|
|
2077 |
<li>If you are using a stock System V platform that lacks
|
|
|
2078 |
<b><tt>rename</tt></b> and <b><tt>gettimeofday</tt></b>, in the makefile
|
|
|
2079 |
change "<b><tt>PLATFORM=unix_</tt></b>" to
|
|
|
2080 |
"<b><tt>PLATFORM=sysv_</tt></b>".
|
|
|
2081 |
|
|
|
2082 |
<li>You will probably need to change the definition of
|
|
|
2083 |
<b><tt>INSTALL</tt></b> from "<b><tt>install</tt></b>" to
|
|
|
2084 |
"<b><tt>/usr/ucb/install</tt></b>".
|
|
|
2085 |
</ul>
|
|
|
2086 |
|
|
|
2087 |
<h4><a name="Unixware"></a>Unixware</h4>
|
|
|
2088 |
|
|
|
2089 |
<ul>
|
|
|
2090 |
<li>The standard cc compiler has optimizer bugs. Compile without
|
|
|
2091 |
<b><tt>-O</tt></b>.
|
|
|
2092 |
</ul>
|
|
|
2093 |
|
|
|
2094 |
<h3><a name="Hardware_specific_issues"></a>Hardware-specific issues</h3>
|
|
|
2095 |
|
|
|
2096 |
<h4><a name="Alpha_with_gcc"></a>Alpha with gcc</h4>
|
|
|
2097 |
|
|
|
2098 |
<ul>
|
|
|
2099 |
<li>You don't have to use gcc on Alpha systems, because the bundled
|
|
|
2100 |
compiler works.
|
|
|
2101 |
|
|
|
2102 |
<li>The Alpha code generator in gcc 2.7.2.1 is broken. gcc 2.5.8 and 2.6.3
|
|
|
2103 |
are probably usable. Versions before 2.5.0 are believed not to work. We
|
|
|
2104 |
suggest you use a recent version.
|
|
|
2105 |
</ul>
|
|
|
2106 |
|
|
|
2107 |
<h4><a name="Apollo"></a>H-P Apollo</h4>
|
|
|
2108 |
|
|
|
2109 |
<ul>
|
|
|
2110 |
|
|
|
2111 |
<li>You must run the compiler in ANSI-compatible mode (that is, set <b><tt>AK=</tt></b>{null string} in the makefile); otherwise it gives incorrect error
|
|
|
2112 |
messages for any function declared as returning a float value.
|
|
|
2113 |
|
|
|
2114 |
<li>The H-P Apollo compiler may not compile Ghostscript correctly. If you
|
|
|
2115 |
get unexpected crashes at run time, use gcc.
|
|
|
2116 |
</ul>
|
|
|
2117 |
|
|
|
2118 |
<h4><a name="ATT_7040"></a>AT&T 7040 R3</h4>
|
|
|
2119 |
|
|
|
2120 |
<ul>
|
|
|
2121 |
<li>If Ghostscript crashes on startup, recompile with <b><tt>-O0</tt></b>
|
|
|
2122 |
to work around compiler bugs.
|
|
|
2123 |
</ul>
|
|
|
2124 |
|
|
|
2125 |
<h4><a name="Convex"></a>Convex</h4>
|
|
|
2126 |
|
|
|
2127 |
<ul>
|
|
|
2128 |
|
|
|
2129 |
<li>Use <b><tt>unixansi.mak</tt></b>. Do not invoke optimization
|
|
|
2130 |
(<b><tt>-O1</tt></b>) because the compiler will produce incorrect code.
|
|
|
2131 |
|
|
|
2132 |
<li>Set <b><tt>CFLAGS</tt></b> to
|
|
|
2133 |
"<b><tt>-no -fn -tm c1</tt></b>".
|
|
|
2134 |
</ul>
|
|
|
2135 |
|
|
|
2136 |
<h4><a name="DECStations"></a>DECStations with Ultrix</h4>
|
|
|
2137 |
|
|
|
2138 |
<ul>
|
|
|
2139 |
|
|
|
2140 |
<li>If you get the compiler message "cfe: Fatal: _temp_19086.c:
|
|
|
2141 |
Segmentation violation" or a similar one, try compiling with the
|
|
|
2142 |
<b><tt>-oldc</tt></b> switch.
|
|
|
2143 |
|
|
|
2144 |
<li>You may wish to set
|
|
|
2145 |
|
|
|
2146 |
<p>
|
|
|
2147 |
<b><tt>GS_LIB_DEFAULT=$(gsdatadir):/usr/lib/DPS/outline/decwin:$(gsdatadir)/fonts</tt></b>
|
|
|
2148 |
|
|
|
2149 |
<p>
|
|
|
2150 |
in the makefile to add the Display PostScript font directory to the font
|
|
|
2151 |
search path.
|
|
|
2152 |
|
|
|
2153 |
<li>Set
|
|
|
2154 |
|
|
|
2155 |
<p>
|
|
|
2156 |
<b><tt>CFLAGS="-Olimit 2500"</tt></b>
|
|
|
2157 |
|
|
|
2158 |
<p>
|
|
|
2159 |
to make the optimizer allocate enough table space.
|
|
|
2160 |
|
|
|
2161 |
<li>The Ultrix 4.4 C compiler compiles <b><tt>gdevm1.c</tt></b>
|
|
|
2162 |
incorrectly. Insert the following line in the makefile rule for
|
|
|
2163 |
"<b><tt>gdevm1.$(OBJ)</tt></b>" (the body of the rule is empty in the
|
|
|
2164 |
standard distribution):
|
|
|
2165 |
|
|
|
2166 |
<p>
|
|
|
2167 |
<b><tt>$(CCC) -oldc gdevm1.c</tt></b>
|
|
|
2168 |
</ul>
|
|
|
2169 |
|
|
|
2170 |
<h4><a name="HP_RISC"></a>H-P RISC workstations</h4>
|
|
|
2171 |
|
|
|
2172 |
<ul>
|
|
|
2173 |
|
|
|
2174 |
<li>HP-UX versions before 11.0 do not support POSIX threads. Set
|
|
|
2175 |
<b><tt>SYNC=nosync</tt></b> in the makefile before building.
|
|
|
2176 |
|
|
|
2177 |
<li>Ghostscript builds on H-P machines with either GNU gcc or H-P's
|
|
|
2178 |
ANSI-capable <b><tt>cc</tt></b>. The minimal, non-ANSI-capable
|
|
|
2179 |
<b><tt>cc</tt></b> that shiped with some basic HPUX system does <em>not</em>
|
|
|
2180 |
work. If <b><tt>cc</tt></b> on your system doesn't accept the
|
|
|
2181 |
<b><tt>-Aa</tt></b> switch, then you need to get the full
|
|
|
2182 |
<b><tt>cc</tt></b> or gcc.
|
|
|
2183 |
|
|
|
2184 |
<li>If you use H-P's compiler, be sure you have upgraded to a recent
|
|
|
2185 |
release. Many bizarre symptoms have been reported trying to build
|
|
|
2186 |
Ghostscript with older, buggier compilers, for example:
|
|
|
2187 |
<ul>
|
|
|
2188 |
<li>The link step fails with a message about "<b><tt>max</tt></b>" not being defined.
|
|
|
2189 |
<li>The build succeeds, but the resulting executable fails to start up,
|
|
|
2190 |
with an error message like "Initializing... Unrecoverable error: typecheck
|
|
|
2191 |
in .registerencoding".
|
|
|
2192 |
<li>The build succeeds, but the resulting executable produces a black
|
|
|
2193 |
background on the first page of output.
|
|
|
2194 |
</ul>
|
|
|
2195 |
|
|
|
2196 |
<li>It is reported that On HPUX 9.* you need at least compiler patch
|
|
|
2197 |
PHSS_5723 and dld.sl patch PHSS_5734 to build Ghostscript. (As of late
|
|
|
2198 |
1997, those patches are long obsolete; the current patches are compiler
|
|
|
2199 |
PHSS_10357 and dld.sl PHSS_11246. It is unknown whether current
|
|
|
2200 |
Ghostscript releases work with compiler/dld.sl versions older than these.)
|
|
|
2201 |
|
|
|
2202 |
<li>On HPUX 10.*, we don't know what combinations of compiler version and
|
|
|
2203 |
switches work. It is reported that On HPUX 10.20, setting
|
|
|
2204 |
"<b><tt>CC=c89</tt></b>" and "<b><tt>CFLAGS=+O3 $(XCFLAGS)</tt></b>"
|
|
|
2205 |
works, contradicting the information in the next paragraph, but this may be
|
|
|
2206 |
dependent on the specific compiler version.
|
|
|
2207 |
|
|
|
2208 |
<li>In either HPUX version, you need to set
|
|
|
2209 |
"<b><tt>CC=cc -Aa</tt></b>" (or use <b><tt>-Ae</tt></b> if you
|
|
|
2210 |
prefer), and set
|
|
|
2211 |
"<b><tt>CFLAGS=-D_HPUX_SOURCE -O $(XCFLAGS)</tt></b>". Higher
|
|
|
2212 |
levels of optimization than <b><tt>-O</tt></b> may work depending on your
|
|
|
2213 |
compiler revision; some users have reported success with
|
|
|
2214 |
<b><tt>+O3</tt></b>, some have not.
|
|
|
2215 |
|
|
|
2216 |
<li>Some users have reported needing <b><tt>-DNOSYSTIME</tt></b> and
|
|
|
2217 |
<b><tt>-D_POSIX_SOURCE</tt></b> in <b><tt>CFLAGS</tt></b>, but recent tests
|
|
|
2218 |
do not show these to be necessary.
|
|
|
2219 |
|
|
|
2220 |
<li>If you use gcc, it's a good idea to have a recent release -- at the
|
|
|
2221 |
very least 2.7.2.1 or later.You may be able to get a working
|
|
|
2222 |
executable with an older gcc by removing <b><tt>-O</tt></b> from
|
|
|
2223 |
<b><tt>CFLAGS</tt></b>.
|
|
|
2224 |
</ul>
|
|
|
2225 |
|
|
|
2226 |
<h4><a name="Intergraph"></a>Intergraph Clipper</h4>
|
|
|
2227 |
|
|
|
2228 |
<ul>
|
|
|
2229 |
<li>Recommended settings are:
|
|
|
2230 |
|
|
|
2231 |
<p>
|
|
|
2232 |
<b><tt>XCFLAGS=-w -Q -DSYSV -D__SVR3<br>
|
|
|
2233 |
EXTRALIBS=-lbsd -lc_s<br>
|
|
|
2234 |
CC=acc -knr<br>
|
|
|
2235 |
PLATFORM=sysv_</tt></b><br>
|
|
|
2236 |
|
|
|
2237 |
<li>You will probably need to change the value of <b><tt>XLIBS</tt></b> from
|
|
|
2238 |
"<b><tt>XLIBS=Xt X11 Xext</tt></b>" to "<b><tt>XLIBS=Xt_s X11_s Xext</tt></b>".
|
|
|
2239 |
</ul>
|
|
|
2240 |
|
|
|
2241 |
<h4><a name="MIPS"></a>MIPS</h4>
|
|
|
2242 |
|
|
|
2243 |
<ul>
|
|
|
2244 |
<li>There is apparently a bug in older versions of the MIPS C compiler
|
|
|
2245 |
which causes <b><tt>gxdither.c</tt></b> to compile incorrectly if
|
|
|
2246 |
optimization is enabled (<b><tt>-O</tt></b>). However, this bug is
|
|
|
2247 |
definitely fixed in MipsPRO C version 6.00; with this version, compiling
|
|
|
2248 |
with "<b><tt>-O2 -mips2</tt></b>" produces good output.
|
|
|
2249 |
</ul>
|
|
|
2250 |
|
|
|
2251 |
<h4><a name="NCR_3550"></a>NCR 3550</h4>
|
|
|
2252 |
|
|
|
2253 |
<ul>
|
|
|
2254 |
<li>With the NCR C Development Toolkit you must use <b><tt>-O0</tt></b>.
|
|
|
2255 |
</ul>
|
|
|
2256 |
|
|
|
2257 |
<h4><a name="Pyramid"></a>Pyramid MIServer-S</h4>
|
|
|
2258 |
|
|
|
2259 |
<p>
|
|
|
2260 |
See "<a href="#ATT_7040">AT&T 7040 R3</a>".
|
|
|
2261 |
|
|
|
2262 |
<h4><a name="RS6000"></a>IBM RS/6000 with AIX</h4>
|
|
|
2263 |
|
|
|
2264 |
<ul>
|
|
|
2265 |
|
|
|
2266 |
<li>Many versions of the AIX C compiler have bugs that have prevented
|
|
|
2267 |
Ghostscript from compiling and linking properly. We believe that the
|
|
|
2268 |
current Ghostscript release works around these bugs, and that
|
|
|
2269 |
<b><tt>unixansi.mak</tt></b> with <b><tt>CC=cc</tt></b> should work.
|
|
|
2270 |
|
|
|
2271 |
<li>You must also edit the makefile (<b><tt>unixansi.mak</tt></b>) to change
|
|
|
2272 |
<b><tt>INSTALL</tt></b> to <b><tt>/usr/ucb/install</tt></b>.
|
|
|
2273 |
|
|
|
2274 |
<li>AIX doesn't use a separate library for multi-thread support: set
|
|
|
2275 |
<b><tt>STDLIBS=-lm</tt></b> in the makefile.
|
|
|
2276 |
|
|
|
2277 |
<li>If <b><tt>-DSYSV</tt></b> produces a complaint about the functions
|
|
|
2278 |
<b><tt>index</tt></b> and <b><tt>rindex</tt></b> not being defined, try
|
|
|
2279 |
removing it.
|
|
|
2280 |
|
|
|
2281 |
<li>If the xlc 1.2.1 optimizer runs out of memory, you may need to add
|
|
|
2282 |
<b><tt>-qmaxmem=4000</tt></b> to <b><tt>CFLAGS</tt></b>.
|
|
|
2283 |
|
|
|
2284 |
<li>A user reports that the AIX C compiler shipped with AIX 3.2.5 compiles
|
|
|
2285 |
Ghostscript only if invoked with "<b><tt>c89 -D_POSIX_SOURCE</tt></b>"
|
|
|
2286 |
and <b><em>without</em></b> <b><tt>-O</tt></b>. On the other hand, another
|
|
|
2287 |
user reports successful compilation using <b><tt>unix-ansi.mak</tt></b> and
|
|
|
2288 |
the command line
|
|
|
2289 |
|
|
|
2290 |
<p>
|
|
|
2291 |
<b><tt>make CC=c89 XCFLAGS="-DOSY_AIX -D_ALL_SOURCE -qnoro -qmaxmem=3000 -bfl" $*</tt></b><br>
|
|
|
2292 |
|
|
|
2293 |
<li>Apparently some (but not all) releases of the C library declare the
|
|
|
2294 |
<b><tt>hypot</tt></b> function: if the declaration in
|
|
|
2295 |
<b><tt>math_.h</tt></b> produces an error message, try removing it.
|
|
|
2296 |
|
|
|
2297 |
<li>The IBM X11R3 server is known to be buggy: use the MIT X server if
|
|
|
2298 |
possible.
|
|
|
2299 |
|
|
|
2300 |
<li>The xlc 1.3.0.x compiler provided in AIX 3.2.5+ definitely will not
|
|
|
2301 |
compile Ghostscript correctly if <b><tt>-O</tt></b> is used on all files.
|
|
|
2302 |
A user reports that compiling <b><tt>z</tt></b>*<b><tt>.c</tt></b>,
|
|
|
2303 |
<b><tt>gsmatrix.c</tt></b>, <b><tt>gxstroke.c</tt></b> without
|
|
|
2304 |
<b><tt>-O</tt></b> is sufficient to produce a working executable:.
|
|
|
2305 |
|
|
|
2306 |
<li>Some installations of AIX 3.2.5 have what appears to be an incorrect or
|
|
|
2307 |
inconsistent version of <b><tt>libXt.a</tt></b> in
|
|
|
2308 |
<b><tt>/usr/lpp/X11/lib</tt></b>. If linking shows
|
|
|
2309 |
<b><tt>XtShellStrings</tt></b> and <b><tt>XtStrings</tt></b> as unresolved
|
|
|
2310 |
externals, set
|
|
|
2311 |
"<b><tt>XLIBDIRS=-L/usr/lpp/X11/lib/R5 -L/usr/lpp/X11/lib</tt></b>"
|
|
|
2312 |
rather than just "<b><tt>XLIBDIRS=-L/usr/lpp/X11/lib</tt></b>".
|
|
|
2313 |
|
|
|
2314 |
<li>Ghostscript has been successfully compiled and runs under AIX 4.3.3 and
|
|
|
2315 |
the IBM C compiler version 5. The following changes were required in
|
|
|
2316 |
unixansi.mak:
|
|
|
2317 |
|
|
|
2318 |
<p>
|
|
|
2319 |
<b><tt>CC=xlc</tt></b>
|
|
|
2320 |
<br>
|
|
|
2321 |
<b><tt>XCFLAGS=-qalign=natural</tt></b>
|
|
|
2322 |
|
|
|
2323 |
</ul>
|
|
|
2324 |
|
|
|
2325 |
<h4>
|
|
|
2326 |
<a NAME="Silicon_Graphics"></a>Silicon Graphics</h4>
|
|
|
2327 |
|
|
|
2328 |
<p>
|
|
|
2329 |
Users have had a lot of problems with the MIPSpro compilers on SGI systems.
|
|
|
2330 |
We recommend using gcc. If you do choose to use the MIPSpro compiler,
|
|
|
2331 |
please read the following carefully.
|
|
|
2332 |
|
|
|
2333 |
<ul>
|
|
|
2334 |
<li>
|
|
|
2335 |
To make the optimizer allocate enough table space, set
|
|
|
2336 |
|
|
|
2337 |
<p><b><tt>CFLAGS="-Olimit 2500"</tt></b> (for older compilers)
|
|
|
2338 |
<br><b><tt>CFLAGS="-OPT:Olimit=2500"</tt></b> (for newer compilers)
|
|
|
2339 |
|
|
|
2340 |
<p>
|
|
|
2341 |
MIPSpro compiler version 3.19 is "older", and 7.1 is "newer"; we aren't
|
|
|
2342 |
sure at what point in between the latter syntax was introduced.
|
|
|
2343 |
|
|
|
2344 |
<li>
|
|
|
2345 |
With the compiler shipped with Irix 5.2, use the <b><tt>-ansi</tt></b>
|
|
|
2346 |
option.
|
|
|
2347 |
|
|
|
2348 |
<li>
|
|
|
2349 |
The SGI C compiler may produce warnings about "Undefined the ANSI standard
|
|
|
2350 |
library defined macro stdin/stdout/stderr". To suppress these warnings, add
|
|
|
2351 |
"<b><tt>-woff 608</tt></b>" to the definition of <b><tt>CFLAGS</tt></b>.
|
|
|
2352 |
|
|
|
2353 |
<li>
|
|
|
2354 |
The SGI C compiler shipped with Irix 6.1 and 6.2 will not compile
|
|
|
2355 |
<b><tt>zlib/deflate.c</tt></b> properly with optimization. Compile this file
|
|
|
2356 |
separately without <b><tt>-O</tt></b>.
|
|
|
2357 |
|
|
|
2358 |
<li>
|
|
|
2359 |
With IRIX 6.5.x and the MIPSpro 7.x compilers there have been reports about
|
|
|
2360 |
incorrect output and binaries that cause segmentation faults. Various
|
|
|
2361 |
solutions have been suggested and you may want to try them in this order,
|
|
|
2362 |
until you get a working binary:
|
|
|
2363 |
|
|
|
2364 |
<ul>
|
|
|
2365 |
<li>
|
|
|
2366 |
Compile <b><tt>idict.c</tt></b> and <b><tt>isave.c</tt></b> separately
|
|
|
2367 |
without optimization after doing a normal compile; then relink.e.g.:
|
|
|
2368 |
|
|
|
2369 |
<p>
|
|
|
2370 |
<b><tt>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/idict.o -c ./idict.c</tt></b><br>
|
|
|
2371 |
<b><tt>cc -OPT:Olimit=2500 -I. -I./obj -o ./obj/isave.o -c ./isave.c</tt></b>
|
|
|
2372 |
|
|
|
2373 |
<li>
|
|
|
2374 |
Set <b><tt>CFLAGS=</tt></b> (no optimization).
|
|
|
2375 |
|
|
|
2376 |
<li>
|
|
|
2377 |
Use only <b><tt>-O2</tt></b>. Compiler produces incorrect output
|
|
|
2378 |
with <b><tt>-O3</tt></b> or "<b><tt>-Ofast=ip32 -show</tt></b>".
|
|
|
2379 |
|
|
|
2380 |
<li>
|
|
|
2381 |
Irix 6.5.1m with MIPSpro compiler 7.2.1.1m, Irix 6.5.3m with MIPSpro
|
|
|
2382 |
compiler 7.2.1, and probably other 6.5x / 7.2x combinations require
|
|
|
2383 |
compiling with the <b><tt>-o32</tt></b> option. Compiling with the (default)
|
|
|
2384 |
<b><tt>-n32</tt></b> option produces non-working executables.
|
|
|
2385 |
<b><tt>-O2</tt></b> is OK (possibly except for <b><tt>idict.c</tt></b>), but
|
|
|
2386 |
not <b><tt>-O3</tt></b>.
|
|
|
2387 |
</ul>
|
|
|
2388 |
</ul>
|
|
|
2389 |
|
|
|
2390 |
<h4><a name="Sun"></a>Sun</h4>
|
|
|
2391 |
|
|
|
2392 |
<ul>
|
|
|
2393 |
<li>The Sun unbundled C compiler (SC1.0) doesn't compile Ghostscript
|
|
|
2394 |
properly with the <b><tt>-fast</tt></b> option: Ghostscript core-dumps in
|
|
|
2395 |
<b><tt>build_gs_font</tt></b>. With that compiler use <b><tt>-g</tt></b>,
|
|
|
2396 |
or use gcc instead.
|
|
|
2397 |
|
|
|
2398 |
<li>The Sun version of <b><tt>dbx</tt></b> often gives up with an error
|
|
|
2399 |
message when trying to load Ghostscript. If this happens, use GNU
|
|
|
2400 |
<b><tt>gdb</tt></b> instead. (<b><tt>gdb</tt></b> is more reliable than
|
|
|
2401 |
<b><tt>dbx</tt></b> in other ways as well.)
|
|
|
2402 |
|
|
|
2403 |
<li>A bug in some versions of <b><tt>zlib</tt></b> results in an undefined
|
|
|
2404 |
symbol <b><tt>zmemcmp</tt></b> when compiling with Sun cc. Use gcc
|
|
|
2405 |
instead.
|
|
|
2406 |
</ul>
|
|
|
2407 |
|
|
|
2408 |
<h4><a name="SunOS"></a>SunOS</h4>
|
|
|
2409 |
|
|
|
2410 |
<ul>
|
|
|
2411 |
<li>The <tt><b>tar</b></tt> program provided with SunOS 4.1.3 may not be
|
|
|
2412 |
able to unpack the archives in the standard Ghostscript distribution.
|
|
|
2413 |
Get a more recent version of <tt><b>tar</b></tt>, such as GNU
|
|
|
2414 |
<tt><b>tar</b></tt>.
|
|
|
2415 |
|
|
|
2416 |
<li>In SunOS 4.1.[23], you may get undefined symbols
|
|
|
2417 |
<b><tt>_get_wmShellWidgetClass</tt></b> and
|
|
|
2418 |
<b><tt>_get_applicationShellWidgetClass</tt></b> when linking. Compiling
|
|
|
2419 |
"<b><tt>-Bstatic -lXmu -Bdynamic</tt></b>" appears to work for
|
|
|
2420 |
SC1.0. For gcc, try adding <b><tt>-static</tt></b> to
|
|
|
2421 |
<b><tt>CFLAGS</tt></b>. To solve the problem if you are using OpenWindows
|
|
|
2422 |
3.0 (X11R4-based Xt), ask Sun for patches 100512-02 and 100573-03.
|
|
|
2423 |
</ul>
|
|
|
2424 |
|
|
|
2425 |
<h4><a name="Solaris"></a>Solaris</h4>
|
|
|
2426 |
|
|
|
2427 |
<ul>
|
|
|
2428 |
<li>Solaris 2.2 may require setting "<b><tt>EXTRALIBS=-lsocket</tt></b>".
|
|
|
2429 |
Solaris 2.3 and later seem to require "<b><tt>EXTRALIBS=-lnsl -lsocket -lposix4</tt></b>".
|
|
|
2430 |
|
|
|
2431 |
<li>For Solaris 2.6 (and possibly some other versions), if you set
|
|
|
2432 |
<b><tt>SHARE_LIBPNG=1</tt></b>, <b><tt>SHARE_ZLIB=1</tt></b>, or
|
|
|
2433 |
<b><tt>SHARE_JPEG=1</tt></b>, you may need to set
|
|
|
2434 |
|
|
|
2435 |
<p>
|
|
|
2436 |
<b><tt>XLDFLAGS=-R /usr/local/</tt></b>xxx<b><tt>/lib:/usr/local/lib</tt></b>
|
|
|
2437 |
|
|
|
2438 |
<p>
|
|
|
2439 |
using the full path names of the relevant directories.
|
|
|
2440 |
|
|
|
2441 |
<li>Solaris 2.<em>n</em> uses <b><tt>/usr/openwin/share/include</tt></b>
|
|
|
2442 |
for the X11 libraries rather than <b><tt>/usr/local/X/include</tt></b>.
|
|
|
2443 |
|
|
|
2444 |
<li>Solaris 2.<em>n</em> typically has Type 1 fonts in
|
|
|
2445 |
<b><tt>/usr/openwin/lib/X11/fonts/Type1/outline</tt></b>.
|
|
|
2446 |
|
|
|
2447 |
<li>For Solaris 2.<b><tt>n</tt></b> in the makefile you must change
|
|
|
2448 |
the definition of <b><tt>INSTALL</tt></b> from "<b><tt>install -c</tt></b>" to
|
|
|
2449 |
"<b><tt>/usr/ucb/install -c</tt></b>".
|
|
|
2450 |
|
|
|
2451 |
<li>You may need to set <b><tt>XLIBDIR</tt></b> to the directory that holds
|
|
|
2452 |
the X11 libraries, as for other SVR4 systems. Set <b><tt>-DSVR4</tt></b>
|
|
|
2453 |
in <b><tt>CFLAGS</tt></b>.
|
|
|
2454 |
|
|
|
2455 |
<li>If you are using the SunPRO C compiler, don't use optimization level
|
|
|
2456 |
<b><tt>-xO3</tt></b>. On SPARC platforms the compiler hangs; on Intel
|
|
|
2457 |
platforms the generated code is incorrect. With this compiler on Intel, do
|
|
|
2458 |
not use the <b><tt>-native</tt></b> flag: floating point computations
|
|
|
2459 |
become unacceptably inaccurate. You can use <b><tt>-xcg92</tt></b> (SPARC
|
|
|
2460 |
V8) and <b><tt>-dalign</tt></b> for better performance.
|
|
|
2461 |
</ul>
|
|
|
2462 |
|
|
|
2463 |
<h4><a name="VAX_Ultrix"></a>VAX with Ultrix</h4>
|
|
|
2464 |
|
|
|
2465 |
<ul>
|
|
|
2466 |
<li>You may wish to set
|
|
|
2467 |
|
|
|
2468 |
<p>
|
|
|
2469 |
<b><tt>GS_LIB_DEFAULT=$(gsdatadir):/usr/lib/DPS/outline/decwin:$(gsdatadir)/fonts</tt></b>
|
|
|
2470 |
|
|
|
2471 |
<p>
|
|
|
2472 |
in the makefile to add the Display PostScript font directory to the font
|
|
|
2473 |
search path.
|
|
|
2474 |
</ul>
|
|
|
2475 |
|
|
|
2476 |
<hr>
|
|
|
2477 |
|
|
|
2478 |
<h2><a name="OS2_build"></a>How to build Ghostscript from source (OS/2 version)</h2>
|
|
|
2479 |
|
|
|
2480 |
<p>
|
|
|
2481 |
<em>Note: This section was contributed by a user: please e-mail Hermann
|
|
|
2482 |
Ulrichskötter <<a
|
|
|
2483 |
href="mailto:ulrichsk@t-online.de">ulrichsk@t-online.de</a>> if you have
|
|
|
2484 |
questions or problems.</em>
|
|
|
2485 |
|
|
|
2486 |
<p>
|
|
|
2487 |
The following instructions are for building with emx 0.9d/Fix2. Be warned
|
|
|
2488 |
that with this version of gcc/emx, compiler optimization flags '-O' or '-O1'
|
|
|
2489 |
will produce non-working output.
|
|
|
2490 |
|
|
|
2491 |
<ul>
|
|
|
2492 |
<li>The relevant makefile is <b><tt>os2.mak</tt></b> The gcc/emx 0.9b (or
|
|
|
2493 |
later) compiler and IBM <b><tt>NMAKE.EXE</tt></b> are required.
|
|
|
2494 |
|
|
|
2495 |
<li>For gcc/emx versions 0.9c and later, the <b><tt>LINK386</tt></b>
|
|
|
2496 |
command must <b><em>include</em></b>
|
|
|
2497 |
"<b><tt>$(COMPBASE)\lib\end.lib</tt></b>"; version 0.9b requires
|
|
|
2498 |
<b><em>omitting</em></b> it. The current <b><tt>os2.mak</tt></b> file does
|
|
|
2499 |
include this file in the <b><tt>LINK386</tt></b> command, so if you are
|
|
|
2500 |
using 0.9b, delete this file reference before building.
|
|
|
2501 |
|
|
|
2502 |
<li>Be sure you are using the standard OS/2 shell, <b><tt>CMD.EXE</tt></b>.
|
|
|
2503 |
Some other shells have bugs or differences that cause the makefile not to
|
|
|
2504 |
work.
|
|
|
2505 |
|
|
|
2506 |
<li>Make sure you followed the instructions in "How to unpack the source
|
|
|
2507 |
code" and "How to unpack the third-party libraries".
|
|
|
2508 |
|
|
|
2509 |
<li>Use jpegsrc_v6b.tar.gz, zlib-1.2.x.tar.gz and libpng-1.2.x.tar.gz.
|
|
|
2510 |
Earlier versions may not work.
|
|
|
2511 |
|
|
|
2512 |
<li>If you wish to include support for XFree86, edit the makefile
|
|
|
2513 |
to change <b>BUILD_X11=0</b> to <b>BUILD_X11=1</b>.
|
|
|
2514 |
XFree86 for OS/2 can be obtained from
|
|
|
2515 |
<a href="http://borneo.gmd.de/~veit/os2/xf86os2.html">
|
|
|
2516 |
http://borneo.gmd.de/~veit/os2/xf86os2.html</a>
|
|
|
2517 |
You must use emx 0.9d.
|
|
|
2518 |
</ul>
|
|
|
2519 |
|
|
|
2520 |
<p>
|
|
|
2521 |
Before compiling or linking, execute <b><tt>md bin</tt></b> and <b><tt>md
|
|
|
2522 |
obj</tt></b> in the <b><tt>gs</tt></b> directory to create the directories
|
|
|
2523 |
for the binaries.
|
|
|
2524 |
|
|
|
2525 |
<p>
|
|
|
2526 |
First, build the standard configuration:
|
|
|
2527 |
|
|
|
2528 |
<ul>
|
|
|
2529 |
<li>Edit gs/src/os2.mak: find line with 'CO=-O' (Optimizer flag) and edit
|
|
|
2530 |
this line to 'CO=-O2' (-O or -O1 do not work!).
|
|
|
2531 |
|
|
|
2532 |
<li>To start the make process, type <b><tt>nmake -f .\src\os2.mak</tt></b>,
|
|
|
2533 |
from the gs-directory.
|
|
|
2534 |
|
|
|
2535 |
<li>One DLL and two EXEs will be produced in <b><tt>gs/bin</tt></b>:
|
|
|
2536 |
<b><tt>gsdll2.dll</tt></b> (the Ghostscript DLL), <b><tt>gsos2.exe</tt></b>
|
|
|
2537 |
(the Ghostscript executable) and <b><tt>gspmdrv.exe</tt></b> (the
|
|
|
2538 |
Presentation Manager display driver). All other newly generated files will
|
|
|
2539 |
be produced in <b><tt>gs/obj</tt></b>.
|
|
|
2540 |
</ul>
|
|
|
2541 |
|
|
|
2542 |
<p>
|
|
|
2543 |
Now, if you wish, you can edit OS2.MAK to suit your needs, and then perform
|
|
|
2544 |
<b><tt>nmake -f .\src\os2.mak clean</tt></b> and then <b><tt>nmake -f
|
|
|
2545 |
.\src\os2.mak</tt></b>.
|
|
|
2546 |
|
|
|
2547 |
<hr>
|
|
|
2548 |
|
|
|
2549 |
<h2><a name="VMS_build"></a>How to build Ghostscript from source (OpenVMS version)</h2>
|
|
|
2550 |
|
|
|
2551 |
<p>The DECC6.2-003 compiler has an optimization problem that may lead to
|
|
|
2552 |
warnings about the "ANSI aliasing rules". DEC (Compaq) can provide a fix
|
|
|
2553 |
for this problem. The DECC6.2-006 compiler apparently does not have the
|
|
|
2554 |
problem.
|
|
|
2555 |
|
|
|
2556 |
<p>
|
|
|
2557 |
DEC C runtime library versions 5.5 and newer have an <b><tt>exit</tt></b>
|
|
|
2558 |
function that is compatible with all other C systems, but some older ones
|
|
|
2559 |
don't. If you get error messages from VMS when auxiliary programs such as
|
|
|
2560 |
<b><tt>genarch</tt></b> or <b><tt>echogs</tt></b> finish executing, find the
|
|
|
2561 |
line in stdpre.h that reads
|
|
|
2562 |
|
|
|
2563 |
<blockquote><b><tt>
|
|
|
2564 |
/*#define OLD_VMS_C*/
|
|
|
2565 |
</tt></b></blockquote>
|
|
|
2566 |
|
|
|
2567 |
and remove the <b><tt>/*</tt></b> and <b><tt>*/</tt></b>, changing it to
|
|
|
2568 |
|
|
|
2569 |
<blockquote><b><tt>
|
|
|
2570 |
#define OLD_VMS_C
|
|
|
2571 |
</tt></b></blockquote>
|
|
|
2572 |
|
|
|
2573 |
<p>
|
|
|
2574 |
Some versions of DEC's X server have bugs that produce broad bands of color
|
|
|
2575 |
where dither patterns should appear, or characters displayed white on top
|
|
|
2576 |
of black rectangles or not displayed at all. If this happens, consult the
|
|
|
2577 |
usage documentation for how to <a href="Use.htm#X_server_bugs">work around
|
|
|
2578 |
X server bugs</a> using X resources; also report the problem to DEC, or
|
|
|
2579 |
whomever supplied your X server.
|
|
|
2580 |
|
|
|
2581 |
<p>
|
|
|
2582 |
You may also wish to turn off the use of a backing pixmap with Ghostscript,
|
|
|
2583 |
either to work around X server memory limitations or bugs, or to obtain
|
|
|
2584 |
faster displaying at the expense of no redrawing when a Ghostscript window
|
|
|
2585 |
is restored from an icon or exposed after being occluded by another window.
|
|
|
2586 |
Again, the <a href="Use.htm">usage documentation</a> tells how to do this.
|
|
|
2587 |
|
|
|
2588 |
<p>
|
|
|
2589 |
You can <a href="Fonts.htm#Precompiling">precompile any Type 1 font</a>
|
|
|
2590 |
into C, then compile and build it into Ghostscript, as described in the
|
|
|
2591 |
<a href="Fonts.htm">fonts documentation</a>. If you do this, then add
|
|
|
2592 |
"<b><tt>$(PSD)ccfonts.dev</tt></b>" to <b><tt>FEATURE_DEVS</tt></b> in
|
|
|
2593 |
<b><tt>OPENVMS.MAK</tt></b>:
|
|
|
2594 |
|
|
|
2595 |
<blockquote><b><tt>
|
|
|
2596 |
$ FEATURE_DEVS = "$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)ccfonts.dev"
|
|
|
2597 |
</tt></b></blockquote>
|
|
|
2598 |
|
|
|
2599 |
<p>
|
|
|
2600 |
Specify the font names with <b><tt>ccfonts1</tt></b>:
|
|
|
2601 |
|
|
|
2602 |
<blockquote><b><tt>
|
|
|
2603 |
$ ccfonts1 = "Courier Courier_Oblique Courier_Bold Courier_BoldOblique"
|
|
|
2604 |
</tt></b></blockquote>
|
|
|
2605 |
|
|
|
2606 |
<p>
|
|
|
2607 |
If this makes the line too long, add another line of the same form, such as
|
|
|
2608 |
|
|
|
2609 |
<blockquote><b><tt>
|
|
|
2610 |
$ ccfonts1 = "Courier Courier_Oblique Courier_Bold Courier_BoldOblique"
|
|
|
2611 |
$ ccfonts2 = "Times_Roman Times_Italic Times_Bold Times_BoldItalic"
|
|
|
2612 |
</tt></b></blockquote>
|
|
|
2613 |
|
|
|
2614 |
<h3><a name="GNU_make_VMS"></a>Building with GNU make on OpenVMS</h3>
|
|
|
2615 |
|
|
|
2616 |
<p>
|
|
|
2617 |
<em>Note: GNU make on OpenVMS apparently has bugs that make it stop with an
|
|
|
2618 |
error when building Ghostscript version 5.80 or later. Until further
|
|
|
2619 |
notice, use MMS or MMK for building Ghostscript on OpenVMS. See <a
|
|
|
2620 |
href="#MMK_MMS_VMS">below</a> for details.</em>
|
|
|
2621 |
|
|
|
2622 |
<p>
|
|
|
2623 |
As of Ghostscript version 5.0 you can use GNU make -- with the file
|
|
|
2624 |
<b><tt>OPENVMS.MAK</tt></b> and some auxiliary <b><tt>.COM</tt></b> files
|
|
|
2625 |
-- to build Ghostscript on OpenVMS. Use the command:
|
|
|
2626 |
|
|
|
2627 |
<blockquote>
|
|
|
2628 |
<b><tt>make -fopenvms.mak "DECWINDOWS=</tt></b><em>[</em><b><tt>1.2</tt></b><em>]</em><b><tt>"</tt></b>
|
|
|
2629 |
</blockquote>
|
|
|
2630 |
|
|
|
2631 |
<p>
|
|
|
2632 |
That is, specify either "<b><tt>1.2</tt></b>" or nothing (blank) as the
|
|
|
2633 |
value of <b><tt>DECWINDOWS</tt></b>. In Europe and other parts of the world
|
|
|
2634 |
where ISO standard paper sizes are used, append "<b><tt>A4_PAPER=1</tt></b>"
|
|
|
2635 |
to that line to make A4 the default paper size at run time.
|
|
|
2636 |
|
|
|
2637 |
<p>
|
|
|
2638 |
If you haven't a prebuilt copy of GNU make, you'll have to build it
|
|
|
2639 |
yourself; as of Version 3.76 (but not earlier) it is said to build properly
|
|
|
2640 |
under OpenVMS on both VAX and Alpha. The kit is available at the
|
|
|
2641 |
<a href="http://www.gnu.org/">Free Software Foundation's</a> ftp site and
|
|
|
2642 |
its mirrors. See
|
|
|
2643 |
|
|
|
2644 |
<blockquote>
|
|
|
2645 |
<a href="ftp://ftp.gnu.org/pub/gnu/"
|
|
|
2646 |
class="offsite">ftp://ftp.gnu.org/pub/gnu/</a>
|
|
|
2647 |
</blockquote>
|
|
|
2648 |
|
|
|
2649 |
<h3><a name="MMK_MMS_VMS"></a>Building with MMK or MMS on OpenVMS</h3>
|
|
|
2650 |
|
|
|
2651 |
<p>
|
|
|
2652 |
As of Ghostscript version 5.68 you can use MMK or MMS to build Ghostscript on
|
|
|
2653 |
OpenVMS. MMS is a utility available from Compaq (Digital);
|
|
|
2654 |
MMK is a free program largely compatible with MMS.
|
|
|
2655 |
|
|
|
2656 |
<p>
|
|
|
2657 |
Building Ghostscript with MMK or MMS uses the file
|
|
|
2658 |
<b><tt>OPENVMS.MMK</tt></b> and some auxiliary <b><tt>.COM</tt></b> files.
|
|
|
2659 |
To build Ghostscript with MMK or MMS, use the command:
|
|
|
2660 |
|
|
|
2661 |
<blockquote>
|
|
|
2662 |
<b><tt>###/descrip=[.src]openvms.mmk/macro=("DECWINDOWS1_2=</tt></b><em>{</em><b><tt>0</tt></b>,<b><tt>1</tt></b><em>}</em><b><tt>")</tt></b>
|
|
|
2663 |
</blockquote>
|
|
|
2664 |
|
|
|
2665 |
where <b><tt>###</tt></b> is either <b><tt>mmk</tt></b> or <b><tt>mms</tt></b>.
|
|
|
2666 |
|
|
|
2667 |
<p>
|
|
|
2668 |
Specify <b><tt>DECWINDOWS1_2=1</tt></b> for DECWINDOWS 1.2,
|
|
|
2669 |
<b><tt>DECWINDOWS1_2=0</tt></b> for other DECWINDOWS versions. In Europe
|
|
|
2670 |
and other parts of the world where ISO standard paper sizes are used, add
|
|
|
2671 |
<b><tt>,"A4_PAPER=1"</tt></b> just before the final closing parenthesis to
|
|
|
2672 |
make A4 the default paper size at run time.
|
|
|
2673 |
|
|
|
2674 |
<p>
|
|
|
2675 |
To download MMK (source code, and VAX and Alpha executables), visit
|
|
|
2676 |
|
|
|
2677 |
<blockquote>
|
|
|
2678 |
<a href="http://www.madgoat.com/mmk.html">http://www.madgoat.com/mmk.html</a>
|
|
|
2679 |
</blockquote>
|
|
|
2680 |
|
|
|
2681 |
<hr>
|
|
|
2682 |
|
|
|
2683 |
<h2><a name="Other_environments"></a>Other environments</h2>
|
|
|
2684 |
|
|
|
2685 |
<h3><a name="No_multi_thread"></a>Environments lacking multi-threading</h3>
|
|
|
2686 |
|
|
|
2687 |
<p>
|
|
|
2688 |
All environments mentioned here by name have multi-threading capability.
|
|
|
2689 |
However, if your environment doesn't, you can remove all need for
|
|
|
2690 |
multi-threading by setting <b><tt>SYNC=nosync</tt></b> in the top-level
|
|
|
2691 |
makefile. Note that you will not be able to use any so-called "async"
|
|
|
2692 |
drivers (drivers that overlap interpretation and rasterization) if you do
|
|
|
2693 |
this. No such drivers are in the <b><tt>DEVICE_DEVS*</tt></b> lists of any
|
|
|
2694 |
makefile that we distribute.
|
|
|
2695 |
|
|
|
2696 |
<h3><a name="Plan_9"></a>Plan 9</h3>
|
|
|
2697 |
|
|
|
2698 |
<p>
|
|
|
2699 |
Use <b><tt>unix-gcc.mak</tt></b>, editing it to define
|
|
|
2700 |
|
|
|
2701 |
<blockquote><b><tt>
|
|
|
2702 |
CC=cc
|
|
|
2703 |
GCFLAGS=-D_BSD_EXTENSION -DPlan9
|
|
|
2704 |
</tt></b></blockquote>
|
|
|
2705 |
|
|
|
2706 |
<p>
|
|
|
2707 |
You will also probably have to edit many path names.
|
|
|
2708 |
|
|
|
2709 |
<h3><a name="QNX"></a>QNX</h3>
|
|
|
2710 |
|
|
|
2711 |
<p>
|
|
|
2712 |
David J. Hawkey Jr. writes that he built Ghostscript 4.03 and 5.0 under QNX
|
|
|
2713 |
4.22, 4.23, and 4.24 using Watcom C 10.6 and that "it works quite well,
|
|
|
2714 |
after figuring out the <b><tt>/etc/config/lpsrvr</tt></b> directives,
|
|
|
2715 |
except for color printing to my HP DeskJet some-number-or-another". Here
|
|
|
2716 |
is a concise presentation of changes based on the ones he made for
|
|
|
2717 |
Ghostscript 4.03.
|
|
|
2718 |
|
|
|
2719 |
<dl>
|
|
|
2720 |
<dt><b><tt>unixansi.mak</tt></b>
|
|
|
2721 |
<dd><table cellpadding=0 cellspacing=0>
|
|
|
2722 |
<tr valign=bottom>
|
|
|
2723 |
<th align=left>Original lines
|
|
|
2724 |
<td>
|
|
|
2725 |
<th align=left>Change to
|
|
|
2726 |
<tr> <td colspan=3><hr>
|
|
|
2727 |
<tr valign=top> <td><b><tt>INSTALL = install -c<br>INSTALL_PROGRAM = $(INSTALL) -m 755<br>INSTALL_DATA = $(INSTALL) -m 644</tt></b>
|
|
|
2728 |
<td>
|
|
|
2729 |
<td><b><tt>INSTALL = cp<br>INSTALL_PROGRAM = $(INSTALL)<br>INSTALL_DATA = $(INSTALL)</tt></b>
|
|
|
2730 |
<tr> <td colspan=3><hr>
|
|
|
2731 |
<tr valign=top> <td><b><tt>datadir = $(prefix)/share</tt></b>
|
|
|
2732 |
<td>
|
|
|
2733 |
<td><b><tt>datadir = $(prefix)/lib</tt></b>
|
|
|
2734 |
<tr> <td colspan=3><hr>
|
|
|
2735 |
<tr valign=top> <td><b><tt>CFLAGS_STANDARD=-O</tt></b>
|
|
|
2736 |
<td>
|
|
|
2737 |
<td><b><tt>CFLAGS_STANDARD=-Otx -zp1 -mf</tt></b>
|
|
|
2738 |
<tr> <td colspan=3><hr>
|
|
|
2739 |
<tr valign=top> <td><b><tt>LDFLAGS=$(XLDFLAGS)</tt></b>
|
|
|
2740 |
<td>
|
|
|
2741 |
<td><b><tt>LDFLAGS=-mf -N32k $(XLDFLAGS)</tt></b>
|
|
|
2742 |
<tr> <td colspan=3><hr>
|
|
|
2743 |
<tr valign=top> <td><b><tt>EXTRALIBS=</tt></b>
|
|
|
2744 |
<td>
|
|
|
2745 |
<td><b><tt>EXTRALIBS=-lXqnx_s -lsocket</tt></b>
|
|
|
2746 |
<tr> <td colspan=3><hr>
|
|
|
2747 |
<tr valign=top> <td><b><tt>XINCLUDE=-I/usr/local/X/include</tt></b>
|
|
|
2748 |
<td>
|
|
|
2749 |
<td><b><tt>#XINCLUDE=-I/usr/local/X/include</tt></b>
|
|
|
2750 |
<tr> <td colspan=3><hr>
|
|
|
2751 |
<tr valign=top> <td><b><tt>XLIBDIRS=-L/usr/local/X/lib<br>XLIBDIR=<br>XLIBS=Xt Xext X11</tt></b>
|
|
|
2752 |
<td>
|
|
|
2753 |
<td><b><tt>#XLIBDIRS=-L/usr/local/X/lib<br>#XLIBDIR=<br>XLIBS=Xt_s Xext X11_s</tt></b>
|
|
|
2754 |
<tr> <td colspan=3><hr>
|
|
|
2755 |
</table>
|
|
|
2756 |
</dl>
|
|
|
2757 |
|
|
|
2758 |
<dl>
|
|
|
2759 |
<dt><b><tt>gp_unifs.c</tt></b>
|
|
|
2760 |
<dd>After the line
|
|
|
2761 |
|
|
|
2762 |
<blockquote>
|
|
|
2763 |
<b><tt>#include <sys/param.h></tt></b>
|
|
|
2764 |
</blockquote>
|
|
|
2765 |
|
|
|
2766 |
<p>
|
|
|
2767 |
add these lines:
|
|
|
2768 |
|
|
|
2769 |
<blockquote>
|
|
|
2770 |
<b><tt>#if defined(__QNX__)<br>
|
|
|
2771 |
#include <unix.h><br>
|
|
|
2772 |
#endif</tt></b><br>
|
|
|
2773 |
</blockquote>
|
|
|
2774 |
</dl>
|
|
|
2775 |
|
|
|
2776 |
<dl>
|
|
|
2777 |
<dt><b><tt>gp_unix.c</tt></b>
|
|
|
2778 |
<dd>After the line
|
|
|
2779 |
|
|
|
2780 |
<blockquote>
|
|
|
2781 |
<b><tt>#include "time.h"</tt></b>
|
|
|
2782 |
</blockquote>
|
|
|
2783 |
|
|
|
2784 |
<p>
|
|
|
2785 |
add these lines:
|
|
|
2786 |
|
|
|
2787 |
<blockquote>
|
|
|
2788 |
<b><tt>#if defined(__QNX__)<br>
|
|
|
2789 |
#include <sys/time.h><br>
|
|
|
2790 |
#endif</tt></b><br>
|
|
|
2791 |
</blockquote>
|
|
|
2792 |
</dl>
|
|
|
2793 |
|
|
|
2794 |
<dl>
|
|
|
2795 |
<dt><b><tt>time_.h</tt></b>
|
|
|
2796 |
<dd>Modify the line beginning
|
|
|
2797 |
|
|
|
2798 |
<blockquote>
|
|
|
2799 |
<b><tt># if defined(Plan9) ||</tt></b>
|
|
|
2800 |
</blockquote>
|
|
|
2801 |
|
|
|
2802 |
<p>
|
|
|
2803 |
to begin
|
|
|
2804 |
|
|
|
2805 |
<blockquote>
|
|
|
2806 |
<b><tt># if defined(__QNX__) || defined(Plan9) ||</tt></b>
|
|
|
2807 |
</blockquote>
|
|
|
2808 |
</dl>
|
|
|
2809 |
|
|
|
2810 |
<dl>
|
|
|
2811 |
<dt><b><tt>/etc/config/lpsrvr</tt></b>
|
|
|
2812 |
<dd>Here is Hawkey's <b><tt>lpsrvr</tt></b> as an example.
|
|
|
2813 |
|
|
|
2814 |
<blockquote>
|
|
|
2815 |
<pre># lpsrvr
|
|
|
2816 |
#
|
|
|
2817 |
# Defines the print queues and their devices
|
|
|
2818 |
#
|
|
|
2819 |
# Queues
|
|
|
2820 |
|
|
|
2821 |
# ink-jet: Ghostscript interpreter for mono DeskJet - LaserJet works
|
|
|
2822 |
# better than DeskJet!
|
|
|
2823 |
|
|
|
2824 |
[ij-monops]
|
|
|
2825 |
ta=lpt1
|
|
|
2826 |
co=/usr/local/bin/gs -q -sDEVICE=laserjet -sOutputFile=- -dNOPAUSE $(spfile) quit.ps | cat > $(device)
|
|
|
2827 |
|
|
|
2828 |
# Devices
|
|
|
2829 |
|
|
|
2830 |
[-lpt1]
|
|
|
2831 |
dv=/dev/par1
|
|
|
2832 |
|
|
|
2833 |
[-lpt2]
|
|
|
2834 |
dv=/dev/par2
|
|
|
2835 |
</pre></blockquote>
|
|
|
2836 |
</dl>
|
|
|
2837 |
|
|
|
2838 |
|
|
|
2839 |
<h2><a name="UFST_build"></a>How to build Ghostscript with UFST</h2>
|
|
|
2840 |
|
|
|
2841 |
<p>
|
|
|
2842 |
<em>Note: This section is only for customers who have licensed Agfa's UFST.
|
|
|
2843 |
Other users please skip this section.
|
|
|
2844 |
</em>
|
|
|
2845 |
|
|
|
2846 |
<p>
|
|
|
2847 |
Ghostscript sources do not include UFST sources. You need to obtain them from Agfa.
|
|
|
2848 |
Ghostscript includes only some source modules that provide a bridge to UFST.
|
|
|
2849 |
|
|
|
2850 |
<p>
|
|
|
2851 |
Ghostscript makefiles do not include any script for building UFST libraries.
|
|
|
2852 |
Refer to Agfa's manual how to build them. UFST object libraries must be built
|
|
|
2853 |
before building Ghostscript with the UFST bridge.
|
|
|
2854 |
|
|
|
2855 |
<p>
|
|
|
2856 |
To build Ghostscript with UFST, specify additional options for "make":
|
|
|
2857 |
|
|
|
2858 |
<dl>
|
|
|
2859 |
<dt><b><tt>UFST_BRIDGE=1</tt></b>
|
|
|
2860 |
<dd>forces the UFST bridge to build.
|
|
|
2861 |
|
|
|
2862 |
<dt><b><tt>UFST_ROOT=path</tt></b>
|
|
|
2863 |
<dd>specifies the path to UFST root directory or folder.
|
|
|
2864 |
|
|
|
2865 |
<dt><b><tt>UFST_CFLAGS=options</tt></b>
|
|
|
2866 |
<dd>specifies C compiler options for UFST library. Refer to Agfa's manual for information about them.
|
|
|
2867 |
|
|
|
2868 |
<dt><b><tt>UFST_LIB_EXT=extension</tt></b>
|
|
|
2869 |
<dd>sets the file name extension for object libraries. You must use the appropriate one for your platform and linker.
|
|
|
2870 |
</dl>
|
|
|
2871 |
|
|
|
2872 |
<p>An example for Unix/GCC :
|
|
|
2873 |
<blockquote>
|
|
|
2874 |
<tt>UFST_BRIDGE=1 UFST_ROOT=../Agfa UFST_CFLAGS=-DGCCx86 UFST_LIB_EXT=.a</tt>
|
|
|
2875 |
</blockquote>
|
|
|
2876 |
|
|
|
2877 |
<p>For Windows/MSVC you need only specify UFST_ROOT.
|
|
|
2878 |
msvc32.mak sets the other options automatically.
|
|
|
2879 |
|
|
|
2880 |
<p>
|
|
|
2881 |
|
|
|
2882 |
<h2><a name="FT_build"></a>How to build Ghostscript with Free Type</h2>
|
|
|
2883 |
|
|
|
2884 |
<p>
|
|
|
2885 |
<em>Note: This section is only for users who wish to use Ghostscript with Free Type font renderer.
|
|
|
2886 |
Other users please skip this section.
|
|
|
2887 |
</em>
|
|
|
2888 |
|
|
|
2889 |
<p>
|
|
|
2890 |
Ghostscript sources do not include Free Type sources. You need to obtain them from Free Type group.
|
|
|
2891 |
Ghostscript includes only some source modules that provide a bridge to Free Type.
|
|
|
2892 |
|
|
|
2893 |
<p>
|
|
|
2894 |
Ghostscript makefiles do not include any script for building Free Type libraries.
|
|
|
2895 |
Refer to Free Type manual how to build them. Free Type object libraries must be built
|
|
|
2896 |
before building Ghostscript with the Free Type bridge.
|
|
|
2897 |
|
|
|
2898 |
<p>
|
|
|
2899 |
To build Ghostscript with Free Type, specify additional options for "make":
|
|
|
2900 |
|
|
|
2901 |
<dl>
|
|
|
2902 |
<dt><b><tt>FT_BRIDGE=1</tt></b>
|
|
|
2903 |
<dd>forces the Free Type bridge to build.
|
|
|
2904 |
|
|
|
2905 |
<dt><b><tt>FT_ROOT=path</tt></b>
|
|
|
2906 |
<dd>specifies the path to Free Type root directory or folder.
|
|
|
2907 |
|
|
|
2908 |
<dt><b><tt>FT_CFLAGS=options</tt></b>
|
|
|
2909 |
<dd>specifies C compiler options for Free Type library. Refer to Free Type manual for information about them.
|
|
|
2910 |
|
|
|
2911 |
<dt><b><tt>FT_LIB_EXT=extension</tt></b>
|
|
|
2912 |
<dd>sets the file name extension for object libraries. You must use the appropriate one for your platform and linker.
|
|
|
2913 |
</dl>
|
|
|
2914 |
|
|
|
2915 |
<p>An example for Unix/GCC :
|
|
|
2916 |
<blockquote>
|
|
|
2917 |
<tt>FT_BRIDGE=1 FT_ROOT=../FreeType FT_CFLAGS=-DGCCx86 FT_LIB_EXT=.a</tt>
|
|
|
2918 |
</blockquote>
|
|
|
2919 |
|
|
|
2920 |
<p>For Windows/MSVC you need only specify FT_ROOT.
|
|
|
2921 |
msvc32.mak sets the other options automatically.
|
|
|
2922 |
|
|
|
2923 |
<p>
|
|
|
2924 |
|
|
|
2925 |
<!-- [2.0 end contents] ==================================================== -->
|
|
|
2926 |
|
|
|
2927 |
<!-- [3.0 begin visible trailer] =========================================== -->
|
|
|
2928 |
<hr>
|
|
|
2929 |
|
|
|
2930 |
<p>
|
|
|
2931 |
<small>Copyright © 1996, 2000 Aladdin Enterprises.
|
|
|
2932 |
All rights reserved.</small>
|
|
|
2933 |
|
|
|
2934 |
<p>
|
|
|
2935 |
This software is provided AS-IS with no warranty, either express or
|
|
|
2936 |
implied.
|
|
|
2937 |
|
|
|
2938 |
This software is distributed under license and may not be copied,
|
|
|
2939 |
modified or distributed except as expressly authorized under the terms
|
|
|
2940 |
of the license contained in the file LICENSE in this distribution.
|
|
|
2941 |
|
|
|
2942 |
For more information about licensing, please refer to
|
|
|
2943 |
http://www.ghostscript.com/licensing/. For information on
|
|
|
2944 |
commercial licensing, go to http://www.artifex.com/licensing/ or
|
|
|
2945 |
contact Artifex Software, Inc., 101 Lucas Valley Road #110,
|
|
|
2946 |
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
|
|
|
2947 |
|
|
|
2948 |
<p>
|
|
|
2949 |
<small>Ghostscript version 8.53, 20 October 2005
|
|
|
2950 |
|
|
|
2951 |
<!-- [3.0 end visible trailer] ============================================= -->
|
|
|
2952 |
|
|
|
2953 |
</body>
|
|
|
2954 |
</html>
|