| 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&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 | |
| 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: |
| 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] |
| 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> |
| 176 | <p> |
| 177 | <tt>--enable-rpath Enable |
| 178 | runtime linker paths (-R libtool option)</tt></p> |
| 179 | <p>Add library directories (see other options below) to the TIFF |
| 180 | library run-time linker path.</p> |
| 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> |
| 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= |
| 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> |
| 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= |
| 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> |
| 214 | </dl> |
| 215 | <a name="Sample" id="Sample"></a> |
| 216 | <hr width="65%" align="right"> |
| 217 | <a name="PC" id="PC"></a> |
| 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> |
| 231 | unzip -aa -a tiff-4.0.0.zip |
| 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> |
| 243 | C:\tiff-4.0.0> nmake /f makefile.vc clean |
| 244 | C:\tiff-4.0.0> nmake /f makefile.vc |
| 245 | |
| 246 | or (the hard way) |
| 247 | |
| 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 |
| 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> |
| 269 | <hr> |
| 270 | <a name="VMS" id="VMS"></a> |
| 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 |
| 385 | copy the library to the other machine and use method 1.</p> |
| 386 | <hr> |
| 387 | <a name="Other" id="Other"></a> |
| 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) |
| 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> |
| 522 | Last updated: $Date: 2012-02-18 21:36:31 $ |
| 523 | </body> |
| 524 | </html> |