makevms.com
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:4k
- $!------------------------------------------------------------------------------
- $! 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