Index: third_party/libxslt/vms/build_xslt.com |
diff --git a/third_party/libxslt/vms/build_xslt.com b/third_party/libxslt/vms/build_xslt.com |
new file mode 100644 |
index 0000000000000000000000000000000000000000..89371f01a02db9521ea61516e6f36327b854fdd1 |
--- /dev/null |
+++ b/third_party/libxslt/vms/build_xslt.com |
@@ -0,0 +1,342 @@ |
+$! BUILD_XSLT.COM |
+$! |
+$! Build the XSLT library |
+$! |
+$! Arguments: |
+$! |
+$! p1 - "DEBUG" is you want to build with debug |
+$! |
+$! This package requires libxml to have already been installed. You need |
+$! to ensure that the logical name LIBXML is defined and points to the |
+$! directory containing libxml's .h files |
+$! |
+$! This procedure creates the object libraries |
+$! |
+$! XML_LIBDIR:LIBXSLT.OLB |
+$! XML_LIBDIR:LIBEXSLT.OLB |
+$! |
+$! and the program |
+$! |
+$! XSLTPROC |
+$! |
+$! After the library is built, you can link these routines into |
+$! your code with the command |
+$! |
+$! LINK your_modules,XML_LIBDIR:LIBEXSLT/LIB,LIBXSLT/LIBRARY,LIBXML/LIB |
+$! |
+$! Change History |
+$! -------------- |
+$! Command file author : John A Fotheringham (jaf@jafsoft.com) |
+$! Last update : 2 Nov 2001 |
+$! |
+$!- configuration ------------------------------------------------------------- |
+$! |
+$!- compile command. |
+$! |
+$ cc_opts = "/INCLUDE=([],XML_SRCDIR:,[-.libxslt])/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" |
+$! |
+$ if p1.eqs."DEBUG" |
+$ then |
+$ debug = "Y" |
+$ cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" |
+$ else |
+$ debug = "N" |
+$ cc_command = "CC''cc_opts'" |
+$ endif |
+$! |
+$!- configure multiple build passes for each library. ------------------------- |
+$! |
+$! For each pass: |
+$! |
+$! "libname" is the name of the library or module being created |
+$! |
+$! "progname" is the name of the program being created |
+$! |
+$! "src" is the list of sources to be built into the library or program |
+$! - This should be compared to the definition of |
+$! "<NAME>_la_SOURCES" in the MAKEFILE.IN file in |
+$! corresponding directory. |
+$! |
+$ num_passes = 3 ! two libraries and a program |
+$! |
+$!- pass 1 - library LIBXSLT |
+$! |
+$ libname_1 = "LIBXSLT" |
+$ h_file_1 = "xslt.h" |
+$ progname_1 = "" |
+$! |
+$ ! see "libxslt_la_SOURCES" in [.libxslt]makefile.in |
+$ src_1 = "xslt.c xsltutils.c pattern.c templates.c variables.c keys.c" |
+$ src_1 = src_1 + " numbers.c extensions.c extra.c functions.c" |
+$ src_1 = src_1 + " namespaces.c imports.c attributes.c documents.c" |
+$ src_1 = src_1 + " preproc.c transform.c security.c" |
+$! |
+$!- pass 2 - library LIBEXSLT |
+$! |
+$ libname_2 = "LIBEXSLT" |
+$ h_file_2 = "exslt.h" |
+$ progname_2 = "" |
+$! |
+$ ! see "libexslt_la_SOURCES" in [.libexslt]makefile.in |
+$ src_2 = "exslt.c common.c math.c sets.c functions.c strings.c date.c saxon.c dynamic.c" |
+$! |
+$!- pass 3 - program XSLTPROC |
+$! |
+$ libname_3 = "" |
+$ h_file_3 = "" |
+$ progname_3 = "XSLTPROC" |
+$! |
+$ ! see "xsltproc_SOURCES" in [.xsltproc]makefile.in |
+$ src_3 = "xsltproc.c" |
+$! |
+$!- set up and check logicals ----------------------------------------------- |
+$! |
+$! XML_LIBDIR - object library directory |
+$! XML_SRCDIR - top-level build directory of libxml package -- needed for config.h and trio.h |
+$! LIBXML - source directory containing .h files for libxml package |
+$! |
+$ if f$trnlnm("XML_LIBDIR").eqs."" |
+$ then |
+$ on error then continue |
+$ globfile = f$search("[--...]libxml.olb") |
+$ if globfile.eqs."" |
+$ then |
+$ write sys$output "" |
+$ write sys$output " You need to define the XML_LIBDIR logical name to" |
+$ write sys$output " point to the directory containing your object" |
+$ write sys$output " libraries. This should already contain LIBXML.OLB" |
+$ write sys$output " from the libxml package, and will be the directory" |
+$ write sys$output " the new LIBXSLT.OLB library will be placed in" |
+$ write sys$output "" |
+$ exit |
+$ else |
+$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") |
+$ define/process XML_LIBDIR "''srcdir'" |
+$ write sys$output "Defining XML_LIBDIR as ""''srcdir'""" |
+$ endif |
+$ endif |
+$! |
+$ if f$trnlnm("libxml").eqs."" |
+$ then |
+$ ! look for globals.h in a directory installed paralle to this one |
+$ on error then continue |
+$ globfile = f$search("[--...]globals.h") |
+$ if globfile.eqs."" |
+$ then |
+$ write sys$output "" |
+$ write sys$output " You need to define a LIBXML logical directory to" |
+$ write sys$output " point to the directory containing the .h files" |
+$ write sys$output " for the libxml package" |
+$ write sys$output "" |
+$ exit |
+$ else |
+$ srcdir = f$element(0,"]",globfile)+ "]" |
+$ define/process LIBXML "''srcdir'" |
+$ write sys$output "Defining LIBXML as ""''srcdir'""" |
+$ endif |
+$ endif |
+$! |
+$ if f$trnlnm("XML_SRCDIR").eqs."" |
+$ then |
+$ globfile = f$search("[--...]globals.c") |
+$ if globfile.eqs."" |
+$ then |
+$ write sys$output "Can't locate globals.c. You need to manually define a XML_SRCDIR logical" |
+$ exit |
+$ else |
+$ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") |
+$ define/process XML_SRCDIR "''srcdir'" |
+$ write sys$output "Defining XML_SRCDIR as ""''srcdir'""" |
+$ endif |
+$ endif |
+$! |
+$!- set up some working logicals ------------------- |
+$! |
+$ pass_no = 1 |
+$ set_pass_logical: |
+$! |
+$ if pass_no.le.num_passes |
+$ then |
+$! |
+$ Libname = libname_'pass_no' |
+$ progname = progname_'pass_no' |
+$ if libname.nes."" |
+$ then |
+$ logname = "''libname'_SRCDIR" |
+$ else |
+$ logname = "''progname'_SRCDIR" |
+$ endif |
+$ findfile = f$element(0," ",src_'pass_no') |
+$! |
+$!--- set up a source directory logical |
+$! |
+$ if f$trnlnm("''logname'").eqs."" |
+$ then |
+$ ! look for the target file in a parallel subdirectory |
+$ globfile = f$search("[-...]''findfile'") |
+$ if globfile.eqs."" |
+$ then |
+$ write sys$output "Can't locate ''findfile'. You need to manually define a ''logname' logical" |
+$ exit |
+$ else |
+$ srcdir = f$element(0,"]",globfile)+ "]" |
+$ define/process 'logname' "''srcdir'" |
+$ write sys$output "Defining ''logname' as ""''srcdir'""" |
+$ endif |
+$ endif |
+$! |
+$!--- if it's a library, set up a logical pointing to the .h files |
+$! |
+$ if libname.nes."" |
+$ then |
+$ if f$trnlnm("''libname'").eqs."" |
+$ then |
+$ ! look for the target .h file in a parallel subdirectory |
+$ h_file = h_file_'pass_no' |
+$ globfile = f$search("[-...]''h_file'") |
+$ if globfile.eqs."" |
+$ then |
+$ write sys$output "Can't locate ''h_file'. You need to manually define a ''libname' logical" |
+$ exit |
+$ else |
+$ includedir = f$element(0,"]",globfile)+ "]" |
+$ define/process 'libname' "''includedir'" |
+$ write sys$output "Defining ''libname' as ""''includedir'""" |
+$ endif |
+$ endif |
+$ endif |
+$! |
+$ pass_no = pass_no +1 |
+$ goto set_pass_logical |
+$! |
+$ endif ! for each pass |
+$! |
+$!- set up error handling (such as it is) ------------------------------------- |
+$! |
+$ exit_status = 1 |
+$ saved_default = f$environment("default") |
+$ on error then goto ERROR_OUT |
+$ on control_y then goto ERROR_OUT |
+$! |
+$ goto start_here |
+$ start_here: ! move this line to debug/rerun parts of this command file |
+$! |
+$!- compile modules into the library ------------------------------------------ |
+$! |
+$! |
+$ pass_no = 1 ! make three passes, one for each library, one for XSLTPROC |
+$ pass_loop: |
+$! |
+$ if pass_no.le.num_passes |
+$ then |
+$ Libname = libname_'pass_no' |
+$ progname = progname_'pass_no' |
+$ if libname.nes."" |
+$ then |
+$ logname = "''libname'_SRCDIR" |
+$ pass_description = "the XML_LIBDIR:''libname'.OLB object library" |
+$ else |
+$ logname = "''progname'_SRCDIR" |
+$ pass_description = "the programs in ''progname'" |
+$ endif |
+$ src = src_'pass_no' |
+$! |
+$!- create the library if need |
+$! |
+$ if libname.nes."" |
+$ then |
+$ if f$search("XML_LIBDIR:''libname'.OLB").eqs."" |
+$ then |
+$ write sys$output "Creating new object library XML_LIBDIR:''libname'.OLB..." |
+$ library/create XML_LIBDIR:'libname'.OLB |
+$ endif |
+$ endif |
+$! |
+$!- move to the source directory |
+$! |
+$ set def 'logname' |
+$! |
+$!- define the library and link commands (link command not used as is) |
+$! |
+$ if libname.nes."" |
+$ then |
+$ lib_command = "LIBRARY/REPLACE XML_LIBDIR:''libname'.OLB" |
+$ link_command = "" |
+$ else |
+$ lib_command = "" |
+$ link_command = "LINK" |
+$ endif |
+$! |
+$ write sys$output "" |
+$ write sys$output "Building ''pass_description' |
+$ write sys$output "" |
+$! |
+$ s_no = 0 |
+$ src = f$edit(src,"COMPRESS") |
+$! |
+$ source_loop: |
+$! |
+$ next_source = f$element (S_no," ",src) |
+$ if next_source.nes."" .and. next_source.nes." " |
+$ then |
+$ call build 'next_source' |
+$ s_no = s_no + 1 |
+$ goto source_loop |
+$ endif |
+$! |
+$ pass_no = pass_no + 1 |
+$ goto pass_loop |
+$! |
+$ endif ! for each pass |
+$! |
+$!- Th-th-th-th-th-that's all folks! ------------------------------------------ |
+$! |
+$EXIT_OUT: |
+$! |
+$ set def 'saved_default |
+$ exit 'exit_status |
+$! |
+$ |
+$ERROR_OUT: |
+$ exit_status = $status |
+$ write sys$output "''f$message(exit_status)'" |
+$ goto EXIT_OUT |
+$! |
+$!- the BUILD subroutine. Compile then insert into library or link as required |
+$! |
+$BUILD: subroutine |
+$ on warning then goto EXIT_BUILD |
+$ source_file = p1 |
+$ name = f$element(0,".",source_file) |
+$ object_file = f$fao("XML_LIBDIR:!AS.OBJ",name) |
+$! |
+$!- compile |
+$ write sys$output "Compiling ",p1,p2,"..." |
+$ cc_command /object='object_file 'source_file' 'p2' |
+$! |
+$!- insert into library if command defined |
+$! |
+$ if lib_command.nes."" |
+$ then |
+$ lib_command 'object_file' |
+$ delete/nolog 'object_file';* |
+$ endif |
+$! |
+$!- link module if command defined |
+$! |
+$ if link_command.nes."" |
+$ then |
+$ text = f$element(0,".",p1) ! lose the ".c" |
+$ write sys$output "Linking ",text,"..." |
+$ dbgopts = "" |
+$ if debug then dbgopts = "/DEBUG" |
+$ link_command'dbgopts' 'object_file',- |
+ XML_LIBDIR:libexslt/lib,- |
+ XML_LIBDIR:libxslt/lib,- |
+ XML_LIBDIR:libxml/library |
+$ endif |
+$! |
+$EXIT_BUILD: |
+$ exit $status |
+$! |
+$endsubroutine |