| OLD | NEW |
| (Empty) | |
| 1 $! BUILD_LIBXML.COM |
| 2 $! |
| 3 $! Build the LIBXML library |
| 4 $! |
| 5 $! Arguments: |
| 6 $! |
| 7 $! "DEBUG" - build everything in debug |
| 8 $! |
| 9 $! This procedure creates an object library XML_LIBDIR:LIBXML.OLB directory. |
| 10 $! After the library is built, you can link LIBXML routines into |
| 11 $! your code with the command |
| 12 $! |
| 13 $! $ LINK your_modules,XML_LIBDIR:LIBXML.OLB/LIBRARY |
| 14 $! |
| 15 $! Change History |
| 16 $! -------------- |
| 17 $! Command file author : John A Fotheringham (jaf@jafsoft.com) |
| 18 $! Update history : 19 March 2008 Tycho Hilhorst |
| 19 $! - added module schematron.c (prevent xmllint errors) |
| 20 $! - added /DEF and /INCLUDE options to cc_opts to tell |
| 21 $! config.h is available, and where to find it |
| 22 $! : 13 October 2003 Craig Berry (craigberry@mac.com) |
| 23 $! more new module additions |
| 24 $! : 25 April 2003 Craig Berry (craigberry@mac.com) |
| 25 $! added xmlreader.c and relaxng.c to source list |
| 26 $! : 28 September 2002 Craig Berry (craigberry@mac.com) |
| 27 $! updated to work with current sources |
| 28 $! miscellaneous enhancements to build process |
| 29 $! |
| 30 $!- configuration ------------------------------------------------------------- |
| 31 $! |
| 32 $!- compile command. If p1="nowarn" suppress the expected warning types |
| 33 $! |
| 34 $ cc_opts = "/nowarn/DEF=HAVE_CONFIG_H/NAMES=(as_is,SHORTENED)/FLOAT=IEEE/IEEE
_MODE=DENORM_RESULTS/INCLUDE=xml_srcdir" |
| 35 $! |
| 36 $ if p1.eqs."DEBUG" .or. p2.eqs."DEBUG" |
| 37 $ then |
| 38 $ debug = "Y" |
| 39 $ cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" |
| 40 $ else |
| 41 $ debug = "N" |
| 42 $ cc_command = "CC''cc_opts'" |
| 43 $ endif |
| 44 $! |
| 45 $!- list of sources to be built into the LIBXML library. Compare this list |
| 46 $! to the definition of "libxml2_la_SOURCES" in the file MAKEFILE.IN. |
| 47 $! Currently this definition includes the list WITH_TRIO_SOURCES_TRUE |
| 48 $! |
| 49 $ sources = "parser.c SAX.c entities.c encoding.c error.c parserInternals.c" |
| 50 $ sources = sources + " tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c" |
| 51 $ sources = sources + " valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpa
th.c" |
| 52 $ sources = sources + " xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.
c" |
| 53 $ sources = sources + " catalog.c globals.c threads.c c14n.c xmlstring.c" |
| 54 $ sources = sources + " xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.
c" |
| 55 $ sources = sources + " triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c" |
| 56 $ sources = sources + " xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c" |
| 57 $ sources = sources + " schematron.c xmlmodule.c buf.c" |
| 58 $! |
| 59 $!- list of main modules to compile and link. Compare this list to the |
| 60 $! definition of bin_PROGRAMS in MAKEFILE.IN |
| 61 $! |
| 62 $ bin_progs = "xmllint xmlcatalog" |
| 63 $! |
| 64 $!- list of test modules to compile and link. Compare this list to the |
| 65 $! definition of noinst_PROGRAMS in MAKEFILE. |
| 66 $! |
| 67 $ noinst_PROGRAMS = "testSchemas testRelax testSAX testHTML testXPath testURI
" - |
| 68 + "testThreads testC14N testAutomata testRegexp testReader" |
| 69 $! |
| 70 $!- set up build logicals -----------------------------------------------------\ |
| 71 $! |
| 72 $! |
| 73 $!- start from where the procedure is in case it's submitted in batch ----------
\ |
| 74 $! |
| 75 $ whoami = f$parse(f$environment("PROCEDURE"),,,,"NO_CONCEAL") |
| 76 $ procdir = f$parse(whoami,,,"DEVICE") + f$parse(whoami,,,"DIRECTORY") |
| 77 $ set default 'procdir' |
| 78 $! |
| 79 $ if f$trnlnm("XML_LIBDIR").eqs."" |
| 80 $ then |
| 81 $ if f$search("[-]lib.dir") .eqs. "" |
| 82 $ then |
| 83 $ create/directory/log [-.lib] |
| 84 $ endif |
| 85 $ xml_libdir = f$parse("[-.lib]",,,"DEVICE") + f$parse("[-.lib]",,,"DIRECTOR
Y") |
| 86 $ define/process XML_LIBDIR 'xml_libdir' |
| 87 $ write sys$output "Defining XML_LIBDIR as """ + f$trnlnm("XML_LIBDIR") + ""
" |
| 88 $ endif |
| 89 $! |
| 90 $ if f$trnlnm("XML_SRCDIR").eqs."" |
| 91 $ then |
| 92 $ globfile = f$search("[-...]globals.c") |
| 93 $ if globfile.eqs."" |
| 94 $ then |
| 95 $ write sys$output "Can't locate globals.c. You need to manually define a
XML_SRCDIR logical" |
| 96 $ exit |
| 97 $ else |
| 98 $ srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") |
| 99 $ define/process XML_SRCDIR "''srcdir'" |
| 100 $ write sys$output "Defining XML_SRCDIR as ""''srcdir'""" |
| 101 $ endif |
| 102 $ endif |
| 103 $! |
| 104 $ copy/log config.vms xml_srcdir:config.h |
| 105 $! copy/log xmlversion.h [-.include.libxml] |
| 106 $! |
| 107 $ if f$trnlnm("libxml").eqs."" |
| 108 $ then |
| 109 $ globfile = f$search("[-...]globals.h") |
| 110 $ if globfile.eqs."" |
| 111 $ then |
| 112 $ write sys$output "Can't locate globals.h. You need to manually define a
LIBXML logical" |
| 113 $ exit |
| 114 $ else |
| 115 $ includedir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTOR
Y") |
| 116 $ define/process libxml "''includedir'" |
| 117 $ write sys$output "Defining libxml as ""''includedir'""" |
| 118 $ endif |
| 119 $ endif |
| 120 $! |
| 121 $!- set up error handling (such as it is) ------------------------------------- |
| 122 $! |
| 123 $ exit_status = 1 |
| 124 $ saved_default = f$environment("default") |
| 125 $ on error then goto ERROR_OUT |
| 126 $ on control_y then goto ERROR_OUT |
| 127 $! |
| 128 $!- move to the source directory and create any necessary subdirs and the |
| 129 $! object library |
| 130 $! |
| 131 $ set default xml_srcdir |
| 132 $ if f$search("DEBUG.DIR").eqs."" then create/dir [.DEBUG] |
| 133 $ if f$search("XML_LIBDIR:LIBXML.OLB").eqs."" |
| 134 $ then |
| 135 $ write sys$output "Creating new object library XML_LIBDIR:LIBXML.OLB" |
| 136 $ library/create XML_LIBDIR:LIBXML.OLB |
| 137 $ endif |
| 138 $! |
| 139 $ goto start_here |
| 140 $ start_here: ! move this line to debug/rerun parts of this command file |
| 141 $! |
| 142 $!- compile modules into the library ------------------------------------------ |
| 143 $! |
| 144 $ lib_command = "LIBRARY/REPLACE/LOG XML_LIBDIR:LIBXML.OLB" |
| 145 $ link_command = "" |
| 146 $! |
| 147 $ write sys$output "" |
| 148 $ write sys$output "Building modules into the LIBXML object library" |
| 149 $ write sys$output "" |
| 150 $! |
| 151 $ s_no = 0 |
| 152 $ sources = f$edit(sources,"COMPRESS") |
| 153 $! |
| 154 $ source_loop: |
| 155 $! |
| 156 $ next_source = f$element (S_no," ",sources) |
| 157 $ if next_source.nes."" .and. next_source.nes." " |
| 158 $ then |
| 159 $! |
| 160 $ on error then goto ERROR_OUT |
| 161 $ on control_y then goto ERROR_OUT |
| 162 $ call build 'next_source' |
| 163 $ s_no = s_no + 1 |
| 164 $ goto source_loop |
| 165 $! |
| 166 $ endif |
| 167 $! |
| 168 $!- now build self-test programs ---------------------------------------------- |
| 169 $! |
| 170 $! these programs are built as ordinary modules into XML_LIBDIR:LIBXML.OLB. Her
e they |
| 171 $! are built a second time with /DEFINE=(STANDALONE) in which case a main() |
| 172 $! is also compiled into the module |
| 173 $ |
| 174 $ lib_command = "" |
| 175 $ link_command = "LINK" |
| 176 $! |
| 177 $ library/compress XML_LIBDIR:LIBXML.OLB |
| 178 $ purge XML_LIBDIR:LIBXML.OLB |
| 179 $! |
| 180 $ write sys$output "" |
| 181 $ write sys$output "Building STANDALONE self-test programs" |
| 182 $ write sys$output "" |
| 183 $! |
| 184 $ call build NANOFTP.C /DEFINE=(STANDALONE) |
| 185 $ call build NANOHTTP.C /DEFINE=(STANDALONE) |
| 186 $ call build TRIONAN.C /DEFINE=(STANDALONE) |
| 187 $! |
| 188 $!- now build main and test programs ------------------------------------------ |
| 189 $! |
| 190 $! |
| 191 $ lib_command = "" |
| 192 $ link_command = "LINK" |
| 193 $! |
| 194 $ write sys$output "" |
| 195 $ write sys$output "Building main programs and test programs" |
| 196 $ write sys$output "" |
| 197 $! |
| 198 $ p_no = 0 |
| 199 $ all_progs = bin_progs + " " + noinst_PROGRAMS |
| 200 $ all_progs = f$edit(all_progs,"COMPRESS") |
| 201 $! |
| 202 $ prog_loop: |
| 203 $! |
| 204 $ next_prog = f$element (p_no," ",all_progs) |
| 205 $ if next_prog.nes."" .and. next_prog.nes." " |
| 206 $ then |
| 207 $! |
| 208 $ on error then goto ERROR_OUT |
| 209 $ on control_y then goto ERROR_OUT |
| 210 $ call build 'next_prog'.c |
| 211 $ p_no = p_no + 1 |
| 212 $ goto prog_loop |
| 213 $! |
| 214 $ endif |
| 215 $! |
| 216 $!- Th-th-th-th-th-that's all folks! ------------------------------------------ |
| 217 $! |
| 218 $ goto exit_here ! move this line to avoid parts of this command file |
| 219 $ exit_here: |
| 220 $! |
| 221 $ exit |
| 222 $ goto exit_out |
| 223 $! |
| 224 $! |
| 225 $EXIT_OUT: |
| 226 $! |
| 227 $ purge/nolog [.debug] |
| 228 $ set default 'saved_default |
| 229 $ exit 'exit_status |
| 230 $! |
| 231 $ |
| 232 $ERROR_OUT: |
| 233 $ exit_status = $status |
| 234 $ write sys$output "''f$message(exit_status)'" |
| 235 $ goto EXIT_OUT |
| 236 $! |
| 237 $!- the BUILD subroutine. Compile then insert into library or link as required |
| 238 $! |
| 239 $BUILD: subroutine |
| 240 $ on warning then goto EXIT_BUILD |
| 241 $ source_file = p1 |
| 242 $ name = f$parse(source_file,,,"NAME") |
| 243 $ object_file = f$parse("[.debug].OBJ",name,,,"SYNTAX_ONLY") |
| 244 $! |
| 245 $!- compile |
| 246 $! |
| 247 $ write sys$output "''cc_command'''p2'/object=''object_file' ''source_file'" |
| 248 $ cc_command'p2' /object='object_file 'source_file' |
| 249 $! |
| 250 $!- insert into library if command defined |
| 251 $! |
| 252 $ if lib_command.nes."" then lib_command 'object_file' |
| 253 $! |
| 254 $!- link module if command defined |
| 255 $ if link_command.nes."" |
| 256 $ then |
| 257 $ opts = "" |
| 258 $ if debug then opts = "/DEBUG" |
| 259 $ write sys$output "''link_command'''opts' ''object_file',XML_LIBDIR:libxm
l.olb/library" |
| 260 $ if f$search( "sys$library:iconv.olb" ) .eqs. "" |
| 261 $ then |
| 262 $ link_command'opts' 'object_file',- |
| 263 XML_LIBDIR:libxml.olb/library |
| 264 $ else |
| 265 $ link_command'opts' 'object_file',- |
| 266 XML_LIBDIR:libxml.olb/library,sys$library:iconv/lib |
| 267 $ endif |
| 268 $ endif |
| 269 $! |
| 270 $EXIT_BUILD: |
| 271 $ exit $status |
| 272 $! |
| 273 $endsubroutine |
| OLD | NEW |