libtiff: etter OpenVMS support. Patches from Alexey Chupahin.

From b280d712b28b61b3329a0d88bfb7954b7bfdf6d1 Mon Sep 17 00:00:00 2001
From: Andrey Kiselev <[EMAIL REDACTED]>
Date: Fri, 23 Nov 2007 09:12:35 +0000
Subject: [PATCH] etter OpenVMS support. Patches from Alexey Chupahin.

---
 ChangeLog         |    5 +
 configure.com     | 1118 +++++++++++++++++++++++++++++++++++++++------
 libtiff/tif_vms.c |   36 +-
 3 files changed, 1012 insertions(+), 147 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 5f139298..2672eb47 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-11-23  Andrey Kiselev  <dron@ak4719.spb.edu>
+
+	* configure.com, libtiff/tif_vms.c: Better OpenVMS support. Patches
+	from Alexey Chupahin.
+
 2007-11-22  Frank Warmerdam  <warmerdam@pobox.com>
 
 	* tif_write.c: Rip out the fancy logic in TIFFAppendToStrip() for 
diff --git a/configure.com b/configure.com
index cbd32ac6..42676e80 100644
--- a/configure.com
+++ b/configure.com
@@ -1,7 +1,8 @@
-$! $Id: configure.com,v 1.1 2006-04-21 14:22:57 dron Exp $
+$! $Id: configure.com,v 1.1.2.1 2007-11-23 09:12:35 dron Exp $
 $!
-$! Configure procedure for libtiff
-$! (c) Alexey Chupahin  18-APR-2006
+$! OpenVMS configure procedure for libtiff
+$! (c) Alexey Chupahin  22-NOV-2007
+$! elvis_75@mail.ru
 $!
 $! Permission to use, copy, modify, distribute, and sell this software and 
 $! its documentation for any purpose is hereby granted without fee, provided
@@ -29,26 +30,38 @@ $WRITE SYS$OUTPUT "Configuring libTIFF library"
 $WRITE SYS$OUTPUT " "
 $! Checking architecture
 $DECC = F$SEARCH("SYS$SYSTEM:DECC$COMPILER.EXE") .NES. ""
-$ALPHA = F$GETSYI("HW_MODEL") .GE. 1024
-$IF (ALPHA) THEN $WRITE SYS$OUTPUT "Checking architecture 	...  Alpha"
-$IF (.NOT. ALPHA) THEN $WRITE SYS$OUTPUT "Checking architecture	...  VAX"
-$IF (DECC) THEN $WRITE SYS$OUTPUT  "Compiler		...  DEC C"
 $IF (.NOT. DECC) THEN $WRITE SYS$OUTPUT  "BAD compiler" GOTO EXIT
+$    IF F$GETSYI("ARCH_TYPE").EQ.1 THEN CPU = "VAX"
+$    IF F$GETSYI("ARCH_TYPE").EQ.2 THEN CPU = "Alpha"
+$    IF F$GETSYI("ARCH_TYPE").EQ.3 THEN CPU = "I64"
+$    OS = F$GETSYI("VERSION")
+$WRITE SYS$OUTPUT "Checking architecture	...  ", CPU
+$WRITE SYS$OUTPUT "Checking OS          	...  OpenVMS ",OS
+$SHARED=0
+$IF ( (CPU.EQS."Alpha").OR.(CPU.EQS."I64") )
+$  THEN
+$       SHARED=64
+$  ELSE
+$       SHARED=32
+$ENDIF
 $MMS = F$SEARCH("SYS$SYSTEM:MMS.EXE") .NES. ""
 $MMK = F$TYPE(MMK) 
-$IF (MMS .OR. MMK) THEN GOTO TEST_LIBRARIES
+$IF (MMS .OR. MMK.NES."") THEN GOTO TEST_LIBRARIES
 $! I cant find any make tool
 $GOTO EXIT
 $!
 $!
 $TEST_LIBRARIES:
 $!   Setting as MAKE utility one of MMS or MMK. I prefer MMS.
-$IF (MMK) THEN MAKE="MMK"
+$IF (MMK.NES."") THEN MAKE="MMK"
 $IF (MMS) THEN MAKE="MMS"
 $WRITE SYS$OUTPUT "Checking build utility	...  ''MAKE'"
 $WRITE SYS$OUTPUT " "
 $!
 $!
+$IF (P1.EQS."STATIC").OR.(P1.EQS."static") THEN SHARED=0
+$!
+$!
 $!"Checking for strcasecmp "
 $ DEFINE SYS$ERROR _NLA0:
 $ DEFINE SYS$OUTPUT _NLA0:
@@ -148,7 +161,6 @@ $       WRITE SYS$OUTPUT "Checking for lfind ...   No"
 $ENDIF
 $!
 $!
-$!
 $!"Checking for correct zlib library    "
 $ DEFINE SYS$ERROR _NLA0:
 $ DEFINE SYS$OUTPUT _NLA0:
@@ -158,53 +170,54 @@ $ CC/OBJECT=TEST.OBJ/INCLUDE=(ZLIB) SYS$INPUT
       #include <zlib.h>
    int main()
      {
-	printf("checking version zlib:  %s\n",zlibVersion());
+        printf("checking version zlib:  %s\n",zlibVersion());
      }
 $TMP = $STATUS
 $DEASS SYS$ERROR
 $DEAS  SYS$OUTPUT
 $!WRITE SYS$OUTPUT TMP
-$IF (TMP .NE. %X10B90001) 
-$  THEN 
-$	HAVE_ZLIB=0
-$	GOTO EXIT
+$IF (TMP .NE. %X10B90001)
+$  THEN
+$       HAVE_ZLIB=0
+$       GOTO EXIT
 $ENDIF
 $DEFINE SYS$ERROR _NLA0:
 $DEFINE SYS$OUTPUT _NLA0:
