makevms.com
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:4k
源码类别:

界面编程

开发平台:

Visual C++

  1. $!------------------------------------------------------------------------------
  2. $! make "PNG: The Definitive Guide" demo programs (for X) under OpenVMS
  3. $!
  4. $! Script created by Martin Zinser for libpng; modified by Greg Roelofs
  5. $! for standalone pngbook source distribution.
  6. $!
  7. $!
  8. $!    Set locations where zlib and libpng sources live.
  9. $!
  10. $ zpath   = ""
  11. $ pngpath = ""
  12. $!
  13. $ if f$search("[---.zlib]zlib.h").nes."" then zpath = "[---.zlib]"
  14. $ if f$search("[--]png.h").nes."" then pngpath = "[--]"
  15. $!
  16. $ if f$search("[-.zlib]zlib.h").nes."" then zpath = "[-.zlib]"
  17. $ if f$search("[-.libpng]png.h").nes."" then pngpath = "[-.libpng]"
  18. $!
  19. $ if zpath .eqs. ""
  20. $ then
  21. $   write sys$output "zlib include not found. Exiting..."
  22. $   exit 2
  23. $ endif 
  24. $!
  25. $ if pngpath .eqs. ""
  26. $ then
  27. $   write sys$output "libpng include not found. Exiting..."
  28. $   exit 2
  29. $ endif 
  30. $!
  31. $!    Look for the compiler used.
  32. $!
  33. $ ccopt="/include=(''zpath',''pngpath')"
  34. $ if f$getsyi("HW_MODEL").ge.1024
  35. $ then
  36. $  ccopt = "/prefix=all"+ccopt
  37. $  comp  = "__decc__=1"
  38. $  if f$trnlnm("SYS").eqs."" then define sys sys$library:
  39. $ else
  40. $  if f$search("SYS$SYSTEM:DECC$COMPILER.EXE").eqs.""
  41. $   then
  42. $    if f$trnlnm("SYS").eqs."" then define sys sys$library:
  43. $    if f$search("SYS$SYSTEM:VAXC.EXE").eqs.""
  44. $     then
  45. $      comp  = "__gcc__=1"
  46. $      CC :== GCC
  47. $     else
  48. $      comp = "__vaxc__=1"
  49. $     endif
  50. $   else
  51. $    if f$trnlnm("SYS").eqs."" then define sys decc$library_include:
  52. $    ccopt = "/decc/prefix=all"+ccopt
  53. $    comp  = "__decc__=1"
  54. $  endif
  55. $ endif
  56. $ open/write lopt lib.opt
  57. $ write lopt "''pngpath'libpng.olb/lib"
  58. $ write lopt "''zpath'libz.olb/lib"
  59. $ close lopt
  60. $ open/write xopt x11.opt
  61. $ write xopt "sys$library:decw$xlibshr.exe/share"
  62. $ close xopt
  63. $!
  64. $!    Build 'em.
  65. $!
  66. $ write sys$output "Compiling PNG book programs ..."
  67. $   CALL MAKE readpng.OBJ "cc ''CCOPT' readpng" -
  68. readpng.c readpng.h
  69. $   CALL MAKE readpng2.OBJ "cc ''CCOPT' readpng2" -
  70. readpng2.c readpng2.h
  71. $   CALL MAKE writepng.OBJ "cc ''CCOPT' writepng" -
  72. writepng.c writepng.h
  73. $   write sys$output "Building rpng-x..."
  74. $   CALL MAKE rpng-x.OBJ "cc ''CCOPT' rpng-x" -
  75. rpng-x.c readpng.h
  76. $   call make rpng-x.exe -
  77. "LINK rpng-x,readpng,lib.opt/opt,x11.opt/opt" -
  78. rpng-x.obj readpng.obj
  79. $   write sys$output "Building rpng2-x..."
  80. $   CALL MAKE rpng2-x.OBJ "cc ''CCOPT' rpng2-x" -
  81. rpng2-x.c readpng2.h
  82. $   call make rpng2-x.exe -
  83. "LINK rpng2-x,readpng2,lib.opt/opt,x11.opt/opt" -
  84. rpng2-x.obj readpng2.obj
  85. $   write sys$output "Building wpng..."
  86. $   CALL MAKE wpng.OBJ "cc ''CCOPT' wpng" -
  87. wpng.c writepng.h
  88. $   call make wpng.exe -
  89. "LINK wpng,writepng,lib.opt/opt" -
  90. wpng.obj writepng.obj
  91. $ exit
  92. $!
  93. $!
  94. $MAKE: SUBROUTINE   !SUBROUTINE TO CHECK DEPENDENCIES
  95. $ V = 'F$Verify(0)
  96. $! P1 = What we are trying to make
  97. $! P2 = Command to make it
  98. $! P3 - P8  What it depends on
  99. $
  100. $ If F$Search(P1) .Eqs. "" Then Goto Makeit
  101. $ Time = F$CvTime(F$File(P1,"RDT"))
  102. $arg=3
  103. $Loop:
  104. $       Argument = P'arg
  105. $       If Argument .Eqs. "" Then Goto Exit
  106. $       El=0
  107. $Loop2:
  108. $       File = F$Element(El," ",Argument)
  109. $       If File .Eqs. " " Then Goto Endl
  110. $       AFile = ""
  111. $Loop3:
  112. $       OFile = AFile
  113. $       AFile = F$Search(File)
  114. $       If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl
  115. $       If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit
  116. $       Goto Loop3
  117. $NextEL:
  118. $       El = El + 1
  119. $       Goto Loop2
  120. $EndL:
  121. $ arg=arg+1
  122. $ If arg .Le. 8 Then Goto Loop
  123. $ Goto Exit
  124. $
  125. $Makeit:
  126. $ VV=F$VERIFY(0)
  127. $ write sys$output P2
  128. $ 'P2
  129. $ VV='F$Verify(VV)
  130. $Exit:
  131. $ If V Then Set Verify
  132. $ENDSUBROUTINE