source: trunk/src/3rdparty/zlib/make_vms.com@ 1126

Last change on this file since 1126 was 2, checked in by Dmitry A. Kuminov, 17 years ago

Initially imported qt-all-opensource-src-4.5.1 from Trolltech.

File size: 12.9 KB
Line 
1$! make libz under VMS written by
2$! Martin P.J. Zinser
3$! <[email protected] or [email protected]>
4$!
5$ on error then goto err_exit
6$!
7$!
8$! Just some general constants...
9$!
10$ true = 1
11$ false = 0
12$ tmpnam = "temp_" + f$getjpi("","pid")
13$ SAY = "WRITE SYS$OUTPUT"
14$!
15$! Setup variables holding "config" information
16$!
17$ Make = ""
18$ name = "Zlib"
19$ version = "?.?.?"
20$ v_string = "ZLIB_VERSION"
21$ v_file = "zlib.h"
22$ ccopt = ""
23$ lopts = ""
24$ linkonly = false
25$ optfile = name + ".opt"
26$ its_decc = false
27$ its_vaxc = false
28$ its_gnuc = false
29$ axp = f$getsyi("HW_MODEL").ge.1024
30$ s_case = false
31$! Check for MMK/MMS
32$!
33$ If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS"
34$ If F$Type (MMK) .eqs. "STRING" Then Make = "MMK"
35$!
36$!
37$ gosub find_version
38$!
39$ gosub check_opts
40$!
41$! Look for the compiler used
42$!
43$ gosub check_compiler
44$ if its_decc
45$ then
46$ ccopt = "/prefix=all" + ccopt
47$ if f$trnlnm("SYS") .eqs. ""
48$ then
49$ if axp
50$ then
51$ define sys sys$library:
52$ else
53$ ccopt = "/decc" + ccopt
54$ define sys decc$library_include:
55$ endif
56$ endif
57$ endif
58$ if its_vaxc .or. its_gnuc
59$ then
60$ if f$trnlnm("SYS").eqs."" then define sys sys$library:
61$ endif
62$!
63$! Build the thing plain or with mms
64$!
65$ write sys$output "Compiling Zlib sources ..."
66$ if make.eqs.""
67$ then
68$ dele example.obj;*,minigzip.obj;*
69$ CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" -
70 adler32.c zlib.h zconf.h
71$ CALL MAKE compress.OBJ "CC ''CCOPT' compress" -
72 compress.c zlib.h zconf.h
73$ CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" -
74 crc32.c zlib.h zconf.h
75$ CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" -
76 deflate.c deflate.h zutil.h zlib.h zconf.h
77$ CALL MAKE gzio.OBJ "CC ''CCOPT' gzio" -
78 gzio.c zutil.h zlib.h zconf.h
79$ CALL MAKE infback.OBJ "CC ''CCOPT' infback" -
80 infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h
81$ CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" -
82 inffast.c zutil.h zlib.h zconf.h inffast.h
83$ CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" -
84 inflate.c zutil.h zlib.h zconf.h infblock.h
85$ CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" -
86 inftrees.c zutil.h zlib.h zconf.h inftrees.h
87$ CALL MAKE trees.OBJ "CC ''CCOPT' trees" -
88 trees.c deflate.h zutil.h zlib.h zconf.h
89$ CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" -
90 uncompr.c zlib.h zconf.h
91$ CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" -
92 zutil.c zutil.h zlib.h zconf.h
93$ write sys$output "Building Zlib ..."
94$ CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ
95$ write sys$output "Building example..."
96$ CALL MAKE example.OBJ "CC ''CCOPT' example" -
97 example.c zlib.h zconf.h
98$ call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb
99$ if f$search("x11vms:xvmsutils.olb") .nes. ""
100$ then
101$ write sys$output "Building minigzip..."
102$ CALL MAKE minigzip.OBJ "CC ''CCOPT' minigzip" -
103 minigzip.c zlib.h zconf.h
104$ call make minigzip.exe -
105 "LINK minigzip,libz.olb/lib,x11vms:xvmsutils.olb/lib" -
106 minigzip.obj libz.olb
107$ endif
108$ else
109$ gosub crea_mms
110$ SAY "Make ''name' ''version' with ''Make' "
111$ 'make'
112$ endif
113$!
114$! Alpha gets a shareable image
115$!
116$ If axp
117$ Then
118$ gosub crea_olist
119$ write sys$output "Creating libzshr.exe"
120$ call anal_obj_axp modules.opt _link.opt
121$ if s_case
122$ then
123$ open/append optf modules.opt
124$ write optf "case_sensitive=YES"
125$ close optf
126$ endif
127$ LINK_'lopts'/SHARE=libzshr.exe modules.opt/opt,_link.opt/opt
128$ endif
129$ write sys$output "Zlib build completed"
130$ exit
131$CC_ERR:
132$ write sys$output "C compiler required to build ''name'"
133$ goto err_exit
134$ERR_EXIT:
135$ set message/facil/ident/sever/text
136$ write sys$output "Exiting..."
137$ exit 2
138$!
139$!
140$MAKE: SUBROUTINE !SUBROUTINE TO CHECK DEPENDENCIES
141$ V = 'F$Verify(0)
142$! P1 = What we are trying to make
143$! P2 = Command to make it
144$! P3 - P8 What it depends on
145$
146$ If F$Search(P1) .Eqs. "" Then Goto Makeit
147$ Time = F$CvTime(F$File(P1,"RDT"))
148$arg=3
149$Loop:
150$ Argument = P'arg
151$ If Argument .Eqs. "" Then Goto Exit
152$ El=0
153$Loop2:
154$ File = F$Element(El," ",Argument)
155$ If File .Eqs. " " Then Goto Endl
156$ AFile = ""
157$Loop3:
158$ OFile = AFile
159$ AFile = F$Search(File)
160$ If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl
161$ If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit
162$ Goto Loop3
163$NextEL:
164$ El = El + 1
165$ Goto Loop2
166$EndL:
167$ arg=arg+1
168$ If arg .Le. 8 Then Goto Loop
169$ Goto Exit
170$
171$Makeit:
172$ VV=F$VERIFY(0)
173$ write sys$output P2
174$ 'P2
175$ VV='F$Verify(VV)
176$Exit:
177$ If V Then Set Verify
178$ENDSUBROUTINE
179$!------------------------------------------------------------------------------
180$!
181$! Check command line options and set symbols accordingly
182$!
183$ CHECK_OPTS:
184$ i = 1
185$ OPT_LOOP:
186$ if i .lt. 9
187$ then
188$ cparm = f$edit(p'i',"upcase")
189$ if cparm .eqs. "DEBUG"
190$ then
191$ ccopt = ccopt + "/noopt/deb"
192$ lopts = lopts + "/deb"
193$ endif
194$ if f$locate("CCOPT=",cparm) .lt. f$length(cparm)
195$ then
196$ start = f$locate("=",cparm) + 1
197$ len = f$length(cparm) - start
198$ ccopt = ccopt + f$extract(start,len,cparm)
199$ if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) -
200 then s_case = true
201$ endif
202$ if cparm .eqs. "LINK" then linkonly = true
203$ if f$locate("LOPTS=",cparm) .lt. f$length(cparm)
204$ then
205$ start = f$locate("=",cparm) + 1
206$ len = f$length(cparm) - start
207$ lopts = lopts + f$extract(start,len,cparm)
208$ endif
209$ if f$locate("CC=",cparm) .lt. f$length(cparm)
210$ then
211$ start = f$locate("=",cparm) + 1
212$ len = f$length(cparm) - start
213$ cc_com = f$extract(start,len,cparm)
214 if (cc_com .nes. "DECC") .and. -
215 (cc_com .nes. "VAXC") .and. -
216 (cc_com .nes. "GNUC")
217$ then
218$ write sys$output "Unsupported compiler choice ''cc_com' ignored"
219$ write sys$output "Use DECC, VAXC, or GNUC instead"
220$ else
221$ if cc_com .eqs. "DECC" then its_decc = true
222$ if cc_com .eqs. "VAXC" then its_vaxc = true
223$ if cc_com .eqs. "GNUC" then its_gnuc = true
224$ endif
225$ endif
226$ if f$locate("MAKE=",cparm) .lt. f$length(cparm)
227$ then
228$ start = f$locate("=",cparm) + 1
229$ len = f$length(cparm) - start
230$ mmks = f$extract(start,len,cparm)