-$LINK/EXE=TEST TEST,ZLIB:LIBZ/LIB 
+$LINK/EXE=TEST TEST,ZLIB:LIBZ/LIB
 $TMP = $STATUS
 $DEAS  SYS$ERROR
 $DEAS  SYS$OUTPUT
 $!WRITE SYS$OUTPUT TMP
-$IF (TMP .NE. %X10000001) 
-$  THEN 
-$	HAVE_ZLIB=0
+$IF (TMP .NE. %X10000001)
+$  THEN
+$       HAVE_ZLIB=0
 $       GOTO EXIT
 $  ELSE
-$	HAVE_ZLIB=1
+$       HAVE_ZLIB=1
 $ENDIF
 $IF (HAVE_ZLIB.EQ.1)
 $  THEN
 $       WRITE SYS$OUTPUT "Checking for correct zlib library ...   Yes"
 $  ELSE
-$	WRITE SYS$OUTPUT "Checking for correct zlib library ...   No"
-$       WRITE SYS$OUTPUT "This is fatal. Please download and install good library from fafner.dyndns.org/~alexey/libsdl/public.html
+$       WRITE SYS$OUTPUT "Checking for correct zlib library ...   No"
+$       WRITE SYS$OUTPUT "This is fatal. Please download and install good library from fafner.dyndns.org/~alexey/libsdl/public.html"
 $ENDIF
 $RUN TEST
 $!
+
+$DEL TEST.OBJ;*
 $! Checking for JPEG ...
-$!"Checking for correct zlib library    "
 $ DEFINE SYS$ERROR _NLA0:
 $ DEFINE SYS$OUTPUT _NLA0:
 $ CC/OBJECT=TEST.OBJ/INCLUDE=(JPEG) SYS$INPUT
       #include <stdlib.h>
       #include <stdio.h>
       #include <jpeglib.h>
-      #include <jversion.h>	
+      #include <jversion.h>
    int main()
      {
-	printf("checking version jpeg:  %s\n",JVERSION);
-	jpeg_quality_scaling(0);
+        printf("checking version jpeg:  %s\n",JVERSION);
+        jpeg_quality_scaling(0);
         return 0;
      }
 $TMP = $STATUS
@@ -213,8 +226,8 @@ $DEAS  SYS$OUTPUT
 $!WRITE SYS$OUTPUT TMP
 $IF (TMP .NE. %X10B90001)
 $  THEN
-$	HAVE_JPEG=0
-$       GOTO EXIT
+$       WRITE SYS$OUTPUT "Checking for static jpeg library ...   No"
+$       HAVE_JPEG=0
 $ENDIF
 $DEFINE SYS$ERROR _NLA0:
 $DEFINE SYS$OUTPUT _NLA0:
@@ -225,19 +238,52 @@ $DEAS  SYS$OUTPUT
 $!WRITE SYS$OUTPUT TMP
 $IF (TMP .NE. %X10000001)
 $  THEN
-$	HAVE_JPEG=0
-$       GOTO EXIT
+$       HAVE_JPEG=0
 $  ELSE
-$	HAVE_JPEG=1
+$       HAVE_JPEG=1
 $ENDIF
 $IF (HAVE_JPEG.EQ.1)
 $  THEN
-$       WRITE SYS$OUTPUT "Checking for correct jpeg library ...   Yes"
+$       WRITE SYS$OUTPUT "Checking for static jpeg library ...   Yes"
+$       JPEG_LIBRARY_PATH="JPEG:LIBJPEG/LIB"
+$       RUN TEST
 $  ELSE
-$       WRITE SYS$OUTPUT "Checking for correct jpeg library ...   No"
-$       WRITE SYS$OUTPUT "This is fatal. Please download and install good library from fafner.dyndns.org/~alexey/libsdl/public.html
+$       WRITE SYS$OUTPUT "Checking for static jpeg library ...   No"
 $ENDIF
-$RUN TEST
+$!
+$!"Checking for SHARED JPEG library    "
+$OPEN/WRITE OUT TEST.OPT
+$WRITE OUT "SYS$SHARE:LIBJPEG$SHR/SHARE"
+$WRITE OUT "ZLIB:LIBZ/LIB"
+$CLOSE OUT
+$DEFINE SYS$ERROR _NLA0:
+$DEFINE SYS$OUTPUT _NLA0:
+$LINK/EXE=TEST TEST,TEST/OPT
+$TMP = $STATUS
+$DEAS  SYS$ERROR
+$DEAS  SYS$OUTPUT
+$!WRITE SYS$OUTPUT TMP
+$IF (TMP .NE. %X10000001)
+$  THEN
+$       HAVE_JPEG_SHARED=0
+$  ELSE
+$       HAVE_JPEG_SHARED=1
+$ENDIF
+$IF (HAVE_JPEG_SHARED.EQ.1)
+$  THEN
+$       WRITE SYS$OUTPUT "Checking for shared jpeg library ...   Yes"
+$       JPEG_LIBRARY_PATH="SYS$SHARE:LIBJPEG$SHR/SHARE"
+$  ELSE
+$       WRITE SYS$OUTPUT "Checking for shared jpeg library ...   No"
+$ENDIF
+$!
+$ IF ( (HAVE_JPEG_SHARED.EQ.0).AND.(HAVE_JPEG.EQ.0) )
+$    THEN
+$       WRITE SYS$OUTPUT "No JPEG library installed. This is fatal. Please download and install good library from fafner.dyndns.org/~alexey/libsdl/public.html"
+$       GOTO EXIT
+$ ENDIF
+$!
+$!
 $!
 $! Checking for X11 ...
 $IF F$TRNLNM("DECW$INCLUDE") .NES. ""
