| $! make libpng under VMS |
| $! |
| $! |
| $! Check for MMK/MMS |
| $! |
| $! This procedure accepts one parameter (contrib), which causes it to build |
| $! the programs from the contrib directory instead of libpng. |
| $! |
| $ p1 = f$edit(p1,"UPCASE") |
| $ if p1 .eqs. "CONTRIB" |
| $ then |
| $ set def [.contrib.gregbook] |
| $ @makevms |
| $ set def [-.pngminus] |
| $ @makevms |
| $ set def [--] |
| $ exit |
| $ endif |
| $ Make = "" |
| $ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" |
| $ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" |
| $! |
| $! Look for the compiler used |
| $! |
| $ zlibsrc = "[-.zlib]" |
| $ ccopt="/include=''zlibsrc'" |
| $ if f$getsyi("HW_MODEL").ge.1024 |
| $ then |
| $ ccopt = "/prefix=all"+ccopt |
| $ comp = "__decc__=1" |
| $ if f$trnlnm("SYS").eqs."" then define sys sys$library: |
| $ else |
| $ if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs."" |
| $ then |
| $ if f$trnlnm("SYS").eqs."" then define sys sys$library: |
| $ if f$search("SYS$SYSTEM:VAXC.EXE").eqs."" |
| $ then |
| $ comp = "__gcc__=1" |
| $ CC :== GCC |
| $ else |
| $ comp = "__vaxc__=1" |
| $ endif |
| $ else |
| $ if f$trnlnm("SYS").eqs."" then define sys decc$library_include: |
| $ ccopt = "/decc/prefix=all"+ccopt |
| $ comp = "__decc__=1" |
| $ endif |
| $ endif |
| $! |
| $! Build the thing plain or with mms/mmk |
| $! |
| $ write sys$output "Compiling Libpng sources ..." |
| $ if make.eqs."" |
| $ then |
| $ dele pngtest.obj;* |
| $ CALL MAKE png.OBJ "cc ''CCOPT' png" - |
| png.c png.h pngconf.h |
| $ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - |
| pngpread.c png.h pngconf.h |
| $ CALL MAKE pngset.OBJ "cc ''CCOPT' pngset" - |
| pngset.c png.h pngconf.h |
| $ CALL MAKE pngget.OBJ "cc ''CCOPT' pngget" - |
| pngget.c png.h pngconf.h |
| $ CALL MAKE pngread.OBJ "cc ''CCOPT' pngread" - |
| pngread.c png.h pngconf.h |
| $ CALL MAKE pngpread.OBJ "cc ''CCOPT' pngpread" - |
| pngpread.c png.h pngconf.h |
| $ CALL MAKE pngrtran.OBJ "cc ''CCOPT' pngrtran" - |
| pngrtran.c png.h pngconf.h |
| $ CALL MAKE pngrutil.OBJ "cc ''CCOPT' pngrutil" - |
| pngrutil.c png.h pngconf.h |
| $ CALL MAKE pngerror.OBJ "cc ''CCOPT' pngerror" - |
| pngerror.c png.h pngconf.h |
| $ CALL MAKE pngmem.OBJ "cc ''CCOPT' pngmem" - |
| pngmem.c png.h pngconf.h |
| $ CALL MAKE pngrio.OBJ "cc ''CCOPT' pngrio" - |
| pngrio.c png.h pngconf.h |
| $ CALL MAKE pngwio.OBJ "cc ''CCOPT' pngwio" - |
| pngwio.c png.h pngconf.h |
| $ CALL MAKE pngtrans.OBJ "cc ''CCOPT' pngtrans" - |
| pngtrans.c png.h pngconf.h |
| $ CALL MAKE pngwrite.OBJ "cc ''CCOPT' pngwrite" - |
| pngwrite.c png.h pngconf.h |
| $ CALL MAKE pngwtran.OBJ "cc ''CCOPT' pngwtran" - |
| pngwtran.c png.h pngconf.h |
| $ CALL MAKE pngwutil.OBJ "cc ''CCOPT' pngwutil" - |
| pngwutil.c png.h pngconf.h |
| $ write sys$output "Building Libpng ..." |
| $ CALL MAKE libpng.OLB "lib/crea libpng.olb *.obj" *.OBJ |
| $ write sys$output "Building pngtest..." |
| $ CALL MAKE pngtest.OBJ "cc ''CCOPT' pngtest" - |
| pngtest.c png.h pngconf.h |
| $ call make pngtest.exe - |
| "LINK pngtest,libpng.olb/lib,''zlibsrc'libz.olb/lib" - |
| pngtest.obj libpng.olb |
| $ write sys$output "Testing Libpng..." |
| $ run pngtest |
| $ else |
| $ if f$search("DESCRIP.MMS") .eqs. "" then copy/nolog [.SCRIPTS]DESCRIP.MMS [] |
| $ 'make'/macro=('comp',zlibsrc='zlibsrc') |
| $ endif |
| $ write sys$output "Libpng build completed" |
| $ exit |
| $! |
| $! |
| $MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES |
| $ V = 'F$Verify(0) |
| $! P1 = What we are trying to make |
| $! P2 = Command to make it |
| $! P3 - P8 What it depends on |
| $ |
| $ If F$Search(P1) .Eqs. "" Then Goto Makeit |
| $ Time = F$CvTime(F$File(P1,"RDT")) |
| $arg=3 |
| $Loop: |
| $ Argument = P'arg |
| $ If Argument .Eqs. "" Then Goto Exit |
| $ El=0 |
| $Loop2: |
| $ File = F$Element(El," ",Argument) |
| $ If File .Eqs. " " Then Goto Endl |
| $ AFile = "" |
| $Loop3: |
| $ OFile = AFile |
| $ AFile = F$Search(File) |
| $ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl |
| $ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit |
| $ Goto Loop3 |
| $NextEL: |
| $ El = El + 1 |
| $ Goto Loop2 |
| $EndL: |
| $ arg=arg+1 |
| $ If arg .Le. 8 Then Goto Loop |
| $ Goto Exit |
| $ |
| $Makeit: |
| $ VV=F$VERIFY(0) |
| $ write sys$output P2 |
| $ 'P2 |
| $ VV='F$Verify(VV) |
| $Exit: |
| $ If V Then Set Verify |
| $ENDSUBROUTINE |