makevms.com 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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