@@ -251,9 +297,9 @@ $ENDIF
 $!
 $!WRITING BUILD FILES
 $OPEN/WRITE OUT BUILD.COM
-$ WRITE OUT "$set def [.libtiff]"
+$ WRITE OUT "$set def [.port]"
 $ WRITE OUT "$",MAKE
-$ WRITE OUT "$set def [-.PORT]"
+$ WRITE OUT "$set def [-.libtiff]"
 $ WRITE OUT "$",MAKE
 $ WRITE OUT "$set def [-.tools]"
 $ WRITE OUT "$",MAKE
@@ -263,7 +309,7 @@ $ WRITE OUT "$ CURRENT = F$ENVIRONMENT (""DEFAULT"") "
 $ WRITE OUT "$TIFF=CURRENT"
 $ WRITE OUT "$OPEN/WRITE OUTT LIBTIFF$STARTUP.COM"
 $ WRITE OUT "$TIFF[F$LOCATE(""]"",TIFF),9]:="".LIBTIFF]"""
-$ WRITE OUT "$WRITE OUTT ""DEFINE TIFF ","'","'","TIFF'""
+$ WRITE OUT "$WRITE OUTT ""DEFINE TIFF ","'","'","TIFF'"" "
 $ WRITE OUT "$TIFF=CURRENT"
 $ WRITE OUT "$TIFF[F$LOCATE(""]"",TIFF),7]:="".TOOLS]"""
 $ WRITE OUT "$WRITE OUTT ""BMP2TIFF:==$", "'","'","TIFF'BMP2TIFF"""
@@ -286,6 +332,8 @@ $ WRITE OUT "$WRITE OUTT ""TIFFDITHER:==$", "'","'","TIFF'TIFFDITHER"""
 $ WRITE OUT "$WRITE OUTT ""TIFFDUMP:==$", "'","'","TIFF'TIFFDUMP"""
 $ WRITE OUT "$WRITE OUTT ""TIFFINFO:==$", "'","'","TIFF'TIFFINFO"""
 $ WRITE OUT "$WRITE OUTT ""TIFFMEDIAN:==$", "'","'","TIFF'TIFFMEDIAN"""
+$ WRITE OUT "$WRITE OUTT ""TIFFCROP:==$", "'","'","TIFF'TIFFCROP"""
+$ WRITE OUT "$WRITE OUTT ""TIFFSET:==$", "'","'","TIFF'TIFFSET"""
 $ WRITE OUT "$CLOSE OUTT"
 $ WRITE OUT "$OPEN/WRITE OUTT [.LIBTIFF]LIBTIFF.OPT"
 $ WRITE OUT "$WRITE OUTT ""TIFF:TIFF/LIB""
@@ -294,23 +342,27 @@ $ WRITE OUT "$WRITE OUTT ""JPEG:LIBJPEG/LIB""
 $ WRITE OUT "$WRITE OUTT ""ZLIB:LIBZ/LIB""
 $ WRITE OUT "$CLOSE OUTT"
 $!
