]>
Commit | Line | Data |
---|---|---|
8414a40c VZ |
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
2 | <html> | |
3 | <head> | |
4 | <meta name="generator" content= | |
80ed523f | 5 | "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org"> |
8414a40c VZ |
6 | <title>Building the TIFF Software Distribution</title> |
7 | </head> | |
8 | <body bgcolor="white"> | |
9 | <h1><font face="Arial, Helvetica, Sans"><img src= | |
10 | "images/cramps.gif" width="159" height="203" align="left" border= | |
11 | "1" hspace="6"> Building the Software Distribution</font></h1> | |
12 | <ul> | |
13 | <li><a href="#UNIX">Building on a UNIX system</a>.</li> | |
8414a40c | 14 | <li><a href="#PC">Building on an MS-DOS or Windows system</a>.</li> |
8414a40c | 15 | <li><a href="#VMS">Building on a VMS system</a>.</li> |
8414a40c VZ |
16 | <li><a href="#Other">Building the Software on Other |
17 | Systems</a></li> | |
18 | </ul> | |
19 | <br clear="left"> | |
20 | This chapter contains step-by-step instructions on how to configure | |
21 | and build the TIFF software distribution. The software is most | |
22 | easily built on a UNIX system, but with a little bit of work it can | |
80ed523f | 23 | easily be built and used on other non-UNIX platforms. |
8414a40c | 24 | <hr> |
80ed523f | 25 | <a name="UNIX" id="UNIX"></a> |
8414a40c VZ |
26 | <h2>Building on a UNIX System</h2> |
27 | To build the software on a UNIX system you need to first run the | |
28 | configure shell script that is located in the top level of the | |
29 | source directory. This script probes the target system for | |
30 | necessary tools and functions and constructs a build environment in | |
31 | which the software may be compiled. Once configuration is done, you | |
32 | simply run <tt>make</tt> (or <tt>gmake</tt>) to build the software | |
33 | and then <tt>make install</tt> to do the installation; for example: | |
34 | <div style="margin-left: 2em"> | |
35 | <pre> | |
80ed523f | 36 | hyla% <b>cd ./tiff-4.0.0</b> |
8414a40c VZ |
37 | hyla% <b>./configure</b> |
38 | <i>...lots of messages...</i> | |
39 | hyla% <b>make</b> | |
40 | <i>...lots of messages...</i> | |
80ed523f VZ |
41 | hyla% <b>make check</b> |
42 | <i>...lots of messages...</i> | |
8414a40c VZ |
43 | hyla# <b>make install</b> |
44 | </pre></div> | |
80ed523f VZ |
45 | Supplied makefiles are dependent on a <tt>make</tt> utility and a C |
46 | (and optionally a C++ compiler), so you will need these tools. | |
8414a40c VZ |
47 | <p>In general, the software is designed such that the following |
48 | should be ``<i>make-able</i>'' in each directory:</p> | |
49 | <div style="margin-left: 2em"> | |
50 | <pre> | |
51 | make [all] build stuff | |
80ed523f | 52 | make check run the test suite |
8414a40c VZ |
53 | make install build&install stuff |
54 | make clean remove .o files, executables and cruft | |
55 | make distclean remove everything, that can be recreated | |
56 | </pre></div> | |
57 | Note that after running "<tt>make distclean</tt>" the | |
58 | <tt>configure</tt> script must be run again to create the Makefiles | |
59 | and other make-related files. <a name="BuildTrees" id= | |
60 | "BuildTrees"></a> | |
61 | <hr width="65%" align="right"> | |
62 | <h3>Build Trees</h3> | |
63 | There are two schemes for configuring and building the software. If | |
64 | you intend to build the software for only one target system, you | |
65 | can configure the software so that it is built in the same | |
66 | directories as the source code. | |
67 | <div style="margin-left: 2em"> | |
68 | <pre> | |
80ed523f VZ |
69 | hyla% <b>gzip -dc tiff-4.0.0.tar.gz | tar -xf -</b> |
70 | hyla% <b>cd ./tiff-4.0.0</b> | |
8414a40c | 71 | hyla% <b>./configure</b> |
80ed523f VZ |
72 | hyla% <b>make</b> |
73 | hyla% <b>make check</b> | |
74 | hyla% <b>make install</b> | |
8414a40c VZ |
75 | </pre></div> |
76 | <p>Otherwise, you can configure a build tree that is parallel to | |
80ed523f VZ |
77 | the source tree hierarchy (or in some completely different place) |
78 | but which contains only configured files and files created during | |
79 | the build procedure.</p> | |
8414a40c VZ |
80 | <div style="margin-left: 2em"> |
81 | <pre> | |
80ed523f VZ |
82 | hyla% <b>gzip -dc tiff-4.0.0.tar.gz | tar -xf -</b> |
83 | hyla% <b>mkdir tiff-4.0.0-build</b> | |
84 | hyla% <b>cd ./tiff-4.0.0-build</b> | |
85 | hyla% <b>../tiff-4.0.0/configure</b> | |
86 | hyla% <b>make</b> | |
87 | hyla% <b>make check</b> | |
88 | hyla% <b>make install</b> | |
8414a40c VZ |
89 | </pre></div> |
90 | This second scheme is useful for: | |
91 | <ul> | |
92 | <li>building multiple targets from a single source tree</li> | |
93 | <li>building from a read-only source tree (e.g. if you receive the | |
94 | distribution on CD-ROM)</li> | |
80ed523f VZ |
95 | <li>sharing the source files via a network, but building on |
96 | multiple systems</li> | |
8414a40c VZ |
97 | </ul> |
98 | <a name="ConfigOptions" id="ConfigOptions"></a> | |
99 | <hr width="65%" align="right"> | |
100 | <h3>Configuration Options</h3> | |
101 | The configuration process is critical to the proper compilation, | |
102 | installation, and operation of the software. The configure script | |
103 | runs a series of tests to decide whether or not the target system | |
104 | supports required functionality and, if it does not, whether it can | |
105 | emulate or workaround the missing functions. This procedure is | |
106 | fairly complicated and, due to the nonstandard nature of most UNIX | |
107 | systems, prone to error. The first time that you configure the | |
108 | software for use you should check the output from the configure | |
109 | script and look for anything that does not make sense for your | |
110 | system. | |
111 | <p>A second function of the configure script is to set the default | |
112 | configuration parameters for the software. Of particular note are | |
113 | the directories where the software is to be installed. By default | |
114 | the software is installed in the <b>/usr/local</b> hierarchy. To | |
115 | change this behaviour the appropriate parameters can be specified | |
116 | on the command line to configure. Run <b>./configure --help</b> to | |
80ed523f VZ |
117 | get a full list of possible options. Standard installation related |
118 | options are shown below.</p> | |
8414a40c VZ |
119 | <pre> |
120 | <tt> | |
121 | Installation directories: | |
122 | --prefix=PREFIX install architecture-independent files in PREFIX | |
123 | [/usr/local] | |
124 | --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX | |
125 | [PREFIX] | |
126 | ||
127 | By default, `make install' will install all the files in | |
128 | `/usr/local/bin', `/usr/local/lib' etc. You can specify | |
129 | an installation prefix other than `/usr/local' using `--prefix', | |
130 | for instance `--prefix=$HOME'. | |
131 | ||
132 | For better control, use the options below. | |
133 | ||
134 | Fine tuning of the installation directories: | |
80ed523f VZ |
135 | --bindir=DIR user executables [EPREFIX/bin] |
136 | --sbindir=DIR system admin executables [EPREFIX/sbin] | |
137 | --libexecdir=DIR program executables [EPREFIX/libexec] | |
138 | --sysconfdir=DIR read-only single-machine data [PREFIX/etc] | |
139 | --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] | |
140 | --localstatedir=DIR modifiable single-machine data [PREFIX/var] | |
141 | --libdir=DIR object code libraries [EPREFIX/lib] | |
142 | --includedir=DIR C header files [PREFIX/include] | |
143 | --oldincludedir=DIR C header files for non-gcc [/usr/include] | |
144 | --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] | |
145 | --datadir=DIR read-only architecture-independent data [DATAROOTDIR] | |
146 | --localedir=DIR locale-dependent data [DATAROOTDIR/locale] | |
147 | --mandir=DIR man documentation [DATAROOTDIR/man] | |
148 | --docdir=DIR documentation root [DATAROOTDIR/doc/tiff] | |
149 | --htmldir=DIR html documentation [DOCDIR] | |
8414a40c VZ |
150 | |
151 | Program names: | |
152 | --program-prefix=PREFIX prepend PREFIX to installed program names | |
153 | --program-suffix=SUFFIX append SUFFIX to installed program names | |
154 | --program-transform-name=PROGRAM run sed PROGRAM on installed program names | |
155 | </tt> | |
156 | </pre> | |
157 | <a name="Packages" id="Packages"></a> | |
158 | <hr width="65%" align="right"> | |
159 | <h3>Configuring Optional Packages/Support</h3> | |
160 | The TIFF software comes with several packages that are installed | |
161 | only as needed, or only if specifically configured at the time the | |
162 | configure script is run. Packages can be configured via the | |
163 | <b>configure</b> script commandline parameters. | |
164 | <dl> | |
165 | <dt><i>Static/Shared Objects Support</i></dt> | |
166 | <dd><tt>--enable-shared[=PKGS] build shared | |
167 | libraries [default=yes]<br> | |
168 | --enable-static[=PKGS] build static | |
169 | libraries [default=yes]</tt> | |
170 | <p>These options control whether or not to configure the software | |
171 | to build a shared and static binaries for the TIFF library. Use of | |
172 | shared libraries can significantly reduce the disk space needed for | |
173 | users of the TIFF software. If shared libarries are not used then | |
174 | the code is statically linked into each application that uses it. | |
175 | By default both types of binaries is configured.</p> | |
80ed523f VZ |
176 | <p> |
177 | <tt>--enable-rpath Enable | |
178 | runtime linker paths (-R libtool option)</tt></p> | |
8414a40c VZ |
179 | <p>Add library directories (see other options below) to the TIFF |
180 | library run-time linker path.</p> | |
80ed523f VZ |
181 | <p><tt>--enable-ld-version-script Enable linker version |
182 | script (default is disabled)</tt></p> | |
183 | <p>Add shared library symbol versioning on ELF-based systems (e.g. | |
184 | Linux and FreeBSD) which use the GNU linker. This is needed if | |
185 | several major versions of libtiff might be loaded at once into the | |
186 | same program.</p> | |
8414a40c VZ |
187 | </dd> |
188 | <dt><i>JPEG Support</i></dt> | |
189 | <dd><tt>--disable-jpeg disable IJG JPEG | |
190 | library usage (required for JPEG compression, enabled by default) | |
191 | --with-jpeg-include-dir=DIR location of IJG | |
192 | JPEG library headers | |
193 | --with-jpeg-lib-dir=DIR location of IJG JPEG | |
194 | library binary)</tt></dd> | |
195 | <dd>The <tt>JPEG</tt> package enables support for the handling of | |
196 | TIFF images with JPEG-encoded data. Support for JPEG-encoded data | |
197 | requires the Independent JPEG Group (IJG) <tt>libjpeg</tt> | |
198 | distribution; this software is available at <a href= | |
80ed523f VZ |
199 | "http://www.ijg.org/">http://www.ijg.org/</a>. <b>configure</b> |
200 | script automatically tries to search for a working IJG JPEG | |
201 | installation. If it fails to find library, JPEG support will be | |
202 | automatically disabled.If you want specify the exact paths to | |
203 | library binary and headers, use above switches for that.</dd> | |
8414a40c VZ |
204 | <dt><i>ZIP Support</i></dt> |
205 | <dd>The <tt>ZIP</tt> support enables support for the handling of | |
206 | TIFF images with deflate-encoded data. Support for deflate-encoded | |
207 | data requires the freely available <tt>zlib</tt> distribution | |
208 | written by Jean-loup Gailly and Mark Adler; this software is | |
209 | available at <a href= | |
80ed523f VZ |
210 | "http://www.zlib.org/">http://www.zlib.org/</a>. If ZIP support is |
211 | enabled the <tt>DIRS_LIBINC</tt> and <tt>DIR_GZLIB</tt> parameters | |
212 | should also be set (see below). By default this package is not | |
213 | configured.</dd> | |
8414a40c VZ |
214 | </dl> |
215 | <a name="Sample" id="Sample"></a> | |
216 | <hr width="65%" align="right"> | |
80ed523f | 217 | <a name="PC" id="PC"></a> |
8414a40c VZ |
218 | <h2>Building the Software under Windows 95/98/NT/2000 with MS |
219 | VC++</h2> | |
220 | With Microsoft Visual C++ installed, and properly configured for | |
221 | commandline use (you will likely need to source VCVARS32.BAT in | |
222 | AUTOEXEC.bAT or somewhere similar) you should be able to use the | |
223 | provided <tt>makefile.vc</tt>. | |
224 | <p>The source package is delivered using Unix line termination | |
225 | conventions, which work with MSVC but do not work with Windows | |
226 | 'notepad'. If you use unzip from the <a href= | |
227 | "http://www.info-zip.org/pub/infozip/">Info-Zip</a> package, you | |
228 | can extract the files using Windows normal line termination | |
229 | conventions with a command similar to:</p> | |
230 | <pre> | |
80ed523f | 231 | unzip -aa -a tiff-4.0.0.zip |
8414a40c VZ |
232 | </pre> |
233 | <p>By default libtiff expects that a pre-built zlib and jpeg | |
234 | library are provided by the user. If this is not the case, then you | |
235 | may edit libtiff\tiffconf.h using a text editor (e.g. notepad) and | |
236 | comment out the entries for JPEG_SUPPORT, PIXARLOG_SUPPORT, and | |
237 | ZIP_SUPPORT. Ignore the comment at the top of the file which says | |
238 | that it has no influence on the build, because the statement is not | |
239 | true for Windows. However, by taking this approach, libtiff will | |
240 | not be able to open some TIFF files.</p> | |
241 | <p>To build using the provided makefile.vc you may use:</p> | |
242 | <pre> | |
80ed523f VZ |
243 | C:\tiff-4.0.0> nmake /f makefile.vc clean |
244 | C:\tiff-4.0.0> nmake /f makefile.vc | |
8414a40c VZ |
245 | |
246 | or (the hard way) | |
247 | ||
80ed523f VZ |
248 | C:\tiff-4.0.0> cd port |
249 | C:\tiff-4.0.0\port> nmake /f makefile.vc clean | |
250 | C:\tiff-4.0.0\port> nmake /f makefile.vc | |
251 | C:\tiff-4.0.0> cd ../libtiff | |
252 | C:\tiff-4.0.0\libtiff> nmake /f makefile.vc clean | |
253 | C:\tiff-4.0.0\libtiff> nmake /f makefile.vc | |
254 | C:\tiff-4.0.0\libtiff> cd ..\tools | |
255 | C:\tiff-4.0.0\tools> nmake /f makefile.vc clean | |
256 | C:\tiff-4.0.0\tools> nmake /f makefile.vc | |
8414a40c VZ |
257 | </pre> |
258 | <p>This will build the library file | |
259 | <tt>libtiff\libtiff\libtiff.lib</tt>. This can be used in Win32 | |
260 | programs. You may want to adjust the build options before start | |
261 | compiling. All parameters contained in the <tt>nmake.opt</tt> | |
262 | file.This is a plain text file you can open with your favorite text | |
263 | editor.</p> | |
264 | <p>The makefile also builds a DLL (libtiff.dll) with an associated | |
265 | import library (libtiff_i.lib). Any builds using libtiff will need | |
266 | to include the LIBTIFF\LIBTIFF directory in the include path.</p> | |
267 | <p>The <tt>libtiff\tools\makefile.vc</tt> should build .exe's for | |
268 | all the standard TIFF tool programs.</p> | |
8414a40c | 269 | <hr> |
80ed523f | 270 | <a name="VMS" id="VMS"></a> |
8414a40c VZ |
271 | <h2>Building the Software on a VMS System</h2> |
272 | The VMS port was done by Karsten Spang (<a href= | |
273 | "mailto:krs@kampsax.dk">krs@kampsax.dk</a>), who also "sort of" | |
274 | maintains it. The VMS specific files are not in the main | |
275 | directories. Instead they are placed under | |
276 | <tt>[.CONTRIB.VMS...]</tt> in the distribution tree. Installation: | |
277 | It is assumed that you have unpacked the tar file into a VMS | |
278 | directory tree, in this text called DISK:[TIFF]. | |
279 | <ol> | |
280 | <li>Move the VMS specific files to their proper directories. | |
281 | <pre> | |
282 | $ SET DEFAULT DISK:[TIFF.CONTRIB.VMS] | |
283 | $ RENAME [.LIBTIFF]*.* [-.-.LIBTIFF] | |
284 | $ RENAME [.TOOLS]*.* [-.-.TOOLS] | |
285 | </pre></li> | |
286 | <li>Compile the library. | |
287 | <pre> | |
288 | $ SET DEFAULT DISK:[TIFF.LIBTIFF] | |
289 | $ @MAKEVMS | |
290 | </pre></li> | |
291 | <li>Compile the tools. | |
292 | <pre> | |
293 | $ SET DEFAULT DISK:[TIFF.TOOLS] | |
294 | $ @MAKEVMS | |
295 | </pre></li> | |
296 | <li>Define the programs. | |
297 | <pre> | |
298 | $ DEFINE TIFFSHR DISK:[TIFF.LIBTIFF]TIFFSHR | |
299 | $ FAX2PS :==$DISK:[TIFF.TOOLS]FAX2PS | |
300 | $ FAX2TIFF :==$DISK:[TIFF.TOOLS]FAX2TIFF | |
301 | $ GIF2TIFF :==$DISK:[TIFF.TOOLS]GIF2TIFF | |
302 | $ PAL2RGB :==$DISK:[TIFF.TOOLS]PAL2RGB | |
303 | $ PPM2TIFF :==$DISK:[TIFF.TOOLS]PPM2TIFF | |
304 | $ RAS2TIFF :==$DISK:[TIFF.TOOLS]RAS2TIFF | |
305 | $ RGB2YCBCR :==$DISK:[TIFF.TOOLS]RGB2YCBCR | |
306 | $ THUMBNAIL :==$DISK:[TIFF.TOOLS]THUMBNAIL | |
307 | $ TIFF2BW :==$DISK:[TIFF.TOOLS]TIFF2BW | |
308 | $ TIFF2PS :==$DISK:[TIFF.TOOLS]TIFF2PS | |
309 | $ TIFFCMP :==$DISK:[TIFF.TOOLS]TIFFCMP | |
310 | $ TIFFCP :==$DISK:[TIFF.TOOLS]TIFFCP | |
311 | $ TIFFDITHER:==$DISK:[TIFF.TOOLS]TIFFDITHER | |
312 | $ TIFFDUMP :==$DISK:[TIFF.TOOLS]TIFFDUMP | |
313 | $ TIFFINFO :==$DISK:[TIFF.TOOLS]TIFFINFO | |
314 | $ TIFFMEDIAN:==$DISK:[TIFF.TOOLS]TIFFMEDIAN | |
315 | $ TIFFSPLIT :==$DISK:[TIFF.TOOLS]TIFFSPLIT | |
316 | $ YCBCR :==$DISK:[TIFF.TOOLS]YCBCR | |
317 | </pre></li> | |
318 | </ol> | |
319 | You will want to add these lines to your <tt>LOGIN.COM</tt> file, | |
320 | after changing the name of the directory that you have used on your | |
321 | machine. | |
322 | <p>This release has been tested on OpenVMS/VAX 5.5-2, using VAX C | |
323 | 3.2. A previous release was tested under OpenVMS/AXP ?.? using DEC | |
324 | C ?.?, it is believed that this release as well works on AXP. The | |
325 | code contains some GNU C specific things. This does *not* imply, | |
326 | however, that the VAX/GCC configuration has been tested, *it has | |
327 | not*.</p> | |
328 | <p>The command procedures (<tt>MAKEVMS.COM</tt>) for building the | |
329 | library and tools, is believed to choose the correct options for | |
330 | the VAX and AXP cases automatically.</p> | |
331 | <p>On the AXP, IEEE floating point is used by default. If you want | |
332 | VAX floating point, remove the <tt>/FLOAT=IEEE_FLOAT</tt> | |
333 | qualifier, and change <tt>HAVE_IEEEFP=1</tt> to | |
334 | <tt>HAVE_IEEEFP=0</tt> in the <tt>MAKEVMS.COM</tt> files in both | |
335 | the <b>libtiff</b> and <b>tools</b> directories.</p> | |
336 | <h3>Compiling your own program on a VMS system:</h3> | |
337 | When compiling a source file in which you <tt>"#include | |
338 | <tiffio.h>"</tt>, use the following command | |
339 | <pre> | |
340 | $ CC/INCLUDE=DISK:[TIFF.LIBTIFF] | |
341 | </pre> | |
342 | This ensures that the header file is found. On the AXP, also add | |
343 | <tt>/FLOAT=IEEE_FLOAT</tt> (if used when building the library). | |
344 | <h3>Linking your own program to the TIFF library on a VMS | |
345 | system:</h3> | |
346 | You can link to the library in two ways: Either using the shareable | |
347 | library, or using the object library. On the VAX these | |
348 | possibilities are: | |
349 | <ol> | |
350 | <li>Using the shareable TIFF library. | |
351 | <pre> | |
352 | $ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/OPTIONS,SYS$INPUT:/OPTIONS | |
353 | SYS$SHARE:VAXCRTL/SHAREABLE | |
354 | </pre></li> | |
355 | <li>Using the TIFF object library. | |
356 | <pre> | |
357 | $ LINK MY_PROGRAM, - | |
358 | DISK:[TIFF.LIBTIFF]TIFF/LIBRARY/INCLUDE=(TIF_FAX3SM,TIF_CODEC), - | |
359 | SYS$INPUT:/OPTIONS | |
360 | SYS$SHARE:VAXCRTL/SHAREABLE | |
361 | </pre></li> | |
362 | </ol> | |
363 | On AXP (and possibly also using DEC C on VAX) the corresponding | |
364 | commands are | |
365 | <ol> | |
366 | <li>Using the shareable TIFF library. | |
367 | <pre> | |
368 | $ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/OPTIONS | |
369 | </pre></li> | |
370 | <li>Using the TIFF object library. | |
371 | <pre> | |
372 | $ LINK MY_PROGRAM,DISK:[TIFF.LIBTIFF]TIFF/LIBRARY | |
373 | </pre></li> | |
374 | </ol> | |
375 | Method 1 uses the shortest link time and smallest <tt>.EXE</tt> | |
376 | files, but it requires that <tt>TIFFSHR</tt> is defined as above at | |
377 | link time and <strong>at run time</strong>. Using the compilation | |
378 | procedure above, the tools are linked in this way. | |
379 | <p>Method 2 gives somewhat longer link time and larger | |
380 | <tt>.EXE</tt> files, but does not require <tt>TIFFSHR</tt> to be | |
381 | defined. This method is recommended if you want to run your program | |
382 | on another machine, and for some reason don't want to have the | |
383 | library on that machine. If you plan to have more than one program | |
384 | (including the tools) on the machine, it is recommended that you | |
80ed523f | 385 | copy the library to the other machine and use method 1.</p> |
8414a40c | 386 | <hr> |
80ed523f | 387 | <a name="Other" id="Other"></a> |
8414a40c VZ |
388 | <h2>Building the Software on Other Systems</h2> |
389 | This section contains information that might be useful if you are | |
390 | working on a non-UNIX system that is not directly supported. All | |
391 | library-related files described below are located in the | |
392 | <b>libtiff</b> directory. | |
393 | <p>The library requires two files that are generated | |
394 | <i>on-the-fly</i>. The file <b>tif_fax3sm.c</b> has the state | |
395 | tables for the Group 3 and Group 4 decoders. This file is generated | |
396 | by the <tt>mkg3states</tt> program on a UNIX system; for | |
397 | example,</p> | |
398 | <div style="margin-left: 2em"> | |
399 | <pre> | |
400 | <tt> | |
401 | cd libtiff | |
402 | cc -o mkg3states mkg3states.c | |
403 | rm -f tif_fax3sm.c | |
404 | ./mkg3states -c const tif_fax3sm.c | |
405 | </tt> | |
406 | </pre></div> | |
407 | The <tt>-c</tt> option can be used to control whether or not the | |
408 | resutling tables are generated with a <tt>const</tt> declaration. | |
409 | The <tt>-s</tt> option can be used to specify a C storage class for | |
410 | the table declarations. The <tt>-b</tt> option can be used to force | |
411 | data values to be explicitly bracketed with ``{}'' (apparently | |
412 | needed for some MS-Windows compilers); otherwise the structures are | |
413 | emitted in as compact a format as possible. Consult the source code | |
414 | for this program if you have questions. | |
415 | <p>The second file required to build the library, <b>version.h</b>, | |
416 | contains the version information returned by the | |
417 | <tt>TIFFGetVersion</tt> routine. This file is built on most systems | |
418 | using the <tt>mkversion</tt> program and the contents of the | |
419 | <tt>VERSION</tt> and <tt>tiff.alpha</tt> files; for example,</p> | |
420 | <div style="margin-left: 2em"> | |
421 | <pre> | |
422 | cd libtiff | |
423 | cc -o mkversion mkversion.c | |
424 | rm -f version.h | |
425 | ./mkversion -v ../VERSION -a ../dist/tiff.alpha version.h | |
426 | </pre></div> | |
427 | <p>Otherwise, when building the library on a non-UNIX system be | |
428 | sure to consult the files <b>tiffcomp.h</b> and <b>tiffconf.h</b>. | |
429 | The former contains system compatibility definitions while the | |
430 | latter is provided so that the software configuration can be | |
431 | controlled on systems that do not support the make facility for | |
432 | building the software.</p> | |
433 | <p>Systems without a 32-bit compiler may not be able to handle some | |
434 | of the codecs in the library; especially the Group 3 and 4 decoder. | |
435 | If you encounter problems try disabling support for a particular | |
436 | codec; consult the <a href= | |
437 | "internals.html#Config">documentation</a>.</p> | |
438 | <p>Programs in the tools directory are written to assume an ANSI C | |
439 | compilation environment. There may be a few POSIX'isms as well. The | |
440 | code in the <b>port</b> directory is provided to emulate routines | |
441 | that may be missing on some systems. On UNIX systems the | |
442 | <tt>configure</tt> script automatically figures out which routines | |
443 | are not present on a system and enables the use of the equivalent | |
444 | emulation routines from the <b>port</b> directory. It may be | |
445 | necessary to manually do this work on a non-UNIX system. <a name= | |
446 | "Testing" id="Testing"></a></p> | |
447 | <hr> | |
448 | <h2>Checking out the Software</h2> | |
449 | <p>Assuming you have working versions of <tt>tiffgt</tt> and | |
450 | <tt>tiffsv</tt>, you can just use them to view any of the sample | |
451 | images available for testing (see the <a href="images.html">section | |
452 | on obtaining the test images</a>). Otherwise, you can do a cursory | |
453 | check of the library with the <tt>tiffcp</tt> and <tt>tiffcmp</tt> | |
454 | programs. For example,</p> | |
455 | <div style="margin-left: 2em"> | |
456 | <pre> | |
457 | tiffcp -lzw cramps.tif x.tif | |
458 | tiffcmp cramps.tif x.tif | |
459 | </pre></div> | |
460 | <p>(<tt>tiffcmp</tt> should be silent if the files compare | |
461 | correctly). <a name="TOC" id="TOC"></a></p> | |
462 | <hr> | |
463 | <h2>Table of Contents</h2> | |
464 | The following files makup the core library: | |
465 | <pre> | |
466 | libtiff/tiff.h TIFF spec definitions | |
467 | libtiff/tiffcomp.h non-UNIX OS-compatibility definitions | |
468 | libtiff/tiffconf.h non-UNIX configuration definitions | |
469 | libtiff/tiffio.h public TIFF library definitions | |
470 | libtiff/tiffiop.h private TIFF library definitions | |
471 | libtiff/t4.h CCITT Group 3/4 code tables+definitions | |
472 | libtiff/tif_dir.h private defs for TIFF directory handling | |
473 | libtiff/tif_fax3.h CCITT Group 3/4-related definitions | |
474 | libtiff/tif_predict.h private defs for Predictor tag support | |
475 | libtiff/uvcode.h LogL/LogLuv codec-specific definitions | |
476 | libtiff/version.h version string (generated by Makefile) | |
8414a40c VZ |
477 | libtiff/tif_apple.c Apple-related OS support |
478 | libtiff/tif_atari.c Atari-related OS support | |
479 | libtiff/tif_aux.c auxilary directory-related functions | |
480 | libtiff/tif_close.c close an open TIFF file | |
481 | libtiff/tif_codec.c configuration table of builtin codecs | |
482 | libtiff/tif_compress.c compression scheme support | |
483 | libtiff/tif_dir.c directory tag interface code | |
484 | libtiff/tif_dirinfo.c directory known tag support code | |
485 | libtiff/tif_dirread.c directory reading code | |
486 | libtiff/tif_dirwrite.c directory writing code | |
487 | libtiff/tif_dumpmode.c "no" compression codec | |
488 | libtiff/tif_error.c library error handler | |
489 | libtiff/tif_fax3.c CCITT Group 3 and 4 codec | |
490 | libtiff/tif_fax3sm.c G3/G4 state tables (generated by mkg3states) | |
491 | libtiff/tif_flush.c i/o and directory state flushing | |
492 | libtiff/tif_getimage.c TIFFRGBAImage support | |
493 | libtiff/tif_jpeg.c JPEG codec (interface to the IJG distribution) | |
494 | libtiff/tif_luv.c SGI LogL/LogLuv codec | |
495 | libtiff/tif_lzw.c LZW codec | |
496 | libtiff/tif_msdos.c MSDOS-related OS support | |
497 | libtiff/tif_next.c NeXT 2-bit scheme codec (decoding only) | |
498 | libtiff/tif_open.c open and simply query code | |
499 | libtiff/tif_packbits.c Packbits codec | |
500 | libtiff/tif_pixarlog.c Pixar codec | |
501 | libtiff/tif_predict.c Predictor tag support | |
502 | libtiff/tif_print.c directory printing support | |
503 | libtiff/tif_read.c image data reading support | |
504 | libtiff/tif_strip.c some strip-related code | |
505 | libtiff/tif_swab.c byte and bit swapping support | |
506 | libtiff/tif_thunder.c Thunderscan codec (decoding only) | |
507 | libtiff/tif_tile.c some tile-related code | |
508 | libtiff/tif_unix.c UNIX-related OS support | |
509 | libtiff/tif_version.c library version support | |
510 | libtiff/tif_vms.c VMS-related OS support | |
511 | libtiff/tif_warning.c library warning handler | |
512 | libtiff/tif_win3.c Windows-3.1-related OS support | |
513 | libtiff/tif_win32.c Win32 (95/98/NT) related OS support | |
514 | libtiff/tif_write.c image data writing support | |
515 | libtiff/tif_zip.c Deflate codec | |
516 | ||
517 | libtiff/mkg3states.c program to generate G3/G4 decoder state tables | |
518 | libtiff/mkspans.c program to generate black-white span tables | |
519 | libtiff/mkversion.c program to generate libtiff/version.h. | |
520 | </pre> | |
521 | <hr> | |
80ed523f | 522 | Last updated: $Date: 2012-02-18 21:36:31 $ |
8414a40c VZ |
523 | </body> |
524 | </html> |