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