build.html 23 KB

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