1$!======================================================================== 2$! 3$! Name : MAKEVMS 4$! 5$! Purpose : Compile TIFF library 6$! 7$! Arguments : If P1 is DEBUG, compile with debug 8$! 9$! Created 1-DEC-1994 Karsten Spang 10$! 11$!======================================================================== 12$ CURRENT_DIR=F$ENVIRONMENT("DEFAULT") 13$ ON CONTROL_Y THEN GOTO EXIT 14$ ON ERROR THEN GOTO EXIT 15$! 16$! Get hold on definitions 17$! 18$! Older versions of VMS may not recoqnize the "ARCH_NAME" keyword 19$! This happens only on VAX 20$! 21$ SAVE_MESS=F$ENVIRONMENT("MESSAGE") 22$ SET MESSAGE/NOID/NOFAC/NOSEV/NOTEXT 23$ ARCH=F$GETSYI("ARCH_NAME") 24$ SET MESSAGE 'SAVE_MESS' 25$ IF F$TYPE(ARCH).EQS."" THEN ARCH="VAX" 26$ ARCH=F$EDIT(ARCH,"UPCASE") 27$! 28$ DEFINE/NOLOG SYS SYS$LIBRARY 29$ THIS_FILE=F$ENVIRONMENT("PROCEDURE") 30$ PROC_NAME=F$PARSE(THIS_FILE,,,"NAME","SYNTAX_ONLY") 31$ THIS_DIR=F$PARSE(THIS_FILE,,,"DEVICE","SYNTAX_ONLY")+ - 32 F$PARSE(THIS_FILE,,,"DIRECTORY","SYNTAX_ONLY") 33$ SET DEFAULT 'THIS_DIR' 34$ IF ARCH.EQS."ALPHA" 35$ THEN 36$ CONF_FP="HAVE_IEEEFP=1" 37$ ELSE 38$ CONF_FP="HAVE_IEEEFP=0" 39$ ENDIF 40$ CONF_LIBRARY="BSDTYPES,HAVE_MMAP" 41$ IF P1.EQS."DEBUG" 42$ THEN 43$ DEBUG_OPTIONS="/DEBUG/NOOPTIMIZE" 44$ CONF_LIBRARY=CONF_LIBRARY+",DEBUG" 45$ LINK_OPTIONS="/DEBUG" 46$ ELSE 47$ DEBUG_OPTIONS="" 48$ LINK_OPTIONS="" 49$ ENDIF 50$ DEFINES="/DEFINE=("+CONF_FP+","+CONF_LIBRARY+")" 51$ C_COMPILE="CC"+DEBUG_OPTIONS+DEFINES 52$ IF ARCH.EQS."ALPHA" 53$ THEN 54$! 55$! You may want a different floating point option 56$! 57$ C_COMPILE=C_COMPILE+ - 58 "/FLOAT=IEEE_FLOAT/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES" 59$ ENDIF 60$! 61$ SOURCES="TIF_AUX,TIF_CLOSE,TIF_CODEC,TIF_COMPRESS,"+ - 62 "TIF_DIR,TIF_DIRINFO,TIF_DIRREAD,TIF_DIRWRITE,"+ - 63 "TIF_DUMPMODE,TIF_ERROR,TIF_FAX3,TIF_FAX3SM,TIF_FLUSH,TIF_GETIMAGE,"+ - 64-! "TIF_JPEG,"+ - 65 "TIF_LZW,TIF_NEXT,TIF_OPEN,TIF_PACKBITS,TIF_PIXARLOG,TIF_PREDICT,"+ - 66 "TIF_PRINT,TIF_READ,TIF_STRIP,TIF_SWAB,TIF_THUNDER,TIF_TILE,"+ - 67 "TIF_VERSION,TIF_VMS,TIF_WARNING,TIF_WRITE" 68! ",TIF_ZIP" 69$ LIBFILE="TIFF" 70$ IF F$SEARCH(LIBFILE+".OLB").EQS."" THEN - 71 LIBRARY/CREATE 'LIBFILE' 72$! 73$! Create the port library 74$! 75$ LIBPORT="[-.PORT]PORT" 76$ IF F$SEARCH(LIBPORT+".OLB") .EQS "" 77$ THEN 78$ WRITE SYS$OUTPUT "Creating PORT.OLB" 79$ LIBRARY/CREATE 'LIBPORT' 80$ CREATE DUM.C 81main(){getopt();strtoul();strcasecmp();} 82$ C_COMPILE DUM 83$ SET MESSAGE/ID/FAC/SEV/TEXT 84$ DEFINE/USER SYS$OUTPUT LINK.WARNINGS 85$ DEFINE/USER SYS$ERROR NLA0: 86$ IF ARCH.EQS."ALPHA" 87$ THEN 88$ LINK DUM 89$ ELSE 90$ LINK DUM,SYS$INPUT:/OPTIONS 91SYS$SHARE:VAXCRTL/SHARE 92$ ENDIF 93$ DELETE DUM.C;,DUM.OBJ;,DUM.EXE; 94$ SEARCH/OUT=MISSING.OBJECTS LINK.WARNINGS LINK-I-UDFSYM 95$ DELETE LINK.WARNINGS; 96$ OPEN/READ MISSING MISSING.OBJECTS 97$NEXTMIS: 98$ READ/END=NOMOREMIS MISSING LINE 99$ LINE=F$EDIT(LINE,"TRIM,COMPRESS,UPCASE") 100$ LINE=F$ELEMENT(1," ",LINE) 101$ IF LINE .EQS. " " THEN GOTO NEXTMIS 102$ WRITE SYS$OUTPUT " "+LINE 103$ C_COMPILE/OBJECT=[-.PORT]'LINE' [-.PORT]'LINE' 104$ LIBRARY 'LIBPORT' [-.PORT]'LINE' 105$ DELETE [-.PORT]'LINE'.OBJ; 106$ GOTO NEXTMIS 107$NOMOREMIS: 108$ CLOSE MISSING 109$ DELETE MISSING.OBJECTS; 110$ ENDIF 111$! 112$! Create VERSION.H 113$! 114$ IF F$SEARCH("VERSION.H").EQS."" 115$ THEN 116$ WRITE SYS$OUTPUT "Creating VERSION.H" 117$ IF F$SEARCH("MKVERSION.EXE").EQS."" 118$ THEN 119$ IF F$SEARCH("MKVERSION.OBJ").EQS."" 120$ THEN 121$ C_COMPILE MKVERSION 122$ ENDIF 123$ IF ARCH.EQS."ALPHA" 124$ THEN 125$ LINK MKVERSION,'LIBPORT'/LIBRARY 126$ ELSE 127$ LINK MKVERSION,'LIBPORT'/LIBRARY,SYS$INPUT:/OPTIONS 128SYS$SHARE:VAXCRTL/SHARE 129$ ENDIF 130$ DELETE MKVERSION.OBJ;* 131$ ENDIF 132$ MKVERSION:=$'THIS_DIR'MKVERSION 133$ MKVERSION -V [-]VERSION -A [-.DIST]TIFF.ALPHA VERSION.H 134$ DELETE MKVERSION.EXE;* 135$ ENDIF 136$! 137$! Create TIF_FAX3SM.C 138$! 139$ IF F$SEARCH("TIF_FAX3SM.C").EQS."" 140$ THEN 141$ WRITE SYS$OUTPUT "Creating FAX3SM.C" 142$ IF F$SEARCH("MKG3STATES.EXE").EQS."" 143$ THEN 144$ IF F$SEARCH("MKG3STATES.OBJ").EQS."" 145$ THEN 146$ C_COMPILE MKG3STATES 147$ ENDIF 148$ IF ARCH.EQS."ALPHA" 149$ THEN 150$ LINK MKG3STATES,'LIBPORT'/LIBRARY 151$ ELSE 152$ LINK MKG3STATES,'LIBPORT'/LIBRARY,SYS$INPUT:/OPTIONS 153SYS$SHARE:VAXCRTL/SHARE 154$ ENDIF 155$ DELETE MKG3STATES.OBJ;* 156$ ENDIF 157$ MKG3STATES:=$'THIS_DIR'MKG3STATES 158$ MKG3STATES -c const TIF_FAX3SM.C 159$ DELETE MKG3STATES.EXE;* 160$ ENDIF 161$! 162$! Loop over modules 163$! 164$ NUMBER=0 165$COMPILE_LOOP: 166$ FILE=F$ELEMENT(NUMBER,",",SOURCES) 167$ IF FILE.EQS."," THEN GOTO END_COMPILE 168$ C_FILE=F$PARSE(FILE,".C",,,"SYNTAX_ONLY") 169$ C_FILE=F$SEARCH(C_FILE) 170$ IF C_FILE.EQS."" 171$ THEN 172$ WRITE SYS$OUTPUT "Source file "+FILE+" not found" 173$ GOTO EXIT 174$ ENDIF 175$ C_DATE=F$CVTIME(F$FILE_ATTRIBUTES(C_FILE,"RDT")) 176$ OBJ_FILE=F$PARSE("",".OBJ",C_FILE,,"SYNTAX_ONLY") 177$ OBJ_FILE=F$EXTRACT(0,F$LOCATE(";",OBJ_FILE),OBJ_FILE) 178$ FOUND_OBJ_FILE=F$SEARCH(OBJ_FILE) 179$ IF FOUND_OBJ_FILE.EQS."" 180$ THEN 181$ OBJ_DATE="" 182$ ELSE 183$ OBJ_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_OBJ_FILE,"CDT")) 184$ ENDIF 185$ IF OBJ_DATE.LTS.C_DATE 186$ THEN 187$ WRITE SYS$OUTPUT "Compiling "+FILE 188$ ON ERROR THEN CONTINUE 189$ C_COMPILE/OBJECT='OBJ_FILE' 'C_FILE' 190$ ON ERROR THEN GOTO EXIT 191$ LIBRARY 'LIBFILE' 'OBJ_FILE' 192$ 193$ ENDIF 194$ NUMBER=NUMBER+1 195$ GOTO COMPILE_LOOP 196$END_COMPILE: 197$ IF ARCH.EQS."ALPHA" 198$ THEN 199$ OPT_FILE="TIFFSHRAXP" 200$ ELSE 201$ OPT_FILE="TIFFSHRVAX" 202$ FILE="TIFFVEC" 203$ MAR_FILE=F$PARSE(FILE,".MAR",,,"SYNTAX_ONLY") 204$ MAR_FILE=F$SEARCH(MAR_FILE) 205$ MAR_FILE=F$SEARCH("TIFFVEC.MAR") 206$ MAR_DATE=F$CVTIME(F$FILE_ATTRIBUTES(MAR_FILE,"RDT")) 207$ OBJ_FILE=F$PARSE("",".OBJ",MAR_FILE,,"SYNTAX_ONLY") 208$ OBJ_FILE=F$EXTRACT(0,F$LOCATE(";",OBJ_FILE),OBJ_FILE) 209$ FOUND_OBJ_FILE=F$SEARCH(OBJ_FILE) 210$ IF FOUND_OBJ_FILE.EQS."" 211$ THEN 212$ OBJ_DATE="" 213$ ELSE 214$ OBJ_DATE=F$CVTIME(F$FILE_ATTRIBUTES(FOUND_OBJ_FILE,"CDT")) 215$ ENDIF 216$ IF OBJ_DATE.LTS.MAR_DATE 217$ THEN 218$ WRITE SYS$OUTPUT "Compiling "+FILE 219$ MACRO 'MAR_FILE' 220$ LIBRARY 'LIBFILE' 'OBJ_FILE' 221$ PURGE 'OBJ_FILE' 222$ ENDIF 223$ ENDIF 224$ WRITE SYS$OUTPUT "Creating shareable library" 225$ LINK/SHAREABLE='THIS_DIR'TIFFSHR'LINK_OPTIONS' 'OPT_FILE'/OPTIONS 226$ PURGE/LOG TIFFSHR.EXE 227$EXIT: 228$ SET DEFAULT 'CURRENT_DIR' 229$ EXIT 230