-$ WRITE OUT "$WRITE SYS$OUTPUT "" ""
-$ WRITE OUT "$WRITE SYS$OUTPUT ""***************************************************************************** ""
-$ WRITE OUT "$WRITE SYS$OUTPUT ""LIBTIFF$STARTUP.COM has been created. ""
-$ WRITE OUT "$WRITE SYS$OUTPUT ""This file setups all logicals needed. It should be execute before using LibTIFF ""
-$ WRITE OUT "$WRITE SYS$OUTPUT ""Nice place to call it - LOGIN.COM ""
-$ WRITE OUT "$WRITE SYS$OUTPUT ""***************************************************************************** ""
+$ WRITE OUT "$WRITE SYS$OUTPUT "" "" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""***************************************************************************** "" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""LIBTIFF$STARTUP.COM has been created. "" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""This file setups all logicals needed. It should be execute before using LibTIFF "" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""Nice place to call it - LOGIN.COM "" "
+$ WRITE OUT "$WRITE SYS$OUTPUT """" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""Using the library:"" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""CC/INC=TIFF ASCII_TAG.C"" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""LINK ASCII_TAG,TIFF:LIBTIFF/OPT"" "
+$ WRITE OUT "$WRITE SYS$OUTPUT ""***************************************************************************** "" "
 $CLOSE OUT
 $!
 $! DESCRIP.MMS in [.PORT]
-$OBJ="DUMMY.OBJ"
+$OBJ="dummy.obj"
 $IF HAVE_STRCASECMP.NE.1 
 $  THEN 
-$     OBJ=OBJ+",STRCASECMP.OBJ"
+$     OBJ=OBJ+",strcasecmp.obj"
 $ENDIF
 $IF HAVE_LFIND.NE.1   
 $   THEN 
-$       OBJ=OBJ+",LFIND.OBJ"
+$       OBJ=OBJ+",lfind.obj"
 $ENDIF
 $OPEN/WRITE OUT [.PORT]DESCRIP.MMS
 $WRITE OUT "OBJ=",OBJ
@@ -318,10 +370,346 @@ $WRITE OUT ""
 $WRITE OUT "LIBPORT.OLB : $(OBJ)"
 $WRITE OUT "	LIB/CREA LIBPORT $(OBJ)"
 $WRITE OUT ""
+$WRITE OUT ""
+$WRITE OUT "dummy.obj : dummy.c"
+$WRITE OUT "         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)"
+$WRITE OUT ""
+$WRITE OUT ""
+$WRITE OUT "strcasecmp.obj : strcasecmp.c"
+$WRITE OUT "         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)"
+$WRITE OUT ""
+$WRITE OUT ""
+$WRITE OUT "lfind.obj : lfind.c"
+$WRITE OUT "         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)"
+$WRITE OUT ""
+$WRITE OUT ""
+$CLOSE OUT
+$!
+$!
+$WRITE SYS$OUTPUT "Creating LIBTIFF$DEF.OPT"
+$IF (SHARED.EQ.64)
+$ THEN
+$       COPY SYS$INPUT TIFF$DEF.OPT
+SYMBOL_VECTOR= (-
+TIFFOpen=PROCEDURE,-
+TIFFGetVersion=PROCEDURE,-
+TIFFCleanup=PROCEDURE,-
+TIFFClose=PROCEDURE,-
+TIFFFlush=PROCEDURE,-
+TIFFFlushData=PROCEDURE,-
+TIFFGetField=PROCEDURE,-
+TIFFVGetField=PROCEDURE,-
+TIFFGetFieldDefaulted=PROCEDURE,-
+TIFFVGetFieldDefaulted=PROCEDURE,-
+TIFFGetTagListEntry=PROCEDURE,-
+TIFFGetTagListCount=PROCEDURE,-
+TIFFReadDirectory=PROCEDURE,-
+TIFFScanlineSize=PROCEDURE,-
+TIFFStripSize=PROCEDURE,-
+TIFFVStripSize=PROCEDURE,-
+TIFFRawStripSize=PROCEDURE,-
+TIFFTileRowSize=PROCEDURE,-
+TIFFTileSize=PROCEDURE,-
+TIFFVTileSize=PROCEDURE,-
+TIFFFileno=PROCEDURE,-
+TIFFSetFileno=PROCEDURE,-
+TIFFGetMode=PROCEDURE,-
+TIFFIsTiled=PROCEDURE,-
+TIFFIsByteSwapped=PROCEDURE,-
+TIFFIsBigEndian=PROCEDURE,-
+TIFFIsMSB2LSB=PROCEDURE,-
+TIFFIsUpSampled=PROCEDURE,-
+TIFFCIELabToRGBInit=PROCEDURE,-
+TIFFCIELabToXYZ=PROCEDURE,-
+TIFFXYZToRGB=PROCEDURE,-
+TIFFYCbCrToRGBInit=PROCEDURE,-
+TIFFYCbCrtoRGB=PROCEDURE,-
+TIFFCurrentRow=PROCEDURE,-
+TIFFCurrentDirectory=PROCEDURE,-
+TIFFCurrentStrip=PROCEDURE,-
+TIFFCurrentTile=PROCEDURE,-
+TIFFDataWidth=PROCEDURE,-
+TIFFReadBufferSetup=PROCEDURE,-
+TIFFWriteBufferSetup=PROCEDURE,-
+TIFFSetupStrips=PROCEDURE,-
+TIFFLastDirectory=PROCEDURE,-
+TIFFSetDirectory=PROCEDURE,-
+TIFFSetSubDirectory=PROCEDURE,-
+TIFFUnlinkDirectory=PROCEDURE,-
+TIFFSetField=PROCEDURE,-
+TIFFVSetField=PROCEDURE,-
+TIFFCheckpointDirectory=PROCEDURE,-
+TIFFWriteDirectory=PROCEDURE,-
+TIFFRewriteDirectory=PROCEDURE,-
+TIFFPrintDirectory=PROCEDURE,-
+TIFFReadScanline=PROCEDURE,-
+TIFFWriteScanline=PROCEDURE,-
+TIFFReadRGBAImage=PROCEDURE,-
+TIFFReadRGBAImageOriented=PROCEDURE,-
+TIFFFdOpen=PROCEDURE,-
+TIFFClientOpen=PROCEDURE,-
+TIFFFileName=PROCEDURE,-
+TIFFError=PROCEDURE,-
+TIFFErrorExt=PROCEDURE,-
+TIFFWarning=PROCEDURE,-
+TIFFWarningExt=PROCEDURE,-
+TIFFSetErrorHandler=PROCEDURE,-
+TIFFSetErrorHandlerExt=PROCEDURE,-
+TIFFSetWarningHandler=PROCEDURE,-
+TIFFSetWarningHandlerExt=PROCEDURE,-
+TIFFComputeTile=PROCEDURE,-
+TIFFCheckTile=PROCEDURE,-
+TIFFNumberOfTiles=PROCEDURE,-
+TIFFReadTile=PROCEDURE,-
+TIFFWriteTile=PROCEDURE,-
+TIFFComputeStrip=PROCEDURE,-
+TIFFNumberOfStrips=PROCEDURE,-
+TIFFRGBAImageBegin=PROCEDURE,-
+TIFFRGBAImageGet=PROCEDURE,-
+TIFFRGBAImageEnd=PROCEDURE,-
+TIFFReadEncodedStrip=PROCEDURE,-
+TIFFReadRawStrip=PROCEDURE,-
+TIFFReadEncodedTile=PROCEDURE,-
+TIFFReadRawTile=PROCEDURE,-
+TIFFReadRGBATile=PROCEDURE,-
+TIFFReadRGBAStrip=PROCEDURE,-
+TIFFWriteEncodedStrip=PROCEDURE,-
+TIFFWriteRawStrip=PROCEDURE,-
+TIFFWriteEncodedTile=PROCEDURE,-
+TIFFWriteRawTile=PROCEDURE,-
+TIFFSetWriteOffset=PROCEDURE,-
+TIFFSwabDouble=PROCEDURE,-
+TIFFSwabShort=PROCEDURE,-
+TIFFSwabLong=PROCEDURE,-
+TIFFSwabArrayOfShort=PROCEDURE,-
+TIFFSwabArrayOfLong=PROCEDURE,-
+TIFFSwabArrayOfDouble=PROCEDURE,-
+TIFFSwabArrayOfTriples=PROCEDURE,-
+TIFFReverseBits=PROCEDURE,-
+TIFFGetBitRevTable=PROCEDURE,-
+TIFFDefaultStripSize=PROCEDURE,-
+TIFFDefaultTileSize=PROCEDURE,-
+TIFFRasterScanlineSize=PROCEDURE,-
+_TIFFmalloc=PROCEDURE,-
+_TIFFrealloc=PROCEDURE,-
+_TIFFfree=PROCEDURE,-
+_TIFFmemset=PROCEDURE,-
+_TIFFmemcpy=PROCEDURE,-
+_TIFFmemcmp=PROCEDURE,-
+TIFFCreateDirectory=PROCEDURE,-
+TIFFSetTagExtender=PROCEDURE,-
+TIFFMergeFieldInfo=PROCEDURE,-
+TIFFFindFieldInfo=PROCEDURE,-
+TIFFFindFieldInfoByName=PROCEDURE,-
+TIFFFieldWithName=PROCEDURE,-
+TIFFFieldWithTag=PROCEDURE,-
+TIFFCurrentDirOffset=PROCEDURE,-
+TIFFWriteCheck=PROCEDURE,-
+TIFFRGBAImageOK=PROCEDURE,-
+TIFFNumberOfDirectories=PROCEDURE,-
+TIFFSetFileName=PROCEDURE,-
+TIFFSetClientdata=PROCEDURE,-
+TIFFSetMode=PROCEDURE,-
+TIFFClientdata=PROCEDURE,-
+TIFFGetReadProc=PROCEDURE,-
+TIFFGetWriteProc=PROCEDURE,-
+TIFFGetSeekProc=PROCEDURE,-
+TIFFGetCloseProc=PROCEDURE,-
+TIFFGetSizeProc=PROCEDURE,-
+TIFFGetMapFileProc=PROCEDURE,-
+TIFFGetUnmapFileProc=PROCEDURE,-
+TIFFIsCODECConfigured=PROCEDURE,-
+TIFFGetConfiguredCODECs=PROCEDURE,-
+TIFFFindCODEC=PROCEDURE,-
+TIFFRegisterCODEC=PROCEDURE,-
+TIFFUnRegisterCODEC=PROCEDURE,-
+TIFFFreeDirectory=PROCEDURE,-
+TIFFReadCustomDirectory=PROCEDURE,-
+TIFFReadEXIFDirectory=PROCEDURE,-
+TIFFAccessTagMethods=PROCEDURE,-
+TIFFGetClientInfo=PROCEDURE,-
+TIFFSetClientInfo=PROCEDURE,-
+TIFFReassignTagToIgnore=PROCEDURE-
+)
+
+$ENDIF
+$IF (SHARED.EQ.32)
+$ THEN
+$       COPY SYS$INPUT TIFF$DEF.OPT
+UNIVERSAL=TIFFOpen
+UNIVERSAL=TIFFGetVersion
+UNIVERSAL=TIFFCleanup
+UNIVERSAL=TIFFClose
+UNIVERSAL=TIFFFlush
+UNIVERSAL=TIFFFlushData
+UNIVERSAL=TIFFGetField
+UNIVERSAL=TIFFVGetField
+UNIVERSAL=TIFFGetFieldDefaulted
+UNIVERSAL=TIFFVGetFieldDefaulted
+UNIVERSAL=TIFFGetTagListEntry
+UNIVERSAL=TIFFGetTagListCount
+UNIVERSAL=TIFFReadDirectory
+UNIVERSAL=TIFFScanlineSize
+UNIVERSAL=TIFFStripSize
+UNIVERSAL=TIFFVStripSize
+UNIVERSAL=TIFFRawStripSize
+UNIVERSAL=TIFFTileRowSize
+UNIVERSAL=TIFFTileSize
+UNIVERSAL=TIFFVTileSize
+UNIVERSAL=TIFFFileno
+UNIVERSAL=TIFFSetFileno
+UNIVERSAL=TIFFGetMode
+UNIVERSAL=TIFFIsTiled
+UNIVERSAL=TIFFIsByteSwapped
+UNIVERSAL=TIFFIsBigEndian
+UNIVERSAL=TIFFIsMSB2LSB
+UNIVERSAL=TIFFIsUpSampled
+UNIVERSAL=TIFFCIELabToRGBInit
+UNIVERSAL=TIFFCIELabToXYZ
+UNIVERSAL=TIFFXYZToRGB
+UNIVERSAL=TIFFYCbCrToRGBInit
+UNIVERSAL=TIFFYCbCrtoRGB
+UNIVERSAL=TIFFCurrentRow
+UNIVERSAL=TIFFCurrentDirectory
+UNIVERSAL=TIFFCurrentStrip
+UNIVERSAL=TIFFCurrentTile
+UNIVERSAL=TIFFDataWidth
+UNIVERSAL=TIFFReadBufferSetup
+UNIVERSAL=TIFFWriteBufferSetup
+UNIVERSAL=TIFFSetupStrips
+UNIVERSAL=TIFFLastDirectory
+UNIVERSAL=TIFFSetDirectory
+UNIVERSAL=TIFFSetSubDirectory
+UNIVERSAL=TIFFUnlinkDirectory
+UNIVERSAL=TIFFSetField
+UNIVERSAL=TIFFVSetField
+UNIVERSAL=TIFFCheckpointDirectory
+UNIVERSAL=TIFFWriteDirectory
+UNIVERSAL=TIFFRewriteDirectory
+UNIVERSAL=TIFFPrintDirectory
+UNIVERSAL=TIFFReadScanline
+UNIVERSAL=TIFFWriteScanline
+UNIVERSAL=TIFFReadRGBAImage
+UNIVERSAL=TIFFReadRGBAImageOriented
+UNIVERSAL=TIFFFdOpen
+UNIVERSAL=TIFFClientOpen
+UNIVERSAL=TIFFFileName
+UNIVERSAL=TIFFError
+UNIVERSAL=TIFFErrorExt
+UNIVERSAL=TIFFWarning
+UNIVERSAL=TIFFWarningExt
+UNIVERSAL=TIFFSetErrorHandler
+UNIVERSAL=TIFFSetErrorHandlerExt
+UNIVERSAL=TIFFSetWarningHandler
+UNIVERSAL=TIFFSetWarningHandlerExt
+UNIVERSAL=TIFFComputeTile
+UNIVERSAL=TIFFCheckTile
+UNIVERSAL=TIFFNumberOfTiles
+UNIVERSAL=TIFFReadTile
+UNIVERSAL=TIFFWriteTile
+UNIVERSAL=TIFFComputeStrip
+UNIVERSAL=TIFFNumberOfStrips
+UNIVERSAL=TIFFRGBAImageBegin
+UNIVERSAL=TIFFRGBAImageGet
+UNIVERSAL=TIFFRGBAImageEnd
+UNIVERSAL=TIFFReadEncodedStrip
+UNIVERSAL=TIFFReadRawStrip
+UNIVERSAL=TIFFReadEncodedTile
+UNIVERSAL=TIFFReadRawTile
+UNIVERSAL=TIFFReadRGBATile
+UNIVERSAL=TIFFReadRGBAStrip
+UNIVERSAL=TIFFWriteEncodedStrip
+UNIVERSAL=TIFFWriteRawStrip
+UNIVERSAL=TIFFWriteEncodedTile
+UNIVERSAL=TIFFWriteRawTile
+UNIVERSAL=TIFFSetWriteOffset
+UNIVERSAL=TIFFSwabDouble
+UNIVERSAL=TIFFSwabShort
+UNIVERSAL=TIFFSwabLong
+UNIVERSAL=TIFFSwabArrayOfShort
+UNIVERSAL=TIFFSwabArrayOfLong
+UNIVERSAL=TIFFSwabArrayOfDouble
+UNIVERSAL=TIFFSwabArrayOfTriples
+UNIVERSAL=TIFFReverseBits
+UNIVERSAL=TIFFGetBitRevTable
+UNIVERSAL=TIFFDefaultStripSize
+UNIVERSAL=TIFFDefaultTileSize
+UNIVERSAL=TIFFRasterScanlineSize
+UNIVERSAL=_TIFFmalloc
+UNIVERSAL=_TIFFrealloc
+UNIVERSAL=_TIFFfree
+UNIVERSAL=_TIFFmemset
+UNIVERSAL=_TIFFmemcpy
+UNIVERSAL=_TIFFmemcmp
+UNIVERSAL=TIFFCreateDirectory
+UNIVERSAL=TIFFSetTagExtender
+UNIVERSAL=TIFFMergeFieldInfo
+UNIVERSAL=TIFFFindFieldInfo
+UNIVERSAL=TIFFFindFieldInfoByName
+UNIVERSAL=TIFFFieldWithName
+UNIVERSAL=TIFFFieldWithTag
+UNIVERSAL=TIFFCurrentDirOffset
+UNIVERSAL=TIFFWriteCheck
+UNIVERSAL=TIFFRGBAImageOK
+UNIVERSAL=TIFFNumberOfDirectories
+UNIVERSAL=TIFFSetFileName
+UNIVERSAL=TIFFSetClientdata
+UNIVERSAL=TIFFSetMode
+UNIVERSAL=TIFFClientdata
+UNIVERSAL=TIFFGetReadProc
+UNIVERSAL=TIFFGetWriteProc
+UNIVERSAL=TIFFGetSeekProc
+UNIVERSAL=TIFFGetCloseProc
+UNIVERSAL=TIFFGetSizeProc
+UNIVERSAL=TIFFGetMapFileProc
+UNIVERSAL=TIFFGetUnmapFileProc
+UNIVERSAL=TIFFIsCODECConfigured
+UNIVERSAL=TIFFGetConfiguredCODECs
+UNIVERSAL=TIFFFindCODEC
+UNIVERSAL=TIFFRegisterCODEC
+UNIVERSAL=TIFFUnRegisterCODEC
+UNIVERSAL=TIFFFreeDirectory
+UNIVERSAL=TIFFReadCustomDirectory
+UNIVERSAL=TIFFReadEXIFDirectory
+UNIVERSAL=TIFFAccessTagMethods
+UNIVERSAL=TIFFGetClientInfo
+UNIVERSAL=TIFFSetClientInfo
+UNIVERSAL=TIFFReassignTagToIgnore
+ 
+$ENDIF
+$!
+$!
+$! Writing TIFF$SHR.OPT file to build TOOLS
+$ IF (SHARED.GT.0)
+$   THEN
+$       OPEN/WRITE OUT TIFF$SHR.OPT
+$       WRITE OUT "[]TIFF/LIB"
+$       WRITE OUT "[-.PORT]LIBPORT/LIB"
+$       WRITE OUT JPEG_LIBRARY_PATH
+$       WRITE OUT "ZLIB:LIBZ/LIB"
+$       CLOSE OUT
+$ ENDIF
+$!
+$!
+$! Writing OPT.OPT file to build TOOLS
+$OPEN/WRITE OUT OPT.OPT
+$ IF (SHARED.GT.0)
+$   THEN
+$       WRITE OUT "[-.LIBTIFF]TIFF$SHR/SHARE"
+$       WRITE OUT JPEG_LIBRARY_PATH
+$   ELSE
+$       WRITE OUT "[-.LIBTIFF]TIFF/LIB"
+$       WRITE OUT "[-.PORT]LIBPORT/LIB"
+$       WRITE OUT JPEG_LIBRARY_PATH
+$ ENDIF
+$ WRITE OUT "ZLIB:LIBZ/LIB"
 $CLOSE OUT
 $!
 $!
 $COPY SYS$INPUT [.LIBTIFF]DESCRIP.MMS
+# (c) Alexey Chupahin 22-NOV-2007
+# OpenVMS 7.3-1, DEC 2000 mod.300
+# OpenVMS 8.3,   HP rx1620
 # Makefile for DEC C compilers.
 #
 
@@ -331,53 +719,185 @@ CFLAGS =  $(INCL)
 
 OBJ_SYSDEP_MODULE = tif_vms.obj
 
-OBJ     = tif_aux.obj, \
-        tif_close.obj, \
-        tif_codec.obj, \
-        tif_color.obj, \
-        tif_compress.obj, \
-        tif_dir.obj, \
-        tif_dirinfo.obj, \
-        tif_dirread.obj, \
-        tif_dirwrite.obj, \
-        tif_dumpmode.obj, \
-        tif_error.obj, \
-        tif_extension.obj, \
-        tif_fax3.obj, \
-        tif_fax3sm.obj, \
-        tif_getimage.obj, \
-        tif_jpeg.obj, \
-        tif_ojpeg.obj, \
-        tif_flush.obj, \
-        tif_luv.obj, \
-        tif_lzw.obj, \
-        tif_next.obj, \
-        tif_open.obj, \
-        tif_packbits.obj, \
-        tif_pixarlog.obj, \
-        tif_predict.obj, \
-        tif_print.obj, \
-        tif_read.obj, \
-        tif_stream.obj, \
-        tif_swab.obj, \
-        tif_strip.obj, \
-        tif_thunder.obj, \
-        tif_tile.obj, \
-        tif_version.obj, \
-        tif_warning.obj, \
-        tif_write.obj, \
-        tif_zip.obj, \
-        $(OBJ_SYSDEP_MODULE)
-
-
-tiff.olb :  tif_config.h, tiffconf.h $(OBJ)
+OBJ     = \
+tif_aux.obj,\
+tif_close.obj,\
+tif_codec.obj,\
+tif_color.obj,\
+tif_compress.obj,\
+tif_dir.obj,\
+tif_dirinfo.obj,\
+tif_dirread.obj,\
+tif_dirwrite.obj,\
+tif_dumpmode.obj,\
+tif_error.obj,\
+tif_extension.obj,\
+tif_fax3.obj,\
+tif_fax3sm.obj,\
+tif_flush.obj,\
+tif_getimage.obj,\
+tif_jbig.obj,\
+tif_jpeg.obj,\
+tif_luv.obj,\
+tif_lzw.obj,\
+tif_next.obj,\
+tif_ojpeg.obj,\
+tif_open.obj,\
+tif_packbits.obj,\
+tif_pixarlog.obj,\
+tif_predict.obj,\
+tif_print.obj,\
+tif_read.obj,\
+tif_strip.obj,\
+tif_swab.obj,\
+tif_thunder.obj,\
+tif_tile.obj,\
+tif_version.obj,\
+tif_warning.obj,\
+tif_write.obj,\
+tif_zip.obj, $(OBJ_SYSDEP_MODULE)
+
+$IF (SHARED.GT.0)
+$ THEN
+$       APP SYS$INPUT [.LIBTIFF]DESCRIP.MMS
+ALL : tiff.olb, tiff$shr.exe
+        $WRITE SYS$OUTPUT "Done"
+
+tiff$shr.exe : tiff.olb
+        LINK/SHARE=TIFF$SHR.EXE TIF_AUX,[-]TIFF$DEF/OPT, [-]TIFF$SHR/OPT
+        COPY TIFF$SHR.EXE SYS$SHARE
+        PURGE SYS$SHARE:TIFF$SHR.EXE
+
+$ ELSE
+$       APP SYS$INPUT [.LIBTIFF]DESCRIP.MMS
+ALL : tiff.olb
+        $WRITE SYS$OUTPUT "Done"
+
+$ENDIF
+$!
+$!
+$ APP SYS$INPUT [.LIBTIFF]DESCRIP.MMS
+
+tiff.olb :  $(OBJ)
         lib/crea tiff.olb $(OBJ)
 
-tif_config.h : tif_config.h-vms
-        copy tif_config.h-vms tif_config.h
+#tif_config.h : tif_config.h-vms
+#        copy tif_config.h-vms tif_config.h
+#
+#tiffconf.h : tiffconf.h-vms
+#        copy tiffconf.h-vms tiffconf.h
+
+tif_aux.obj : tif_aux.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_close.obj : tif_close.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_codec.obj : tif_codec.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_color.obj : tif_color.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_compress.obj : tif_compress.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_dir.obj : tif_dir.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_dirinfo.obj : tif_dirinfo.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_dirread.obj : tif_dirread.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_dirwrite.obj : tif_dirwrite.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_dumpmode.obj : tif_dumpmode.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_error.obj : tif_error.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_extension.obj : tif_extension.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_fax3.obj : tif_fax3.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_fax3sm.obj : tif_fax3sm.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_flush.obj : tif_flush.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
-tiffconf.h : tiffconf.h-vms
-        copy tiffconf.h-vms tiffconf.h
+tif_getimage.obj : tif_getimage.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_jbig.obj : tif_jbig.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_jpeg.obj : tif_jpeg.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_luv.obj : tif_luv.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_lzw.obj : tif_lzw.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_next.obj : tif_next.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_ojpeg.obj : tif_ojpeg.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_open.obj : tif_open.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_packbits.obj : tif_packbits.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_pixarlog.obj : tif_pixarlog.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_predict.obj : tif_predict.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_print.obj : tif_print.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_read.obj : tif_read.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_strip.obj : tif_strip.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_swab.obj : tif_swab.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_thunder.obj : tif_thunder.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_tile.obj : tif_tile.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_unix.obj : tif_unix.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_version.obj : tif_version.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_warning.obj : tif_warning.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_write.obj : tif_write.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tif_zip.obj : tif_zip.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+ 
 
 clean :
         del *.obj;*
@@ -386,89 +906,429 @@ $!
 $!
 $!
 $COPY SYS$INPUT [.TOOLS]DESCRIP.MMS
+# (c) Alexey Chupahin 22-NOV-2007
+# OpenVMS 7.3-1, DEC 2000 mod.300
+# OpenVMS 8.3,   HP rx1620
+ 
 INCL            = /INCL=([],[-.LIBTIFF])
 CFLAGS = $(INCL)
+LIBS = [-]OPT/OPT
+
+OBJ=\
+bmp2tiff.exe,\
+fax2ps.exe,\
+fax2tiff.exe,\
+gif2tiff.exe,\
+pal2rgb.exe,\
+ppm2tiff.exe,\
+ras2tiff.exe,\
+raw2tiff.exe,\
+rgb2ycbcr.exe,\
+thumbnail.exe,\
+tiff2bw.exe,\
+tiff2pdf.exe,\
+tiff2ps.exe,\
+tiff2rgba.exe,\
+tiffcmp.exe,\
+tiffcp.exe,\
+tiffcrop.exe,\
+tiffdither.exe,\
+tiffdump.exe,\
+tiffinfo.exe,\
+tiffmedian.exe,\
+tiffset.exe,\
+tiffsplit.exe,\
+ycbcr.exe
+ 
 
-TARGETS =       bmp2tiff.exe tiffcp.exe tiffinfo.exe tiffdump.exe \
-                fax2tiff.exe fax2ps.exe gif2tiff.exe pal2rgb.exe ppm2tiff.exe \
-                rgb2ycbcr.exe thumbnail.exe ras2tiff.exe raw2tiff.exe \
-                tiff2bw.exe tiff2rgba.exe tiff2pdf.exe tiff2ps.exe \
-                tiffcmp.exe tiffdither.exe tiffmedian.exe 
-#tiffsplit.exe
+all : $(OBJ)
+	$!
 
-tiffsplit.exe : $(TARGETS)
+bmp2tiff.obj : bmp2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 bmp2tiff.exe : bmp2tiff.obj
-        LINK bmp2tiff, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
-tiffcp.exe : tiffcp.obj
-        LINK tiffcp, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+fax2ps.obj : fax2ps.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
-tiffinfo.exe : tiffinfo.obj
-        LINK tiffinfo, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+fax2ps.exe : fax2ps.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
-tiffdump.exe : tiffdump.obj
-        LINK tiffdump, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+fax2tiff.obj : fax2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 fax2tiff.exe : fax2tiff.obj
-        LINK fax2tiff, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
-fax2ps.exe : fax2ps.obj
-        LINK fax2ps, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+gif2tiff.obj : gif2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 gif2tiff.exe : gif2tiff.obj
-        LINK gif2tiff, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+pal2rgb.obj : pal2rgb.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 pal2rgb.exe : pal2rgb.obj
-        LINK pal2rgb, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
-ppm2tiff.exe : ppm2tiff.obj
-        LINK ppm2tiff, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+ppm2tiff.obj : ppm2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
-rgb2ycbcr.exe : rgb2ycbcr.obj
-        LINK rgb2ycbcr, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+ppm2tiff.exe : ppm2tiff.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
-thumbnail.exe : thumbnail.obj
-        LINK thumbnail, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+ras2tiff.obj : ras2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 ras2tiff.exe : ras2tiff.obj
-        LINK ras2tiff, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+raw2tiff.obj : raw2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 raw2tiff.exe : raw2tiff.obj
-        LINK raw2tiff, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
-tiff2bw.exe : tiff2bw.obj
-        LINK tiff2bw, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+rgb2ycbcr.obj : rgb2ycbcr.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
-tiff2rgba.exe : tiff2rgba.obj
-        LINK tiff2rgba, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+rgb2ycbcr.exe : rgb2ycbcr.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+sgi2tiff.obj : sgi2tiff.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+sgi2tiff.exe : sgi2tiff.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+sgisv.obj : sgisv.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+sgisv.exe : sgisv.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+thumbnail.obj : thumbnail.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+thumbnail.exe : thumbnail.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+tiff2bw.obj : tiff2bw.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tiff2bw.exe : tiff2bw.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
 
 tiff2pdf.obj : tiff2pdf.c
-        CC/NOWARN $(CFLAGS) tiff2pdf
+         $(CC) $(CFLAGS) /NOWARN $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 tiff2pdf.exe : tiff2pdf.obj
-        LINK tiff2pdf, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+tiff2ps.obj : tiff2ps.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 tiff2ps.exe : tiff2ps.obj
-        LINK tiff2ps, [-.LIBTIFF]TIFF/LIB,JPEG:LIBJPEG/LIB, [-.PORT]LIBPORT/LIB
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+tiff2rgba.obj : tiff2rgba.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
+
+tiff2rgba.exe : tiff2rgba.obj
+         LINK/EXE=$(MMS$TARGET)  $(MMS$SOURCE), $(LIBS)
+
+tiffcmp.obj : tiffcmp.c
+         $(CC) $(CFLAGS) $(MMS$SOURCE) /OBJ=$(MMS$TARGET)
 
 tiffcmp.exe : tiffcmp.obj
-        LINK tiffcmp, [

(Patch may be truncated, please check the link at the top of this post.)