1$! make libpng under VMS 2$! 3$! 4$! Check for MMK/MMS 5$! 6$! This procedure accepts one parameter (contrib), which causes it to build 7$! the programs from the contrib directory instead of libpng. 8$! 9$ p1 = f$edit(p1,"UPCASE") 10$ if p1 .eqs. "CONTRIB" 11$ then 12$ set def [.contrib.gregbook] 13$ @makevms 14$ set def [-.pngminus] 15$ @makevms 16$ set def [--] 17$ exit 18$ endif 19$ Make = "" 20$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" 21$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" 22$! 23$! Look for the compiler used 24$! 25$ zlibsrc = "[-.zlib]" 26$ ccopt="/include=''zlibsrc'" 27$ if f$getsyi("HW_MODEL").ge.1024 28$ then 29$ ccopt = "/prefix=all"+ccopt 30$ comp = "__decc__=1" 31$ if f$trnlnm("SYS").eqs."" then define sys sys$library: 32$ else 33$ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" 34$ then 35$ if f$trnlnm("SYS").eqs."" then define sys sys$library: 36$ if f$search("SYS$SYSTEM:VAXC.EXE").eqs."" 37$ then 38$ comp = "__gcc__=1" 39$ CC :== GCC 40$ else 41$ comp = "__vaxc__=1" 42$ endif 43$ else 44$ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: 45$ ccopt = "/decc/prefix=all"+ccopt 46$ comp = "__decc__=1" 47$ endif 48$ endif 49$! 50$! Build the thing plain or with mms/mmk 51$! 52$ write sys$output "Compiling Libpng sources ..." 53$ if make.eqs."" 54$ then 55$ dele pngtest.obj;* 56$ CALL MAKE png.OBJ "cc ''CCOPT' png" - 57 png.c png.h pngconf.h 58$ CALL MAKE pngset.OBJ "cc ''CCOPT' pngset" - 59 pngset.c png.h pngconf.h 60$ CALL MAKE pngget.OBJ "cc ''CCOPT' pngget" - 61 pngget.c png.h pngconf.h 62$ CALL MAKE pngread.OBJ "cc ''CCOPT' pngread" - 63 pngread.c png.h pngconf.h 64$ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - 65 pngpread.c png.h pngconf.h 66$ CALL MAKE pngrtran.OBJ "cc ''CCOPT' pngrtran" - 67 pngrtran.c png.h pngconf.h 68$ CALL MAKE pngrutil.OBJ "cc ''CCOPT' pngrutil" - 69 pngrutil.c png.h pngconf.h 70$ CALL MAKE pngerror.OBJ "cc ''CCOPT' pngerror" - 71 pngerror.c png.h pngconf.h 72$ CALL MAKE pngmem.OBJ "cc ''CCOPT' pngmem" - 73 pngmem.c png.h pngconf.h 74$ CALL MAKE pngrio.OBJ "cc ''CCOPT' pngrio" - 75 pngrio.c png.h pngconf.h 76$ CALL MAKE pngwio.OBJ "cc ''CCOPT' pngwio" - 77 pngwio.c png.h pngconf.h 78$ CALL MAKE pngtrans.OBJ "cc ''CCOPT' pngtrans" - 79 pngtrans.c png.h pngconf.h 80$ CALL MAKE pngwrite.OBJ "cc ''CCOPT' pngwrite" - 81 pngwrite.c png.h pngconf.h 82$ CALL MAKE pngwtran.OBJ "cc ''CCOPT' pngwtran" - 83 pngwtran.c png.h pngconf.h 84$ CALL MAKE pngwutil.OBJ "cc ''CCOPT' pngwutil" - 85 pngwutil.c png.h pngconf.h 86$ write sys$output "Building Libpng ..." 87$ CALL MAKE libpng.OLB "lib/crea libpng.olb *.obj" *.OBJ 88$ write sys$output "Building pngtest..." 89$ CALL MAKE pngtest.OBJ "cc ''CCOPT' pngtest" - 90 pngtest.c png.h pngconf.h 91$ call make pngtest.exe - 92 "LINK pngtest,libpng.olb/lib,''zlibsrc'libz.olb/lib" - 93 pngtest.obj libpng.olb 94$ write sys$output "Testing Libpng..." 95$ run pngtest 96$ else 97$ if f$search("DESCRIP.MMS") .eqs. "" then copy/nolog [.SCRIPTS]DESCRIP.MMS [] 98$ 'make'/macro=('comp',zlibsrc='zlibsrc') 99$ endif 100$ write sys$output "Libpng build completed" 101$ exit 102$! 103$! 104$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES 105$ V = 'F$Verify(0) 106$! P1 = What we are trying to make 107$! P2 = Command to make it 108$! P3 - P8 What it depends on 109$ 110$ If F$Search(P1) .Eqs. "" Then Goto Makeit 111$ Time = F$CvTime(F$File(P1,"RDT")) 112$arg=3 113$Loop: 114$ Argument = P'arg 115$ If Argument .Eqs. "" Then Goto Exit 116$ El=0 117$Loop2: 118$ File = F$Element(El," ",Argument) 119$ If File .Eqs. " " Then Goto Endl 120$ AFile = "" 121$Loop3: 122$ OFile = AFile 123$ AFile = F$Search(File) 124$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl 125$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit 126$ Goto Loop3 127$NextEL: 128$ El = El + 1 129$ Goto Loop2 130$EndL: 131$ arg=arg+1 132$ If arg .Le. 8 Then Goto Loop 133$ Goto Exit 134$ 135$Makeit: 136$ VV=F$VERIFY(0) 137$ write sys$output P2 138$ 'P2 139$ VV='F$Verify(VV) 140$Exit: 141$ If V Then Set Verify 142$ENDSUBROUTINE 143