VirtualBox

source: vbox/trunk/src/libs/libxslt-1.1.22/vms/build_xslt.com@ 33944

Last change on this file since 33944 was 7296, checked in by vboxsync, 17 years ago

Added libxslt-1.1.22 sources.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Date Revision Author Id
File size: 9.4 KB
Line 
1$! BUILD_XSLT.COM
2$!
3$! Build the XSLT library
4$!
5$! Arguments:
6$!
7$! p1 - "DEBUG" is you want to build with debug
8$!
9$! This package requires libxml to have already been installed. You need
10$! to ensure that the logical name LIBXML is defined and points to the
11$! directory containing libxml's .h files
12$!
13$! This procedure creates the object libraries
14$!
15$! XML_LIBDIR:LIBXSLT.OLB
16$! XML_LIBDIR:LIBEXSLT.OLB
17$!
18$! and the program
19$!
20$! XSLTPROC
21$!
22$! After the library is built, you can link these routines into
23$! your code with the command
24$!
25$! LINK your_modules,XML_LIBDIR:LIBEXSLT/LIB,LIBXSLT/LIBRARY,LIBXML/LIB
26$!
27$! Change History
28$! --------------
29$! Command file author : John A Fotheringham ([email protected])
30$! Last update : 2 Nov 2001
31$!
32$!- configuration -------------------------------------------------------------
33$!
34$!- compile command.
35$!
36$ cc_opts = "/INCLUDE=([],XML_SRCDIR:,[-.libxslt])/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS"
37$!
38$ if p1.eqs."DEBUG"
39$ then
40$ debug = "Y"
41$ cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL"
42$ else
43$ debug = "N"
44$ cc_command = "CC''cc_opts'"
45$ endif
46$!
47$!- configure multiple build passes for each library. -------------------------
48$!
49$! For each pass:
50$!
51$! "libname" is the name of the library or module being created
52$!
53$! "progname" is the name of the program being created
54$!
55$! "src" is the list of sources to be built into the library or program
56$! - This should be compared to the definition of
57$! "<NAME>_la_SOURCES" in the MAKEFILE.IN file in
58$! corresponding directory.
59$!
60$ num_passes = 3 ! two libraries and a program
61$!
62$!- pass 1 - library LIBXSLT
63$!
64$ libname_1 = "LIBXSLT"
65$ h_file_1 = "xslt.h"
66$ progname_1 = ""
67$!
68$ ! see "libxslt_la_SOURCES" in [.libxslt]makefile.in
69$ src_1 = "xslt.c xsltutils.c pattern.c templates.c variables.c keys.c"
70$ src_1 = src_1 + " numbers.c extensions.c extra.c functions.c"
71$ src_1 = src_1 + " namespaces.c imports.c attributes.c documents.c"
72$ src_1 = src_1 + " preproc.c transform.c security.c"
73$!
74$!- pass 2 - library LIBEXSLT
75$!
76$ libname_2 = "LIBEXSLT"
77$ h_file_2 = "exslt.h"
78$ progname_2 = ""
79$!
80$ ! see "libexslt_la_SOURCES" in [.libexslt]makefile.in
81$ src_2 = "exslt.c common.c math.c sets.c functions.c strings.c date.c saxon.c dynamic.c"
82$!
83$!- pass 3 - program XSLTPROC
84$!
85$ libname_3 = ""
86$ h_file_3 = ""
87$ progname_3 = "XSLTPROC"
88$!
89$ ! see "xsltproc_SOURCES" in [.xsltproc]makefile.in
90$ src_3 = "xsltproc.c"
91$!
92$!- set up and check logicals -----------------------------------------------
93$!
94$! XML_LIBDIR - object library directory
95$! XML_SRCDIR - top-level build directory of libxml package -- needed for config.h and trio.h
96$! LIBXML - source directory containing .h files for libxml package
97$!
98$ if f$trnlnm("XML_LIBDIR").eqs.""
99$ then
100$ on error then continue
101$ globfile = f$search("[--...]libxml.olb")
102$ if globfile.eqs.""
103$ then
104$ write sys$output ""
105$ write sys$output " You need to define the XML_LIBDIR logical name to"
106$ write sys$output " point to the directory containing your object"
107$ write sys$output " libraries. This should already contain LIBXML.OLB"
108$ write sys$output " from the libxml package, and will be the directory"
109$ write sys$output " the new LIBXSLT.OLB library will be placed in"
110$ write sys$output ""
111$ exit
112$ else
113$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
114$ define/process XML_LIBDIR "''srcdir'"
115$ write sys$output "Defining XML_LIBDIR as ""''srcdir'"""
116$ endif
117$ endif
118$!
119$ if f$trnlnm("libxml").eqs.""
120$ then
121$ ! look for globals.h in a directory installed paralle to this one
122$ on error then continue
123$ globfile = f$search("[--...]globals.h")
124$ if globfile.eqs.""
125$ then
126$ write sys$output ""
127$ write sys$output " You need to define a LIBXML logical directory to"
128$ write sys$output " point to the directory containing the .h files"
129$ write sys$output " for the libxml package"
130$ write sys$output ""
131$ exit
132$ else
133$ srcdir = f$element(0,"]",globfile)+ "]"
134$ define/process LIBXML "''srcdir'"
135$ write sys$output "Defining LIBXML as ""''srcdir'"""
136$ endif
137$ endif
138$!
139$ if f$trnlnm("XML_SRCDIR").eqs.""
140$ then
141$ globfile = f$search("[--...]globals.c")
142$ if globfile.eqs.""
143$ then
144$ write sys$output "Can't locate globals.c. You need to manually define a XML_SRCDIR logical"
145$ exit
146$ else
147$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
148$ define/process XML_SRCDIR "''srcdir'"
149$ write sys$output "Defining XML_SRCDIR as ""''srcdir'"""
150$ endif
151$ endif
152$!
153$!- set up some working logicals -------------------
154$!
155$ pass_no = 1
156$ set_pass_logical:
157$!
158$ if pass_no.le.num_passes
159$ then
160$!
161$ Libname = libname_'pass_no'
162$ progname = progname_'pass_no'
163$ if libname.nes.""
164$ then
165$ logname = "''libname'_SRCDIR"
166$ else
167$ logname = "''progname'_SRCDIR"
168$ endif
169$ findfile = f$element(0," ",src_'pass_no')
170$!
171$!--- set up a source directory logical
172$!
173$ if f$trnlnm("''logname'").eqs.""
174$ then
175$ ! look for the target file in a parallel subdirectory
176$ globfile = f$search("[-...]''findfile'")
177$ if globfile.eqs.""
178$ then
179$ write sys$output "Can't locate ''findfile'. You need to manually define a ''logname' logical"
180$ exit
181$ else
182$ srcdir = f$element(0,"]",globfile)+ "]"
183$ define/process 'logname' "''srcdir'"
184$ write sys$output "Defining ''logname' as ""''srcdir'"""
185$ endif
186$ endif
187$!
188$!--- if it's a library, set up a logical pointing to the .h files
189$!
190$ if libname.nes.""
191$ then
192$ if f$trnlnm("''libname'").eqs.""
193$ then
194$ ! look for the target .h file in a parallel subdirectory
195$ h_file = h_file_'pass_no'
196$ globfile = f$search("[-...]''h_file'")
197$ if globfile.eqs.""
198$ then
199$ write sys$output "Can't locate ''h_file'. You need to manually define a ''libname' logical"
200$ exit
201$ else
202$ includedir = f$element(0,"]",globfile)+ "]"
203$ define/process 'libname' "''includedir'"
204$ write sys$output "Defining ''libname' as ""''includedir'"""
205$ endif
206$ endif
207$ endif
208$!
209$ pass_no = pass_no +1
210$ goto set_pass_logical
211$!
212$ endif ! for each pass
213$!
214$!- set up error handling (such as it is) -------------------------------------
215$!
216$ exit_status = 1
217$ saved_default = f$environment("default")
218$ on error then goto ERROR_OUT
219$ on control_y then goto ERROR_OUT
220$!
221$ goto start_here
222$ start_here: ! move this line to debug/rerun parts of this command file
223$!
224$!- compile modules into the library ------------------------------------------
225$!
226$!
227$ pass_no = 1 ! make three passes, one for each library, one for XSLTPROC
228$ pass_loop:
229$!
230$ if pass_no.le.num_passes
231$ then
232$ Libname = libname_'pass_no'
233$ progname = progname_'pass_no'
234$ if libname.nes.""
235$ then
236$ logname = "''libname'_SRCDIR"
237$ pass_description = "the XML_LIBDIR:''libname'.OLB object library"
238$ else
239$ logname = "''progname'_SRCDIR"
240$ pass_description = "the programs in ''progname'"
241$ endif
242$ src = src_'pass_no'
243$!
244$!- create the library if need
245$!
246$ if libname.nes.""
247$ then
248$ if f$search("XML_LIBDIR:''libname'.OLB").eqs.""
249$ then
250$ write sys$output "Creating new object library XML_LIBDIR:''libname'.OLB..."
251$ library/create XML_LIBDIR:'libname'.OLB
252$ endif
253$ endif
254$!
255$!- move to the source directory
256$!
257$ set def 'logname'
258$!
259$!- define the library and link commands (link command not used as is)
260$!
261$ if libname.nes.""
262$ then
263$ lib_command = "LIBRARY/REPLACE XML_LIBDIR:''libname'.OLB"
264$ link_command = ""
265$ else
266$ lib_command = ""
267$ link_command = "LINK"
268$ endif
269$!
270$ write sys$output ""
271$ write sys$output "Building ''pass_description'
272$ write sys$output ""
273$!
274$ s_no = 0
275$ src = f$edit(src,"COMPRESS")
276$!
277$ source_loop:
278$!
279$ next_source = f$element (S_no," ",src)
280$ if next_source.nes."" .and. next_source.nes." "
281$ then
282$ call build 'next_source'
283$ s_no = s_no + 1
284$ goto source_loop
285$ endif
286$!
287$ pass_no = pass_no + 1
288$ goto pass_loop
289$!
290$ endif ! for each pass
291$!
292$!- Th-th-th-th-th-that's all folks! ------------------------------------------
293$!
294$EXIT_OUT:
295$!
296$ set def 'saved_default
297$ exit 'exit_status
298$!
299$
300$ERROR_OUT:
301$ exit_status = $status
302$ write sys$output "''f$message(exit_status)'"
303$ goto EXIT_OUT
304$!
305
306$!- the BUILD subroutine. Compile then insert into library or link as required
307$!
308$BUILD: subroutine
309$ on warning then goto EXIT_BUILD
310$ source_file = p1
311$ name = f$element(0,".",source_file)
312$ object_file = f$fao("XML_LIBDIR:!AS.OBJ",name)
313$!
314$!- compile
315$ write sys$output "Compiling ",p1,p2,"..."
316$ cc_command /object='object_file 'source_file' 'p2'
317$!
318$!- insert into library if command defined
319$!
320$ if lib_command.nes.""
321$ then
322$ lib_command 'object_file'
323$ delete/nolog 'object_file';*
324$ endif
325$!
326$!- link module if command defined
327$!
328$ if link_command.nes.""
329$ then
330$ text = f$element(0,".",p1) ! lose the ".c"
331$ write sys$output "Linking ",text,"..."
332$ dbgopts = ""
333$ if debug then dbgopts = "/DEBUG"
334$ link_command'dbgopts' 'object_file',-
335 XML_LIBDIR:libexslt/lib,-
336 XML_LIBDIR:libxslt/lib,-
337 XML_LIBDIR:libxml/library
338$ endif
339$!
340$EXIT_BUILD:
341$ exit $status
342$!
343$endsubroutine
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette