You will need a Photoshop SDK; the makefiles assume this is in a directory named 'PhotoshopAPI' next to the project directory. Download and unpack libtiff, libjpeg, and zlib next to the 'tifflibplugin' source directory. Make sure the directory names (versions) match the Makefile definitions (LIBJPEG, LIBTIFF, ZLIB). When building against tifflib-3.8.2, it is necessary to edit the 'tiff.h' header file as follows: Insert the line #ifndef _TIFF_DATA_TYPEDEFS_ before the line #ifndef HAVE_INT8 And insert the line #endif after the lines typedef unsigned long uint32; /* sizeof (uint32) must == 4 */ #endif (This is because the types clash with same-named types in Photoshop SDK.) When building with Makefile/gcc for Photoshop CS2/OS X ('make osx'), first you will need to run: ./configure in the top level of the libtiff source tree. When building for: - Carbon/Classic (MPW, 'buildprogram tifflibplugin') - Win32 (MinGW, 'make dll') first remove the file :tiff-3.8.2:libtiff:tif_config.h Neither system has the facility to run 'configure' to auto-generate this file, so customised versions exist in :mpw and :win32 directories respectively. If this is not done, you may see this error, which aborts an incorrect build: #error building for Windows, but libtiff headers are for BigEndian?? MPW only: Remove the 'inline' keyword from two lines of tif_fax3.c: file ::tiff-3.8.2:libtiff:tif_fax3.c; line 776 #inline static int32 file ::tiff-3.8.2:libtiff:tif_fax3.c; line 835 #inline static int32 If you see: File "::jpeg-6b:jconfig.h"; line 13 #Preprocessor error: 'HAVE_STDLIB_H' is already defined then there is a jconfig.h lying around from a UNIX configure. In the jpeg-6b directory, do 'make distclean' if you see: File "::zlib-1.2.3:zconf.h"; line 289 #Fatal error: unable to open input file 'unistd.h' in that file, change the line: #if 1 /* HAVE_UNISTD_H -- this line is updated by ./configure */ to #if 0 /* HAVE_UNISTD_H -- this line is updated by ./configure */