File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / vms / build_libxml.com
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:58 2012 UTC (12 years, 5 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    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 = "/DEF=HAVE_CONFIG_H/NAMES=(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 = "SAX.c entities.c encoding.c error.c parserInternals.c"
   50: $   sources = sources + " parser.c 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 xpath.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"
   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]",,,"DIRECTORY")
   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: $!
  106: $   if f$trnlnm("libxml").eqs.""
  107: $   then
  108: $     globfile = f$search("[-...]globals.h")
  109: $     if globfile.eqs.""
  110: $     then
  111: $	write sys$output "Can't locate globals.h.  You need to manually define a LIBXML logical"
  112: $	exit
  113: $     else
  114: $	includedir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
  115: $	define/process libxml "''includedir'"
  116: $       write sys$output "Defining libxml as ""''includedir'"""
  117: $     endif
  118: $   endif
  119: $!
  120: $!- set up error handling (such as it is) -------------------------------------
  121: $!
  122: $ exit_status = 1
  123: $ saved_default = f$environment("default")
  124: $ on error then goto ERROR_OUT
  125: $ on control_y then goto ERROR_OUT
  126: $!
  127: $!- move to the source directory and create any necessary subdirs and the
  128: $!  object library
  129: $!
  130: $ set default xml_srcdir
  131: $ if f$search("DEBUG.DIR").eqs."" then create/dir [.DEBUG]
  132: $ if f$search("XML_LIBDIR:LIBXML.OLB").eqs.""
  133: $ then
  134: $   write sys$output "Creating new object library XML_LIBDIR:LIBXML.OLB"
  135: $   library/create XML_LIBDIR:LIBXML.OLB
  136: $ endif
  137: $!
  138: $ goto start_here
  139: $ start_here:	  ! move this line to debug/rerun parts of this command file
  140: $!
  141: $!- compile modules into the library ------------------------------------------
  142: $!
  143: $ lib_command   = "LIBRARY/REPLACE/LOG XML_LIBDIR:LIBXML.OLB"
  144: $ link_command	= ""
  145: $!
  146: $ write sys$output ""
  147: $ write sys$output "Building modules into the LIBXML object library"
  148: $ write sys$output ""
  149: $!
  150: $ s_no = 0
  151: $ sources = f$edit(sources,"COMPRESS")
  152: $!
  153: $ source_loop:
  154: $!
  155: $   next_source = f$element (S_no," ",sources)
  156: $   if next_source.nes."" .and. next_source.nes." "
  157: $   then
  158: $!
  159: $     on error then goto ERROR_OUT
  160: $     on control_y then goto ERROR_OUT
  161: $     call build 'next_source'
  162: $     s_no = s_no + 1
  163: $     goto source_loop
  164: $!
  165: $   endif
  166: $!
  167: $!- now build self-test programs ----------------------------------------------
  168: $!
  169: $! these programs are built as ordinary modules into XML_LIBDIR:LIBXML.OLB.  Here they
  170: $! are built a second time with /DEFINE=(STANDALONE) in which case a main()
  171: $! is also compiled into the module
  172: $
  173: $ lib_command	= ""
  174: $ link_command	= "LINK"
  175: $!
  176: $ library/compress XML_LIBDIR:LIBXML.OLB
  177: $ purge XML_LIBDIR:LIBXML.OLB
  178: $!
  179: $ write sys$output ""
  180: $ write sys$output "Building STANDALONE self-test programs"
  181: $ write sys$output ""
  182: $!
  183: $ call build NANOFTP.C	/DEFINE=(STANDALONE)
  184: $ call build NANOHTTP.C	/DEFINE=(STANDALONE)
  185: $ call build TRIONAN.C	/DEFINE=(STANDALONE)
  186: $!
  187: $!- now build main and test programs ------------------------------------------
  188: $!
  189: $!
  190: $ lib_command	= ""
  191: $ link_command	= "LINK"
  192: $!
  193: $ write sys$output ""
  194: $ write sys$output "Building main programs and test programs"
  195: $ write sys$output ""
  196: $!
  197: $ p_no = 0
  198: $ all_progs = bin_progs + " " + noinst_PROGRAMS
  199: $ all_progs = f$edit(all_progs,"COMPRESS")
  200: $!
  201: $ prog_loop:
  202: $!
  203: $   next_prog = f$element (p_no," ",all_progs)
  204: $   if next_prog.nes."" .and. next_prog.nes." "
  205: $   then
  206: $!
  207: $     on error then goto ERROR_OUT
  208: $     on control_y then goto ERROR_OUT
  209: $     call build 'next_prog'.c
  210: $     p_no = p_no + 1
  211: $     goto prog_loop
  212: $!
  213: $   endif
  214: $!
  215: $!- Th-th-th-th-th-that's all folks! ------------------------------------------
  216: $!
  217: $ goto exit_here ! move this line to avoid parts of this command file
  218: $ exit_here:
  219: $!
  220: $ exit
  221: $ goto exit_out
  222: $!
  223: $!
  224: $EXIT_OUT:
  225: $!
  226: $ purge/nolog [.debug]
  227: $ set default 'saved_default
  228: $ exit 'exit_status
  229: $!
  230: $
  231: $ERROR_OUT:
  232: $ exit_status = $status
  233: $ write sys$output "''f$message(exit_status)'"
  234: $ goto EXIT_OUT
  235: $!
  236: $!- the BUILD subroutine.  Compile then insert into library or link as required
  237: $!
  238: $BUILD: subroutine
  239: $   on warning then goto EXIT_BUILD
  240: $   source_file = p1
  241: $   name = f$parse(source_file,,,"NAME")
  242: $   object_file = f$parse("[.debug].OBJ",name,,,"SYNTAX_ONLY")
  243: $!
  244: $!- compile
  245: $!
  246: $   write sys$output "''cc_command'''p2'/object=''object_file' ''source_file'"
  247: $   cc_command'p2' /object='object_file 'source_file'
  248: $!
  249: $!- insert into library if command defined
  250: $!
  251: $   if lib_command.nes.""  then lib_command 'object_file'
  252: $!
  253: $!- link module if command defined
  254: $   if link_command.nes.""
  255: $   then
  256: $	opts = ""
  257: $	if debug then opts = "/DEBUG"
  258: $	write sys$output "''link_command'''opts' ''object_file',XML_LIBDIR:libxml.olb/library"
  259: $	link_command'opts' 'object_file',-
  260:       		XML_LIBDIR:libxml.olb/library
  261: $   endif
  262: $!
  263: $EXIT_BUILD:
  264: $   exit $status
  265: $!
  266: $endsubroutine

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>