$!------------------------------------------------------------------------------ $! make "PNG: The Definitive Guide" demo programs (for X) under OpenVMS $! $! Script created by Martin Zinser for libpng; modified by Greg Roelofs $! for standalone pngbook source distribution. $! $! $! Set locations where zlib and libpng sources live. $! $ zpath = "" $ pngpath = "" $! $ if f$search("[---.zlib]zlib.h").nes."" then zpath = "[---.zlib]" $ if f$search("[--]png.h").nes."" then pngpath = "[--]" $! $ if f$search("[-.zlib]zlib.h").nes."" then zpath = "[-.zlib]" $ if f$search("[-.libpng]png.h").nes."" then pngpath = "[-.libpng]" $! $ if zpath .eqs. "" $ then $ write sys$output "zlib include not found. Exiting..." $ exit 2 $ endif $! $ if pngpath .eqs. "" $ then $ write sys$output "libpng include not found. Exiting..." $ exit 2 $ endif $! $! Look for the compiler used. $! $ ccopt="/include=(''zpath',''pngpath')" $ 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 $ open/write lopt lib.opt $ write lopt "''pngpath'libpng.olb/lib" $ write lopt "''zpath'libz.olb/lib" $ close lopt $ open/write xopt x11.opt $ write xopt "sys$library:decw$xlibshr.exe/share" $ close xopt $! $! Build 'em. $! $ write sys$output "Compiling PNG book programs ..." $ CALL MAKE readpng.OBJ "cc ''CCOPT' readpng" - readpng.c readpng.h $ CALL MAKE readpng2.OBJ "cc ''CCOPT' readpng2" - readpng2.c readpng2.h $ CALL MAKE writepng.OBJ "cc ''CCOPT' writepng" - writepng.c writepng.h $ write sys$output "Building rpng-x..." $ CALL MAKE rpng-x.OBJ "cc ''CCOPT' rpng-x" - rpng-x.c readpng.h $ call make rpng-x.exe - "LINK rpng-x,readpng,lib.opt/opt,x11.opt/opt" - rpng-x.obj readpng.obj $ write sys$output "Building rpng2-x..." $ CALL MAKE rpng2-x.OBJ "cc ''CCOPT' rpng2-x" - rpng2-x.c readpng2.h $ call make rpng2-x.exe - "LINK rpng2-x,readpng2,lib.opt/opt,x11.opt/opt" - rpng2-x.obj readpng2.obj $ write sys$output "Building wpng..." $ CALL MAKE wpng.OBJ "cc ''CCOPT' wpng" - wpng.c writepng.h $ call make wpng.exe - "LINK wpng,writepng,lib.opt/opt" - wpng.obj writepng.obj $ 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