- $! 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