Cleanup of libxml2 library - removing all stuff which is not needed for building the library.

Whole version of this version of libxml2 is stored in vendor/libxml2/current, and future updates will be done only via proper vendor imports.

svn path=/trunk/; revision=25351
This commit is contained in:
Aleksey Bragin
2007-01-07 19:46:10 +00:00
parent 8749551813
commit c6aab9a0e3
37 changed files with 0 additions and 15460 deletions
-15
View File
@@ -1,15 +0,0 @@
<?xml version="1.0" ?>
<!-- $Id: Bakefiles.bkgen,v 1.1 2005/01/27 23:59:14 veillard Exp $ -->
<bakefile-gen>
<disable-formats>gnu,dmars,cbx_unix,cbuilderx</disable-formats>
<input>libxml2.bkl</input>
<!-- List of output formats to generate: -->
<add-formats>
borland,dmars,mingw,msvc,msvc6prj,watcom,cbuilderx,cbx_unix,gnu
</add-formats>
</bakefile-gen>
-92
View File
@@ -1,92 +0,0 @@
LIBXML2 build system for Win32 README
-------------------------------------
In this folder are stored all the files required to compile LIBXML2 with win32 compilers.
Bakefile (http://bakefile.sourceforge.net) is used as makefile generator.
Supported makefiles:
- makefile.vc for Microsoft NMAKE
- makefile.bcc for Borland MAKE
- makefile.wat for OpenWatcom MAKE
- makefile.gcc for MinGW MINGW32-MAKE
- all DSP & DSW for Microsoft VisualC++ 6.0 (can be used also with VS.NET AFAIK)
This readme is organized as:
1.0 HOWTO compile LIBXML2 using makefiles <-- for users who want to build the library using *command-line*
1.1 HOWTO compile LIBXML2 using an IDE <-- for users who want to build the library using an *IDE*
1.2 HOWTO regenerate makefiles for LIBXML2 <-- for libxml2 mantainers/developers/advanced users
If you just want to compile the library (and the test programs) you should definitely avoid the
section 1.1 and focus on the 1.0.
1.0 HOWTO compile LIBXML2 using makefiles
-----------------------------------------
Choose your preferred compiler among those actually supported (see above) and then run
mycompilermake -fmakefile.makefileext [options]
for a full list of the available options you should open with a notepad (or something like that)
the makefile you want to use; at the beginning you should see a section which starts as:
# -------------------------------------------------------------------------
# These are configurable options:
# -------------------------------------------------------------------------
here you can find all the options actually used by that makefile.
They can be customized when running the makefile writing something like:
nmake -fmakefile.vc BUILD=release
mingw32-make -fmakefile.gcc BUILD=debug ICONV_DIR=c:\myiconv
or they can be permanently changed modifying the makefile.
That's all: for any problem/compile-error/suggestion, write to
[email protected] with the word "libxml2" in the subject.
1.1 HOWTO compile LIBXML2 using an IDE
--------------------------------------
Actually only the Microsoft VisualC++ 6.0 project files are generated.
In future other Integrated Development Environments (IDEs) will be supported as well.
With MSVC++ 6.0, you should open the DSW file and then set as the active project the
"libxml2" project, if you want to build the library or one of the test projects if you
want to run them.
Using the command "Build->Set Active Configuration" you can choose one of the predefined
configuration.
1.2 HOWTO regenerate makefiles for LIBXML2
------------------------------------------
Be sure to have installed Bakefile (http://bakefile.sourceforge.net).
Just run the "bakefile_gen" command inside the folder containing the "libxml2.bkl" file.
NOTE: if you want to remove all the makefiles, you can use the "bakefile_gen -c" command.
The template files used to generate all makefiles are only two:
- libxml2.bkl (the main one)
- Bakefiles.bkgen
All the other files can be dinamically regenerated.
If you have problems with the compilation of LIBXML2 under windows (using one of the supported compiler)
please write to:
Francesco Montorsi <[email protected]>
-749
View File
@@ -1,749 +0,0 @@
<?xml version="1.0" ?>
<!-- Author: Francesco Montorsi <[email protected]> -->
<!-- Date: 30/8/2004 -->
<!-- Last revision: 26/1/2005 -->
<!-- LIBXML2 BAKEFILE -->
<!-- -->
<!-- The bakefile used to build the library and the test -->
<!-- programs. The makefiles output is put: -->
<!-- -->
<!-- - in the ..\LIB folder -->
<!-- - in the ..\BIN folder -->
<!-- -->
<makefile>
<using module="datafiles"/>
<requires version="0.1.5"/>
<!-- This is a bakefile, that is, a generic template used to -->
<!-- generate makefiles ALL supported compilers. -->
<!-- To use this project file you need Bakefile installed. -->
<!-- With the command "bakefile_gen" you can regen all the -->
<!-- makefiles and project files. -->
<!-- See http://bakefile.sourceforge.net for more info. -->
<!--
This file is divided in:
- generic options
- generic variables
- libxml2 options
- libxml2 variables
- about config.h creation
- templates
- libxml2 library target
- libxml2 test program targets
-->
<!-- -->
<!-- GENERIC OPTIONS -->
<!-- -->
<!-- This is a standard option that determines -->
<!-- whether the user wants to build this library as -->
<!-- a dll or as a static library. -->
<option name="SHARED">
<values>0,1</values>
<values-description>,DLL</values-description>
<default-value>0</default-value>
<description>If set to zero a STATIC libxml library will be built</description>
</option>
<!-- Configuration for building the bakefile with -->
<!-- unicode strings or not (unicode or ansi). -->
<option name="UNICODE">
<values>0,1</values>
<values-description>,Unicode</values-description>
<default-value>0</default-value>
<description>Compile Unicode build?</description>
</option>
<!-- There are several options that deal with build -->
<!-- types. First, there's this one, BUILD. -->
<!-- -->
<!-- BUILD determines whether or not we want to build -->
<!-- in release or debug mode. Note that in practice -->
<!-- this means modifying the optimize tag, which by -->
<!-- default is set to off. In this case debug means -->
<!-- off (no optimizations), and release means speed -->
<!-- (fast with inlining). There is also a size option -->
<!-- that is not addressed in this example bakefile. -->
<option name="BUILD">
<values>debug,release</values>
<values-description>Debug,Release</values-description>
<default-value>release</default-value>
<description>
Type of compiled binaries
</description>
</option>
<!-- -->
<!-- GENERIC VARIABLES -->
<!-- -->
<!-- Set the ISDLL variable, so that we can use it -->
<!-- inside an if statement later on (options not -->
<!-- allowed in if statements). -->
<set var="ISDLL" cond="SHARED=='1'">1</set>
<set var="ISDLL" cond="SHARED=='0'">0</set>
<!-- The unicode define we want. By default bakefile -->
<!-- makes variables an empty string, so if unicode -->
<!-- is not defined $(UNICODE_DEFINE) would expand -->
<!-- to nothing (literally). -->
<set var="UNICODE_DEFINE">
<if cond="FORMAT!='autoconf' and UNICODE=='1'">_UNICODE</if>
</set>
<!-- The debug define we need with win32 compilers -->
<!-- (on Linux, the wx-config program is used). -->
<set var="DEBUG_DEFINE">
<if cond="FORMAT!='autoconf' and BUILD=='debug'">
__WXDEBUG__
</if>
</set>
<!-- Value we will use later on for the debug-info -->
<!-- tag inside our templates. -->
<set var="DEBUGINFO">
<if cond="BUILD=='debug'">on</if>
<if cond="BUILD=='release'">off</if>
</set>
<!-- Value we will use later on for the debug-runtime -->
<!-- tag inside our templates. -->
<set var="DEBUGRUNTIME">
<if cond="BUILD=='debug'">on</if>
<if cond="BUILD=='release'">off</if>
</set>
<!-- Value for optimize tag. -->
<set var="OPTIMIZEFLAG">
<if cond="BUILD=='debug'">off</if>
<if cond="BUILD=='release'">speed</if>
</set>
<!-- Level of warnings. Here we max it out in debug -->
<!-- mode, and turn them off in release mode. -->
<set var="WARNINGS">
<if cond="BUILD=='debug'">max</if>
<if cond="BUILD=='release'">no</if>
</set>
<!-- Set MYCPPFLAGS as empty; maybe it will be filled later... -->
<set var="MYCPPFLAGS"></set>
<if cond="FORMAT=='mingw' or FORMAT=='autoconf'">
<!-- With GCC, settings warnings to MAX would force -->
<!-- Bakefile to call GCC with "-W -Wall" which generates -->
<!-- a *lot* of warnings about wxWidgets headers... -->
<!-- this is why "-W -Wall" is here replaced by "-Wall". -->
<set var="WARNINGS">default</set>
<set var="MYCPPFLAGS">-Wall</set>
</if>
<!-- -->
<!-- LIBXML2 OPTIONS -->
<!-- -->
<!-- Note #1: not all of them are used by win32 makefiles -->
<!-- -->
<!-- Note #2: since all combinations of non-path options are -->
<!-- translated into different 'configurations' by -->
<!-- Bakefile when using the MSVC6PRJ output, we must -->
<!-- avoid to create a 10 MB libxml2.dsp file forcing -->
<!-- some options to their default values... this -->
<!-- behaviour can be overridden by the -->
<!-- FULL_OPTIONS_SUPPORT -->
<!-- variable defined below... -->
<set var="FULL_OPTIONS_SUPPORT">
<if cond="FORMAT=='msvc6prj'">0</if>
<if cond="FORMAT!='msvc6prj'">1</if>
</set>
<option name="ICONV_DIR" category="path">
<default-value>c:\iconv</default-value>
<description>The iconv library main folder</description>
</option>
<option name="WITH_TRIO">
<values>0,1</values>
<default-value>0</default-value>
<description>Enable TRIO string manipulator</description>
</option>
<!-- see the note #2 -->
<if cond="FULL_OPTIONS_SUPPORT=='0'">
<set var="WITH_THREADS">native</set>
</if>
<if cond="FULL_OPTIONS_SUPPORT=='1'">
<option name="WITH_THREADS">
<values>no,ctls,native,posix</values>
<default-value>native</default-value>
<description>Enable thread safety</description>
</option>
</if>
<option name="WITH_FTP">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable FTP client</description>
</option>
<option name="WITH_HTTP">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable HTTP client</description>
</option>
<option name="WITH_C14N">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable C14N support</description>
</option>
<option name="WITH_CATALOG">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable catalog support</description>
</option>
<option name="WITH_DOCB">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable DocBook support</description>
</option>
<option name="WITH_XPATH">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable XPath support</description>
</option>
<option name="WITH_XPTR">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable XPointer support</description>
</option>
<option name="WITH_XINCLUDE">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable XInclude support</description>
</option>
<!-- see the note #2 -->
<if cond="FULL_OPTIONS_SUPPORT=='0'">
<set var="WITH_ICONV">1</set>
</if>
<if cond="FULL_OPTIONS_SUPPORT=='1'">
<option name="WITH_ICONV">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable iconv support</description>
</option>
</if>
<option name="WITH_ISO8859X">
<values>0,1</values>
<default-value>0</default-value>
<description>Enable iso8859x support</description>
</option>
<!-- see the note #2 -->
<if cond="FULL_OPTIONS_SUPPORT=='0'">
<set var="WITH_ZLIB">0</set>
</if>
<if cond="FULL_OPTIONS_SUPPORT=='1'">
<option name="WITH_ZLIB">
<values>0,1</values>
<default-value>0</default-value>
<description>Enable ZLIB support</description>
</option>
</if>
<option name="WITH_REGEXPS">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable regular expressions</description>
</option>
<option name="WITH_TREE">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable tree api</description>
</option>
<option name="WITH_READER">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable xmlReader api</description>
</option>
<option name="WITH_WRITER">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable xmlWriter api</description>
</option>
<option name="WITH_WALKER">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable xmlDocWalker api</description>
</option>
<option name="WITH_PATTERN">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable xmlPattern api</description>
</option>
<option name="WITH_PUSH">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable push api</description>
</option>
<option name="WITH_VALID">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable DTD validation support</description>
</option>
<option name="WITH_SAX1">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable SAX1 api</description>
</option>
<option name="WITH_SCHEMAS">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable XML Schema support</description>
</option>
<option name="WITH_LEGACY">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable deprecated APIs</description>
</option>
<option name="WITH_OUTPUT">
<values>0,1</values>
<default-value>1</default-value>
<description>Enable serialization support</description>
</option>
<option name="WITH_PYTHON">
<values>0,1</values>
<default-value>0</default-value>
<description>Build Python bindings</description>
</option>
<!-- -->
<!-- LIBXML2 VARIABLES -->
<!-- -->
<!-- Put all the objects files generated by -->
<!-- the compilation in a subfolder of BUILD -->
<set var="BUILDDIR">$(FORMAT)</set>
<!-- This variable is set to 1 when the current output writer supports -->
<!-- the __DEFINE_ARG variable. Otherwise it's set to zero. -->
<set var="HAS_DEFINE_ARG">
<if cond="FORMAT!='msvc6prj'">1</if>
<if cond="FORMAT=='msvc6prj'">0</if>
</set>
<!-- The root directory of libxml2 -->
<set var="XMLBASEDIR">..</set>
<!-- The directory where libxml2' tests will be put -->
<set var="XMLTESTDIR">$(XMLBASEDIR)$(DIRSEP)bin</set>
<set var="LIBXML_MAJOR_VERSION">2</set>
<set var="LIBXML_MINOR_VERSION">6</set>
<set var="LIBXML_MICRO_VERSION">16</set>
<!-- some defines related to threads -->
<set var="THREADS_DEF">
<if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='native'">
$(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_WIN32_THREADS
</if>
<if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='ctls'">
$(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_WIN32_THREADS $(__DEFINE_ARG)HAVE_COMPILER_TLS
</if>
<if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='posix'">
$(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_PTHREAD_H
</if>
</set>
<if cond="FORMAT=='borland'">
<set var="THREADS_DEF">
<if cond="WITH_THREADS=='native'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
<if cond="WITH_THREADS=='ctls'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
<if cond="WITH_THREADS=='posix'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
</set>
</if>
<!-- some other conditional defines -->
<set var="ZLIB_DEF"><if cond="WITH_ZLIB=='1'">HAVE_ZLIB_H</if></set>
<set var="DEBUG_DEF"><if cond="BUILD=='debug'">_DEBUG</if></set>
<set var="DEBUG_DEF"><if cond="BUILD=='release'">NDEBUG</if></set>
<!-- this is very very important when compiling with MINGW: without this line,
the test programs (and all the programs built with libxml2 which use xmlFree)
won't build because of "undefined references to __xmlFree" -->
<set var="STATIC_DEF"><if cond="SHARED=='0'">LIBXML_STATIC</if></set>
<!-- some conditional libraries dependencies -->
<set var="ICONV_LIB"><if cond="WITH_ICONV=='1'">iconv</if></set>
<set var="WSOCK32_LIB"><if cond="WITH_THREADS=='native'">wsock32</if></set>
<set var="ZLIB_LIB"><if cond="WITH_ZLIB=='1'">zdll</if></set>
<set var="POSIX_LIB"><if cond="WITH_THREADS=='posix'">pthreadVC</if></set>
<set var="XMLINCLUDEDIR">$(XMLBASEDIR)$(DIRSEP)include$(DIRSEP)libxml$(DIRSEP)</set>
<!-- -->
<!-- ABOUT CONFIG.H HEADER CREATION -->
<!-- -->
<set var="CONFIG_SRCNAME">win32config.h</set>
<set var="CONFIG_DSTNAME">config.h</set>
<if cond="FORMAT!='msvc6prj' and FORMAT!='autoconf' and FORMAT!='gnu'">
<copy-file-to-file id="setup">
<!-- On win32 we need to manually copy a default config.h file -->
<!-- from the include/mc/msw folder to include/mc -->
<src>../include/$(CONFIG_SRCNAME)</src>
<dst>../$(CONFIG_DSTNAME)</dst>
<dependency-of>all</dependency-of>
<!-- With autoconf, we will use the configure script to translate -->
<!-- include/mc/config.h.in to include/mc/config.h and thus we do -->
<!-- not need to do anything here... -->
</copy-file-to-file>
</if>
<if cond="FORMAT!='msvc6prj'">
<mkdir id="setuplibdir"><dir>$(XMLBASEDIR)$(DIRSEP)lib</dir></mkdir>
<mkdir id="setupbindir"><dir>$(XMLBASEDIR)$(DIRSEP)bin</dir></mkdir>
<!-- Creates all output folders -->
<phony id="setupdirs">
<dependency-of>all</dependency-of>
<depends>setuplibdir</depends>
<depends>setupbindir</depends>
</phony>
</if>
<!-- This defines a tag which includes headers on MSVC -->
<!-- Note that $(value) is stuck in there by bakefile, -->
<!-- and is the value between the beginning and end tag. -->
<define-tag name="headers" rules="dll,lib,exe">
<if cond="FORMAT=='msvc6prj'">
<msvc-project-files>
$(value)
</msvc-project-files>
</if>
</define-tag>
<!-- Creates the following custom build rule for MSVC6PRJ file:
copies ..\include\win32config.h into ..\config.h
NOTE: this tag must be used before the <sources> tag if you want that the configuration
file will be created before any other source file is compiled... -->
<define-tag name="msvc-copy-setup-h" rules="dll,lib,action">
<if cond="FORMAT=='msvc6prj'">
<headers>$(XMLBASEDIR)\include\$(CONFIG_SRCNAME)</headers>
<set var="__subdir">$(value)</set>
<set var="_custom_build_files" append="1">$(XMLBASEDIR)\include\$(CONFIG_SRCNAME)</set>
<set var="_custom_build____include_win32config_h">
Creating the configuration file ..\$(CONFIG_DSTNAME) from ..\include\win32\$(CONFIG_SRCNAME)
InputPath=..\include\$(CONFIG_SRCNAME)
"..\include\$(CONFIG_SRCNAME)" : $(DOLLAR)(SOURCE) "$(DOLLAR)(INTDIR)" "$(DOLLAR)(OUTDIR)"
$(TAB)copy "$(DOLLAR)(InputPath)" ..\$(CONFIG_DSTNAME)
</set>
</if>
</define-tag>
<!-- -->
<!-- TEMPLATES -->
<!-- -->
<!-- The basic template: used by all the targets -->
<template id="base">
<if cond="FORMAT=='mingw'">
<define>HAVE_W32API_H</define>
<ldflags>-mthreads</ldflags>
</if>
<cxxflags>$(MYCPPFLAGS)</cxxflags>
<warnings>$(WARNINGS)</warnings>
<define>$(UNICODE_DEFINE)</define>
<optimize>$(OPTIMIZEFLAG)</optimize>
<debug-info>$(DEBUGINFO)</debug-info>
<debug-runtime-libs>$(DEBUGRUNTIME)</debug-runtime-libs>
</template>
<!-- The template used both by the library and by the test programs -->
<template id="xml2" template="base">
<!-- -I & -L equivalents -->
<include>$(XMLBASEDIR)$(DIRSEP)include</include>
<include>$(ICONV_DIR)$(DIRSEP)include</include>
<lib-path>$(ICONV_DIR)$(DIRSEP)lib</lib-path>
<!-- some conditional define flags -->
<cflags>$(THREADS_DEF)</cflags>
<define>$(ZLIB_DEF)</define>
<define>$(DEBUG_DEF)</define>
<define>$(STATIC_DEF)</define>
<if cond="HAS_DEFINE_ARG=='0'">
<!-- we are probably using an IDE output: defaults to WITH_THREADS=='native' -->
<define>_REENTRANT</define>
<define>HAVE_WIN32_THREADS</define>
</if>
<!-- these must always be defined on win32 -->
<define>WIN32</define>
<define>_WINDOWS</define>
<define>_MBCS</define>
<if cond="FORMAT=='borland'">
<define>_NO_VCL</define>
<define>EILSEQ=2</define>
</if>
</template>
<!-- The template used by libxml2 test programs -->
<template id="xml2test" template="xml2">
<dirname>$(XMLTESTDIR)</dirname>
<app-type>console</app-type>
<library>libxml2</library>
<sys-lib>$(ICONV_LIB)</sys-lib>
<sys-lib>$(WSOCK32_LIB)</sys-lib>
<sys-lib>$(ZLIB_LIB)</sys-lib>
<sys-lib>$(POSIX_LIB)</sys-lib>
</template>
<!-- -->
<!-- LIBXML2 LIBRARY TARGET -->
<!-- -->
<lib id="libxml2" template="xml2">
<!-- this is useful only when using MSVC6PRJ -->
<if cond="FORMAT=='msvc6prj'">
<msvc-copy-setup-h/>
<msvc-file-group>Config headers:*config.h</msvc-file-group>
</if>
<if cond="FORMAT!='msvc6prj'">
<depends>setup</depends>
<depends>setuplibdir</depends>
</if>
<!-- output folder -->
<dirname>$(XMLBASEDIR)$(DIRSEP)lib</dirname>
<!-- The output name must be "libxml2.lib" with all compilers.
Since mingw format autoadds the "lib" prefix to the library
name, we must intercept that case to avoid to get "liblibxml2.a" -->
<if cond="FORMAT!='mingw'">
<libname>libxml2</libname>
</if>
<if cond="FORMAT=='mingw'">
<libname>xml2</libname>
</if>
<!-- the list of source files to compile -->
<sources>
$(XMLBASEDIR)$(DIRSEP)c14n.c
$(XMLBASEDIR)$(DIRSEP)catalog.c
$(XMLBASEDIR)$(DIRSEP)chvalid.c
$(XMLBASEDIR)$(DIRSEP)debugXML.c
$(XMLBASEDIR)$(DIRSEP)dict.c
$(XMLBASEDIR)$(DIRSEP)DOCBparser.c
$(XMLBASEDIR)$(DIRSEP)encoding.c
$(XMLBASEDIR)$(DIRSEP)entities.c
$(XMLBASEDIR)$(DIRSEP)error.c
$(XMLBASEDIR)$(DIRSEP)globals.c
$(XMLBASEDIR)$(DIRSEP)hash.c
$(XMLBASEDIR)$(DIRSEP)HTMLparser.c
$(XMLBASEDIR)$(DIRSEP)HTMLtree.c
$(XMLBASEDIR)$(DIRSEP)legacy.c
$(XMLBASEDIR)$(DIRSEP)list.c
$(XMLBASEDIR)$(DIRSEP)nanoftp.c
$(XMLBASEDIR)$(DIRSEP)nanohttp.c
$(XMLBASEDIR)$(DIRSEP)parser.c
$(XMLBASEDIR)$(DIRSEP)parserInternals.c
$(XMLBASEDIR)$(DIRSEP)pattern.c
$(XMLBASEDIR)$(DIRSEP)relaxng.c
$(XMLBASEDIR)$(DIRSEP)SAX2.c
$(XMLBASEDIR)$(DIRSEP)SAX.c
$(XMLBASEDIR)$(DIRSEP)threads.c
$(XMLBASEDIR)$(DIRSEP)tree.c
$(XMLBASEDIR)$(DIRSEP)uri.c
$(XMLBASEDIR)$(DIRSEP)valid.c
$(XMLBASEDIR)$(DIRSEP)xinclude.c
$(XMLBASEDIR)$(DIRSEP)xlink.c
$(XMLBASEDIR)$(DIRSEP)xmlIO.c
$(XMLBASEDIR)$(DIRSEP)xmlmemory.c
$(XMLBASEDIR)$(DIRSEP)xmlreader.c
$(XMLBASEDIR)$(DIRSEP)xmlregexp.c
$(XMLBASEDIR)$(DIRSEP)xmlsave.c
$(XMLBASEDIR)$(DIRSEP)xmlschemas.c
$(XMLBASEDIR)$(DIRSEP)xmlschemastypes.c
$(XMLBASEDIR)$(DIRSEP)xmlunicode.c
$(XMLBASEDIR)$(DIRSEP)xmlwriter.c
$(XMLBASEDIR)$(DIRSEP)xpath.c
$(XMLBASEDIR)$(DIRSEP)xpointer.c
$(XMLBASEDIR)$(DIRSEP)xmlstring.c
</sources>
<!-- the list of header files (for IDE projects) -->
<headers>
$(XMLINCLUDEDIR)c14n.h
$(XMLINCLUDEDIR)catalog.h
$(XMLINCLUDEDIR)chvalid.h
$(XMLINCLUDEDIR)debugXML.h
$(XMLINCLUDEDIR)dict.h
$(XMLINCLUDEDIR)DOCBparser.h
$(XMLINCLUDEDIR)encoding.h
$(XMLINCLUDEDIR)entities.h
$(XMLINCLUDEDIR)globals.h
$(XMLINCLUDEDIR)hash.h
$(XMLINCLUDEDIR)HTMLparser.h
$(XMLINCLUDEDIR)HTMLtree.h
$(XMLINCLUDEDIR)list.h
$(XMLINCLUDEDIR)nanoftp.h
$(XMLINCLUDEDIR)nanohttp.h
$(XMLINCLUDEDIR)parser.h
$(XMLINCLUDEDIR)parserInternals.h
$(XMLINCLUDEDIR)pattern.h
$(XMLINCLUDEDIR)relaxng.h
$(XMLINCLUDEDIR)SAX.h
$(XMLINCLUDEDIR)SAX2.h
$(XMLINCLUDEDIR)schemasInternals.h
$(XMLINCLUDEDIR)threads.h
$(XMLINCLUDEDIR)tree.h
$(XMLINCLUDEDIR)uri.h
$(XMLINCLUDEDIR)valid.h
$(XMLINCLUDEDIR)xinclude.h
$(XMLINCLUDEDIR)xlink.h
$(XMLINCLUDEDIR)xmlautomata.h
$(XMLINCLUDEDIR)xmlerror.h
$(XMLINCLUDEDIR)xmlexports.h
$(XMLINCLUDEDIR)xmlIO.h
$(XMLINCLUDEDIR)xmlmemory.h
$(XMLINCLUDEDIR)xmlmodule.h
$(XMLINCLUDEDIR)xmlreader.h
$(XMLINCLUDEDIR)xmlregexp.h
$(XMLINCLUDEDIR)xmlsave.h
$(XMLINCLUDEDIR)xmlschemas.h
$(XMLINCLUDEDIR)xmlschemastypes.h
$(XMLINCLUDEDIR)xmlstring.h
$(XMLINCLUDEDIR)xmlunicode.h
$(XMLINCLUDEDIR)xmlversion.h
$(XMLINCLUDEDIR)xmlwriter.h
$(XMLINCLUDEDIR)xpath.h
$(XMLINCLUDEDIR)xpathInternals.h
$(XMLINCLUDEDIR)xpointer.h
</headers>
<!-- these ones are not inside the include/libxml folder -->
<headers>
$(XMLBASEDIR)$(DIRSEP)libxml.h
$(XMLBASEDIR)$(DIRSEP)triodef.h
$(XMLBASEDIR)$(DIRSEP)trionan.h
$(XMLBASEDIR)$(DIRSEP)include$(DIRSEP)wsockcompat.h
</headers>
</lib>
<!-- -->
<!-- LIBXML2 test programs -->
<!-- -->
<set var="BUILD_ALL_TESTS">
<!-- when using full options support with MSVC6PRJ we should
avoid to create all the DSP files required for the test
programs: they would take a _lot_ of space !! -->
<if cond="FORMAT=='msvc6prj' and FULL_OPTIONS_SUPPORT=='1'">0</if>
<!-- when creating a makefile or using MSVC6PRJ with limited
options support, then we can build all the tests safely -->
<if cond="FORMAT!='msvc6prj' or FULL_OPTIONS_SUPPORT=='0'">1</if>
</set>
<if cond="BUILD_ALL_TESTS=='1'">
<exe id="testAutomata" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testAutomata.c</sources></exe>
<exe id="testC14N" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testC14N.c</sources></exe>
<exe id="testHTML" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testHTML.c</sources></exe>
<exe id="testReader" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testReader.c</sources></exe>
<exe id="testRegexp" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testRegexp.c</sources></exe>
<exe id="testRelax" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testRelax.c</sources></exe>
<exe id="testSax" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testSax.c</sources></exe>
<exe id="testSchemas" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testSchemas.c</sources></exe>
<exe id="testURI" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testURI.c</sources></exe>
<exe id="testXPath" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testXPath.c</sources></exe>
<exe id="xmllint" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)xmllint.c</sources></exe>
<if cond="FORMAT=='autoconf'">
<exe id="testdso" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testdso.c</sources></exe>
</if>
<!-- FIXME:
<exe id="testModule" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testModule.c</sources></exe>
<if cond="WITH_THREADS=='posix'">
<exe id="testThreads" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testThreads.c</sources></exe>
</if>
<if cond="WITH_THREADS=='ctls' or WITH_THREADS=='native'">
<exe id="testThreadsWin32" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testThreadsWin32.c</sources></exe>
</if>
-->
</if>
</makefile>
-10
View File
@@ -1,10 +0,0 @@
noinst_PROGRAMS = gjobread
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@
DEPS = $(top_builddir)/libxml2.la
LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@
gjobread_SOURCES=gjobread.c
gjobread_LDFLAGS=
gjobread_DEPENDENCIES= $(DEPS)
gjobread_LDADD= @RDL_LIBS@ $(LDADDS)
-539
View File
@@ -1,539 +0,0 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
SOURCES = $(gjobread_SOURCES)
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
noinst_PROGRAMS = gjobread$(EXEEXT)
subdir = example
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
PROGRAMS = $(noinst_PROGRAMS)
am_gjobread_OBJECTS = gjobread.$(OBJEXT)
gjobread_OBJECTS = $(am_gjobread_OBJECTS)
am__DEPENDENCIES_1 =
am__DEPENDENCIES_2 = $(top_builddir)/libxml2.la $(am__DEPENDENCIES_1)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(gjobread_SOURCES)
DIST_SOURCES = $(gjobread_SOURCES)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_THREAD_LIBS = @BASE_THREAD_LIBS@
C14N_OBJ = @C14N_OBJ@
CATALOG_OBJ = @CATALOG_OBJ@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@
CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@
DEBUG_OBJ = @DEBUG_OBJ@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DOCB_OBJ = @DOCB_OBJ@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FTP_OBJ = @FTP_OBJ@
HAVE_ISINF = @HAVE_ISINF@
HAVE_ISNAN = @HAVE_ISNAN@
HTML_DIR = @HTML_DIR@
HTML_OBJ = @HTML_OBJ@
HTTP_OBJ = @HTTP_OBJ@
ICONV_LIBS = @ICONV_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@
LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@
LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@
LIBXML_VERSION = @LIBXML_VERSION@
LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@
LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@
LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MODULE_EXTENSION = @MODULE_EXTENSION@
MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@
MV = @MV@
M_LIBS = @M_LIBS@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PYTHON = @PYTHON@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_TESTS = @PYTHON_TESTS@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RDL_LIBS = @RDL_LIBS@
READER_TEST = @READER_TEST@
RELDATE = @RELDATE@
RM = @RM@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STATIC_BINARIES = @STATIC_BINARIES@
STRIP = @STRIP@
TAR = @TAR@
TEST_C14N = @TEST_C14N@
TEST_CATALOG = @TEST_CATALOG@
TEST_DEBUG = @TEST_DEBUG@
TEST_HTML = @TEST_HTML@
TEST_MODULES = @TEST_MODULES@
TEST_PATTERN = @TEST_PATTERN@
TEST_PHTML = @TEST_PHTML@
TEST_PUSH = @TEST_PUSH@
TEST_REGEXPS = @TEST_REGEXPS@
TEST_SAX = @TEST_SAX@
TEST_SCHEMAS = @TEST_SCHEMAS@
TEST_THREADS = @TEST_THREADS@
TEST_VALID = @TEST_VALID@
TEST_VTIME = @TEST_VTIME@
TEST_XINCLUDE = @TEST_XINCLUDE@
TEST_XPATH = @TEST_XPATH@
TEST_XPTR = @TEST_XPTR@
THREADS_W32 = @THREADS_W32@
THREAD_CFLAGS = @THREAD_CFLAGS@
THREAD_LIBS = @THREAD_LIBS@
U = @U@
VERSION = @VERSION@
WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
WITH_C14N = @WITH_C14N@
WITH_CATALOG = @WITH_CATALOG@
WITH_DEBUG = @WITH_DEBUG@
WITH_DOCB = @WITH_DOCB@
WITH_FTP = @WITH_FTP@
WITH_HTML = @WITH_HTML@
WITH_HTTP = @WITH_HTTP@
WITH_ICONV = @WITH_ICONV@
WITH_ISO8859X = @WITH_ISO8859X@
WITH_LEGACY = @WITH_LEGACY@
WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
WITH_MODULES = @WITH_MODULES@
WITH_OUTPUT = @WITH_OUTPUT@
WITH_PATTERN = @WITH_PATTERN@
WITH_PUSH = @WITH_PUSH@
WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
WITH_READER = @WITH_READER@
WITH_REGEXPS = @WITH_REGEXPS@
WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
WITH_SAX1 = @WITH_SAX1@
WITH_SCHEMAS = @WITH_SCHEMAS@
WITH_THREADS = @WITH_THREADS@
WITH_TREE = @WITH_TREE@
WITH_TRIO = @WITH_TRIO@
WITH_TRIO_SOURCES_FALSE = @WITH_TRIO_SOURCES_FALSE@
WITH_TRIO_SOURCES_TRUE = @WITH_TRIO_SOURCES_TRUE@
WITH_VALID = @WITH_VALID@
WITH_WRITER = @WITH_WRITER@
WITH_XINCLUDE = @WITH_XINCLUDE@
WITH_XPATH = @WITH_XPATH@
WITH_XPTR = @WITH_XPTR@
XINCLUDE_OBJ = @XINCLUDE_OBJ@
XMLLINT = @XMLLINT@
XML_CFLAGS = @XML_CFLAGS@
XML_INCLUDEDIR = @XML_INCLUDEDIR@
XML_LIBDIR = @XML_LIBDIR@
XML_LIBS = @XML_LIBS@
XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@
XPATH_OBJ = @XPATH_OBJ@
XPTR_OBJ = @XPTR_OBJ@
XSLTPROC = @XSLTPROC@
Z_CFLAGS = @Z_CFLAGS@
Z_LIBS = @Z_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include @THREAD_CFLAGS@ @Z_CFLAGS@
DEPS = $(top_builddir)/libxml2.la
LDADDS = @STATIC_BINARIES@ $(top_builddir)/libxml2.la @THREAD_LIBS@ @Z_LIBS@ $(ICONV_LIBS) -lm @WIN32_EXTRA_LIBADD@
gjobread_SOURCES = gjobread.c
gjobread_LDFLAGS =
gjobread_DEPENDENCIES = $(DEPS)
gjobread_LDADD = @RDL_LIBS@ $(LDADDS)
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu example/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu example/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
clean-noinstPROGRAMS:
@list='$(noinst_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
gjobread$(EXEEXT): $(gjobread_OBJECTS) $(gjobread_DEPENDENCIES)
@rm -f gjobread$(EXEEXT)
$(LINK) $(gjobread_LDFLAGS) $(gjobread_OBJECTS) $(gjobread_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjobread.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS)
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
clean-libtool clean-noinstPROGRAMS ctags distclean \
distclean-compile distclean-generic distclean-libtool \
distclean-tags distdir dvi dvi-am html html-am info info-am \
install install-am install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-307
View File
@@ -1,307 +0,0 @@
/*
* gjobread.c : a small test program for gnome jobs XML format
*
* See Copyright for the status of this software.
*
* [email protected]
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
* This example should compile and run indifferently with libxml-1.8.8 +
* and libxml2-2.1.0 +
* Check the COMPAT comments below
*/
/*
* COMPAT using xml-config --cflags to get the include path this will
* work with both
*/
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#define DEBUG(x) printf(x)
/*
* A person record
* an xmlChar * is really an UTF8 encoded char string (0 terminated)
*/
typedef struct person {
xmlChar *name;
xmlChar *email;
xmlChar *company;
xmlChar *organisation;
xmlChar *smail;
xmlChar *webPage;
xmlChar *phone;
} person, *personPtr;
/*
* And the code needed to parse it
*/
static personPtr
parsePerson(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) {
personPtr ret = NULL;
DEBUG("parsePerson\n");
/*
* allocate the struct
*/
ret = (personPtr) malloc(sizeof(person));
if (ret == NULL) {
fprintf(stderr,"out of memory\n");
return(NULL);
}
memset(ret, 0, sizeof(person));
/* We don't care what the top level element name is */
/* COMPAT xmlChildrenNode is a macro unifying libxml1 and libxml2 names */
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *)"Person")) &&
(cur->ns == ns))
ret->name = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
if ((!xmlStrcmp(cur->name, (const xmlChar *)"Email")) &&
(cur->ns == ns))
ret->email = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
cur = cur->next;
}
return(ret);
}
/*
* and to print it
*/
static void
printPerson(personPtr cur) {
if (cur == NULL) return;
printf("------ Person\n");
if (cur->name) printf(" name: %s\n", cur->name);
if (cur->email) printf(" email: %s\n", cur->email);
if (cur->company) printf(" company: %s\n", cur->company);
if (cur->organisation) printf(" organisation: %s\n", cur->organisation);
if (cur->smail) printf(" smail: %s\n", cur->smail);
if (cur->webPage) printf(" Web: %s\n", cur->webPage);
if (cur->phone) printf(" phone: %s\n", cur->phone);
printf("------\n");
}
/*
* a Description for a Job
*/
typedef struct job {
xmlChar *projectID;
xmlChar *application;
xmlChar *category;
personPtr contact;
int nbDevelopers;
personPtr developers[100]; /* using dynamic alloc is left as an exercise */
} job, *jobPtr;
/*
* And the code needed to parse it
*/
static jobPtr
parseJob(xmlDocPtr doc, xmlNsPtr ns, xmlNodePtr cur) {
jobPtr ret = NULL;
DEBUG("parseJob\n");
/*
* allocate the struct
*/
ret = (jobPtr) malloc(sizeof(job));
if (ret == NULL) {
fprintf(stderr,"out of memory\n");
return(NULL);
}
memset(ret, 0, sizeof(job));
/* We don't care what the top level element name is */
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *) "Project")) &&
(cur->ns == ns)) {
ret->projectID = xmlGetProp(cur, (const xmlChar *) "ID");
if (ret->projectID == NULL) {
fprintf(stderr, "Project has no ID\n");
}
}
if ((!xmlStrcmp(cur->name, (const xmlChar *) "Application")) &&
(cur->ns == ns))
ret->application =
xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
if ((!xmlStrcmp(cur->name, (const xmlChar *) "Category")) &&
(cur->ns == ns))
ret->category =
xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);
if ((!xmlStrcmp(cur->name, (const xmlChar *) "Contact")) &&
(cur->ns == ns))
ret->contact = parsePerson(doc, ns, cur);
cur = cur->next;
}
return(ret);
}
/*
* and to print it
*/
static void
printJob(jobPtr cur) {
int i;
if (cur == NULL) return;
printf("======= Job\n");
if (cur->projectID != NULL) printf("projectID: %s\n", cur->projectID);
if (cur->application != NULL) printf("application: %s\n", cur->application);
if (cur->category != NULL) printf("category: %s\n", cur->category);
if (cur->contact != NULL) printPerson(cur->contact);
printf("%d developers\n", cur->nbDevelopers);
for (i = 0;i < cur->nbDevelopers;i++) printPerson(cur->developers[i]);
printf("======= \n");
}
/*
* A pool of Gnome Jobs
*/
typedef struct gjob {
int nbJobs;
jobPtr jobs[500]; /* using dynamic alloc is left as an exercise */
} gJob, *gJobPtr;
static gJobPtr
parseGjobFile(char *filename) {
xmlDocPtr doc;
gJobPtr ret;
jobPtr curjob;
xmlNsPtr ns;
xmlNodePtr cur;
#ifdef LIBXML_SAX1_ENABLED
/*
* build an XML tree from a the file;
*/
doc = xmlParseFile(filename);
if (doc == NULL) return(NULL);
#else
/*
* the library has been compiled without some of the old interfaces
*/
return(NULL);
#endif /* LIBXML_SAX1_ENABLED */
/*
* Check the document is of the right kind
*/
cur = xmlDocGetRootElement(doc);
if (cur == NULL) {
fprintf(stderr,"empty document\n");
xmlFreeDoc(doc);
return(NULL);
}
ns = xmlSearchNsByHref(doc, cur,
(const xmlChar *) "http://www.gnome.org/some-location");
if (ns == NULL) {
fprintf(stderr,
"document of the wrong type, GJob Namespace not found\n");
xmlFreeDoc(doc);
return(NULL);
}
if (xmlStrcmp(cur->name, (const xmlChar *) "Helping")) {
fprintf(stderr,"document of the wrong type, root node != Helping");
xmlFreeDoc(doc);
return(NULL);
}
/*
* Allocate the structure to be returned.
*/
ret = (gJobPtr) malloc(sizeof(gJob));
if (ret == NULL) {
fprintf(stderr,"out of memory\n");
xmlFreeDoc(doc);
return(NULL);
}
memset(ret, 0, sizeof(gJob));
/*
* Now, walk the tree.
*/
/* First level we expect just Jobs */
cur = cur->xmlChildrenNode;
while ( cur && xmlIsBlankNode ( cur ) )
{
cur = cur -> next;
}
if ( cur == 0 )
return ( NULL );
if ((xmlStrcmp(cur->name, (const xmlChar *) "Jobs")) || (cur->ns != ns)) {
fprintf(stderr,"document of the wrong type, was '%s', Jobs expected",
cur->name);
fprintf(stderr,"xmlDocDump follows\n");
#ifdef LIBXML_OUTPUT_ENABLED
xmlDocDump ( stderr, doc );
fprintf(stderr,"xmlDocDump finished\n");
#endif /* LIBXML_OUTPUT_ENABLED */
xmlFreeDoc(doc);
free(ret);
return(NULL);
}
/* Second level is a list of Job, but be laxist */
cur = cur->xmlChildrenNode;
while (cur != NULL) {
if ((!xmlStrcmp(cur->name, (const xmlChar *) "Job")) &&
(cur->ns == ns)) {
curjob = parseJob(doc, ns, cur);
if (curjob != NULL)
ret->jobs[ret->nbJobs++] = curjob;
if (ret->nbJobs >= 500) break;
}
cur = cur->next;
}
return(ret);
}
static void
handleGjob(gJobPtr cur) {
int i;
/*
* Do whatever you want and free the structure.
*/
printf("%d Jobs registered\n", cur->nbJobs);
for (i = 0; i < cur->nbJobs; i++) printJob(cur->jobs[i]);
}
int main(int argc, char **argv) {
int i;
gJobPtr cur;
/* COMPAT: Do not genrate nodes for formatting spaces */
LIBXML_TEST_VERSION
xmlKeepBlanksDefault(0);
for (i = 1; i < argc ; i++) {
cur = parseGjobFile(argv[i]);
if ( cur )
handleGjob(cur);
else
fprintf( stderr, "Error parsing file '%s'\n", argv[i]);
}
/* Clean up everything else before quitting. */
xmlCleanupParser();
return(0);
}
-57
View File
@@ -1,57 +0,0 @@
<?xml version="1.0"?>
<gjob:Helping xmlns:gjob="http://www.gnome.org/some-location">
<gjob:Jobs>
<gjob:Job>
<gjob:Project ID="3"/>
<gjob:Application>GBackup</gjob:Application>
<gjob:Category>Development</gjob:Category>
<gjob:Update>
<gjob:Status>Open</gjob:Status>
<gjob:Modified>Mon, 07 Jun 1999 20:27:45 -0400 MET DST</gjob:Modified>
<gjob:Salary>USD 0.00</gjob:Salary>
</gjob:Update>
<gjob:Developers>
<gjob:Developer>
</gjob:Developer>
</gjob:Developers>
<gjob:Contact>
<gjob:Person>Nathan Clemons</gjob:Person>
<gjob:Email>[email protected]</gjob:Email>
<gjob:Company>
</gjob:Company>
<gjob:Organisation>
</gjob:Organisation>
<gjob:Webpage>
</gjob:Webpage>
<gjob:Snailmail>
</gjob:Snailmail>
<gjob:Phone>
</gjob:Phone>
</gjob:Contact>
<gjob:Requirements>
The program should be released as free software, under the GPL.
</gjob:Requirements>
<gjob:Skills>
</gjob:Skills>
<gjob:Details>
A GNOME based system that will allow a superuser to configure
compressed and uncompressed files and/or file systems to be backed
up with a supported media in the system. This should be able to
perform via find commands generating a list of files that are passed
to tar, dd, cpio, cp, gzip, etc., to be directed to the tape machine
or via operations performed on the filesystem itself. Email
notification and GUI status display very important.
</gjob:Details>
</gjob:Job>
</gjob:Jobs>
</gjob:Helping>
-8
View File
@@ -1,8 +0,0 @@
This is a MacOS port contribution (not to be used for MacOS-X)
for the CodeWarrior environment.
Please contact the author directly in case of problems:
Eric <[email protected]>
thanks,
Daniel
@@ -1,267 +0,0 @@
(This file must be converted with BinHex 4.0)
:%faTBRKYE$)ZE@0`,RKYE#jcDA3!8dP8090*9#%!N!3aG3#3"!p[8h4eCQC*G#!
SBbNa16Nh,6)`-$%J3@aKC'4TEL"6HA0dC@ec,#"*EQ-Z,#"SG(4`1Lm[Gj!$,Q&
XB@4ND@jcHA-ZBfpY,e0dG@CQ5A3[$3SD!!83!!!aG3#3!h)!!3#3!h+,E`fPT9*
PFf9bGQ9NTD8!TC!%!3!!2`!3Z$,!1,Jb`$J!N!d2*kd!#kD6!!!`S!#3"!m!E'P
LH'eX-LjYBh!ZH'eX!!#Ec&4&@&4$9dP&!3!"J!!"!*!+J!#3"d,"e5%1mE,3PTT
e%qciJM!83K&J"3$c)Ci-RLl*Jj&KYk6LMHPcX8k"VfYVbpc+6J"MIMCMT8+`(1i
58pfYfaf$DRNpGF+I2Uqri(%MYPj*RHkh`84'!1b-(0aakcC-j6S3IbdRP[K!N!!
Liq5aS+@E&STcZ'NAH!p%'FU(UeiGbT[LIha$)jh2$NMlf2[[ah9a-IlElkZ$PNe
V4iS[!jVf@LKE9h3B+[8)Qk#MlZ$k+DpGa,5eMaXSC2%EC*FhFlaJYNTakfZJpF*
f#Sm53bfNiMV@RKXN4)`K%+6k`C!!ZKeM9'-J6C0HG!!qG1#fH0@mSZeZG0$IBSV
%iP%Nmkpb#T8%YRU9"ilEN!!HjfD"iMpY'AD20KerK6rD28Vja6Z)X,lJ2T`KSU1
H9d5aXqEDfLe2abB[!bQdYH03K5MPm6YP,#"p9@(3iT[,0A!M-LHV&V0RSkAdBCS
Y+r-2[FK6$BVPQ(82mEHmlI(fXpVHR,AKe!K)AHN(hKdrr$1LqkTR`X#Cd*MUBje
T`JL@D(NDaKedj!DVqVK2H)40b20B86$%`f5)E"Id`#5,1YK#)fl3@'D5!-S5"(X
d`K2J(&*8GP6FfUqS@5kY"DrqT5jXN9Ep'U6h(eRrAP@fF+qqQ4SBP&hi1["!U`e
CL9`1Gq!X0RLRlE0rBHN,`hmJV2ZMJhCFHFMEj1IV(55eh[M#F"C)i,-*jH-*%$)
kmPpSXLS1AA9KH)Y9MRUYaJ6m2f'AURTca'-409*)aQ''XIpFV[2Tb&0A!U9`CDD
aM(19P!G`[1L[NmTPEm0C+&['U-a6TkJMjN0Lf+#C'M4F#+H[mf"TN`i5&p%Gq4'
2Gq+P&PG$$8AF3Hcr`+a`+UAi!GI'P+Vj1&3@e+hkaK*CHd6ll1ZXGaN5I1Hip@L
frl+%HQd#Y%*I0[b*YbeUClA$90Nq1bq+9BcE'JJhJ,(ELMQj45#D0@la%&(DiT@
0J-$8Dh!PD6d@1UB'a(Ra)a'3!)6JX*U+h5rS#YP%I4!Y$$kf+FTJV8X@+b5+D,#
MIR9Ha3erq+fpl&kp[BQ4M-RSNDeC%280dXPZ9@JAA1mQ`YKCNI4cNrjZm121rm(
0hFQdJ0%hEe&L8P"8Pd$!Tqi4ElJa+akC*Mrfdfk"GeJ`*1hP#Ne1E,Db[hGcq*%
XD4QeT"p5SX*EYZNA81#,HR)+*J`A*S-C&eB&%eVjFcG"F"6DPQl0V4D$`9k!Je,
-"j*-EXIERUe&@lAFCfl!&APmZYINP'2+'RHYS1mehXCEUAGYbKe%DGJPB9i-H!i
HPPe1'#18`-UaSjNFMmi$r5V901iYN!#i1(rY[S5#@M+ZQYV)U)3-MPDcDX"hNpG
KaNXjbTZP18(Sd9kLM@"i@"[3JQ+T8Pk1VYYYrB"3KTqQMFG"918VEN80GP-CEq6
82'-3GhThLj%Z,jNb+lHEA-Uc@lLrrLq,9phe'8kpPKfCY*&TjMLU2[I$HF6qZ2R
XFZM2bfkjr,il23`S+3#IrMTUjLDFi"JdqD'[QSFh!5ar3Kdh(,*HPELp(bc*PZb
90Jh'iT2!PIJ)D&+RqMH8ZIJSLXakp@q6Xh4b%bBf%QJG`U%Fa6kiCE*Pad(&dLp
1fP33pMiFc*-KMk+RQNBAf3d2-A'5k'HIrM0k*Le0e1A@![39*ICcm23M$!85JlX
Vr-+BrIE$L!8"bQ"pXcIlKVBY2EhdNlSN4*mhp@+Jm#i"c1@e5*,j8J)b%QB%fU"
0&ZNqAeQc%L&AZZ0lpp6UjCXXj[%m'qS8+4Dra&+E!JQF6c21$h,0mZYF3D[NiGr
#2d!aZID(m!hc2!)AMV(bKPEe9lf%*qK+T2V3RDe`)+YRr[QmNriTXaIIM@-BTI+
pH1pY+%AM0HR*$%C9#Ghr(,Imk[#([a)RFVZ#B%`r53(GZmRSG8`L!pJQ-&(d(U&
CD&UL@cYdZ&j0HEV'rFja@c`IPQ*GbZ6MKIMEFEPF)+YY[+KK9k9JDp4-$MKm0rr
RfQQ6T&%!V#BS2Ukq2Sq*28`)`fI$TRBph'X%)SfQ0V*8-ia5Y20rTAI-8"f,X[+
9BVIMdj&c5"jM6GfI'P$0b5"2V-*#QI5M8RlIY$U&bSe'[V%&J63`Y-C-SQPI@NK
KKLD`qaEFU'#RI$ZCE,pB+F@$+GD8L#JDjG2H1ALUJ23+'J&DB-fEiAEmI)-H%ME
C!21@cP1+rPPfEN+Mi@AkN89a4jC6S38,Y-+!82'L",+(89rIVQLqD)&56ZiI!BM
dEKR[NTPASR@R)S3D8lNrjX3$c[h%jlVrVkU5C(ebrk(d@Xj-KQ,XPQl0j&G#4X3
e-Z3Lkl+Y,E1GB,DkQ1IK(ibLB%k-KpTUEm[kBhZ9h1HFmC&$H(AB,`Mkl8H"Dq,
DmAI0cI$iUG8&cMHR#Gb`@r,`'NM0SYH'NB6qbpYp[q0$e`I[SJi[5F[iHrKAY8p
XTe%##-l)kQL4V!@[r`UI8pb,2MT0PL3jUX2ZJ#Qp9e9+Cjp`S0$cT,5ZB@Zl80D
HFQeDT8HRD*!!9+Kk(9[,h9$DNa'(5l5p#9*lP8i)hS'lPaBQV4lXkFP60Zi-fi,
44'S@mHA9q@V-(`Br`,j2R,4GaKPMDhF%#Z1NLfJr@'f`9F+dk,dq1%KTYN,`9dD
2'&#UjmDIIK3VZ4*&ld5YraQS)!0`2BjN6pU8CJ(JCT)m'kTh)(9"Aiq"pHkV*mb
E$&Y6FdXGqA9dF46dEEd'emEhcGT%q@AP+H"PfE8aq4B6p3K3Vf`mPB+&hh1kNrr
Y)aY"IEC9PA)Z'kBjp3Q6Flqr@Gk2M2*pY@ViVlea*R5E%$S@BqC#q9m)hj08`ki
q-!22J4GALA2Gf-r8NJpMV10V9AVG"3Ji(mbAf!4hB*[U"Z!k`i#JHp(Vd+!)[6i
&Mch&2ph54+DTXqlRr#8r'Q%3cXh%aNiiEf14l,M'8J'f(L4MA,4a&%d2j@*m1,j
V'8%ZdI$$(NJY#ZUUhFp`9MBd2S4Bkc[8X`HdBCEYlTC9&lXD%DqK5QIE%C8,E5U
rD$3hjp`ZM#Lc4iRf!3q3!&f@Jl'DF6-3jiM15-l@@@Z0*1c-B)PfNL$BqZ,XYTV
PA0`C+db3!#C9!j0`5MplSdBhU1kE1EG-h@Kja&kr#*(BcrV'l5B6TCZ#NK8rpC%
"(RD0TCl,5p8D5iT5QFpmf!$)-6XQ3deZC6A,LB6MJ2,5m&e+2YF,C4RaL2-"+59
YS14-rVrF#2j!P!RaqRbRqJ0Y-dh@D5)"qpe")lVT4A5G4bA,VXcHp88p)eGB#&D
Zpm1ZAr+5@r+Q80@Ad4%FHFPr-HPFhPMhFA%K*Vc$)S&4bqP%2a8R9(P45+Ff#9f
Q%KTj`&S'Rf@UN@S&Ga%&dUaA8LMXSX%%)-br8E3LB5*Fq2BMbe-8eEGcLc'kM4J
4UQDX$DDAGJ0(ZH&G5PV&5+#cXDU4JAT+rQ"8'[e$GhklGBN'VdeB62A*rr9X9fL
QYGqf-!%II"MXa)kFD%afKXieB#)ZbqB9MXA(lm1'YBEc5JNKd6"JNa'fX[J+Gi+
l6Ue*EXGq4#*-3i+dij0i"qV%@b+`U(rF(Gm2!`QMl08FeY[LMdhU,@-kaLa!NUL
Gd(-,Z96mRc4'miNaf!"FjKl)-E5U#*UXBR)HVI(Y"#qR!M[N,Jk%@Y-UYqmFihK
9Gh"0'%HFr%*A0iq3!+JGHhlia$%BqDjVaiSAk@0#R9F3UbkXM2Bi-j,2IY[GCmd
Db#BE9QUTNGG&-9VaR`kc[aDi"MfZ3QRIQiK&!1QQU(bMa!&iLY228pZrqI[1Zm5
!TGRZ#4QPD*PbBC,C&ZILe%68Dj8,2ebjd#H'ZUbeY!miLR)[U-K-TZRQ)&h'IdJ
HC*NP#3qV+jiL`[4"e+Eka%EM4ZGik@UfL5a+DqI[eXJji`"SK!mdNkYFCbaL-$e
i@$[MB)#(f5)f#a%%BS#TTLQkhX95Lb2'YJpDHCce#QB*[hhN5N,a1#dYQ%YE@m(
SV'hKeM`U8Hcq-'+Gm,eaIC`8`T`)Qmh3R"EhFlX2m`2Sf9!Y299Jr%[cj'a,&@l
aq(DNk&&a+ZRh#JR(@(EdmACB5Q"XZmXX@ECVDGj%JD$Cca5r-!&!0D`2R)jqL1[
qF95MLX@N"ShEM2Vd'iN6fU@P',LfcARZ`2!2R*Z"er[MBLchA)0B%`SJjV)&-"D
pS4(X[VDdU5[Hh!rfr9a5Gp*2L4b5lX+ML(%@`ZlL`$ZK*6liZh$L!r9j$2P21G9
j#qJ`2e+K2(qQ5&P!m5kACR[60`P80eU!)0pLk*X@5VrJN9INKI4cIl3V,QXFIi0
lRp5UQl@qiLR8l3d`C2J+dLTB*KrVf#C)Jh$-bmFXjB(H+4aBbK&!+VJf"MpHPIm
ap,JI1m(H)q[K#A2HK2S4Q5J'Y9VF(8H@@5)h&r@$r(FiPpSMAL1SBJm"2m3!R"C
[+JFMkK0e$GSPMZe0`l"qdHET4`%plD0Lq$-J0bdB&bZH+P)6Zr-Z2-S2F)%R!f3
N9Z`@2GIU+1I2YA6AUf-)"!U,B[L!DT+%9AG'hCN)&AIr*8p2c"bMA2#rMJb-85N
#"B6F+b-rSp'GfD[2"$PLe-9*5!qAR1*VFeiC1ZcSq`CrrMNU-#56h55Mh%1*XUD
h,1iP42BABKR"efD6%$BD`5a))&jdieSj02V!'4YcU#ahYFMhRkrNcLlcS+'a%(P
l`),$rh"cqCj*k3'AAK-+q%V-"5M51JSC@M'KQA[)d[ja*-Lb8VmLJ-&MdB+AJq!
VLQjFBTHNG8CYUVbJlN*$Vp5,Q(4ie&3QYVe8UJ9Qh%T+e,Q(IAU8YKfSp8QA6Y+
Bf69`3pER5R[#[M5Xmq1@SPaqp5$(rfmK!5j2LE1T@hJDV94f,I,[0MbAqP5Hh"K
-)G-q`dVrj@-c@#BPKb+r#&FQr#dK'h(@,B6"LaqAhhGA'+j,Xh$raYdDlk%CbC1
+KDaRqPDYJFIaBCbH,-bk56Se0VXF2Q[P%9GXa!4imM@5h93HhdidM#*M5Pp5mTS
&I&*1J[BK1R*kP-+f)DAbh9Zaki8+P-Q'$i)XB568d`Mp1FUflbbV`LF#CXPDikb
$Ve3rdC2R*YImeT!!H03R+9`Z*XJf@0@C&Fc@Kd%ZdU[kELrqHi2+R#2$LE1F*Ec
dfZJlieqTAHVa"Kq)U((5N9@)fh#ERTT!Pc5-$-$4r!T8$+2X9kKL2i['Shd!EiM
)4i3H2d8q5[Bj#q%aR[RZ$[`"5%4+SCX+@ZPIL``qiLU@T%B2JMa$J0`%[l,c)jY
a'+FrEDI14dMD)M1cf3JDUScE05PD"5PKmhm9bp9#9Z9'9E)8ir+@8Ec+FV"`GRc
1qpmDG,Y$VdN0UCNebp*'r2)CllpIa%1`$'eN+4#UCib4#CVKGMqm8!CTYQR'RBS
4T&JQUIVld64'Z,fQ(aN*B84m'ERb+`$`ec)a'&p&(j%Q3m%'5ppVQEF%H%ZT!F%
DTam+apNGm@ij$-`[9+XR8F)kBm[,%k$AV!Ar1lIKiP8*p0P*BU62-SJ,(lATG-M
&VaKj*FqH+Y$5MKSH!3!q0+RqC8aZNMf%!AVi,[M,[N8H'Gi4XG@K`AdGIbX`h@X
`!f(DTZ(X6XmF$T19-CC8a'Zk8,K`&bpkR,4,1965R(E52!qbXA!cjG`X0$qD9Bd
Jql)[&+&S9Fmrf)P$PGa-Ld#h'EAR(2a+ALC&9CPNbkTEJLZRiij`KrBZ9X3FrBp
1NI'k8kH'j*LRr3LCT@F#"A0*[DT-pXpj@aB[#qhL'cYPP8E8,#BXVRYV0ca20N4
49j9e%"8%9[@[Lbp$qLSiQ6,Hq$VCQcN2[5Sqe6,kbiThV335N!#eIf#*d6pmcc1
"FCJ9jlVkTBEbIdDSVdG#NBG"jBTMk*!!KLVS5XCY#!b)&PAVrDC"14THIl*0dMb
iX,MM'VG`Am&&f*&TEE8%$JZVVF%A$*`lCjm!ki"EfLHAr(5mH3M#i+hU(Hm!fc0
G3h1MLJ,-2bYFE!!'e58MMiHS#'kXdSDLa`qmLI[qkHUfM4mZLNIEaj&`TU3B#Lh
8p3lD-j`@943Am`E"Y&LF[DpP`&F20UU'4Sa,&@$!dXRbU[E0)h)UKKG#0+*3lFK
*-`UGrdCkL$*93-"I96'Db@rDNed5)3h(4H,@d6`5VjZV@84!fc(4NNNe'h"BfpT
cU(5'#X',[p0[+`c`C!`Y%V6@e`hTLb0T18GE`BSpR!AE-5QbeTdYrV@6R12C9pJ
!I6U5QqRBTf2(JiSb*!&BGQ4Zr4"#`PMV2DQGMq#%JqI`GbJEfem0e8iUr,YR6rP
1fZ9iTAcV%M0[53rN5J+V$!m#HbIGQpDM#(XI"`e0Rm+LeK!'m$Jb[PT!D"2kaTQ
PD41V,6FqQV6@1)K"f#iS#mP8R4,1e%I'+HJ-TXZK2%X3iipeYIGc(89aU`I@DIG
[Nd*i4dRYrDHCpQ-MA3@(pPh&QUXTJam9crlBpYcle9b51Y%Kh4LY1@*NbVr"@Be
A5r1*ZQ9AD#FYPS!40QVa`j4RZlB2Vrb3!-)RV4"M5iRQAMqb&41`XV1l)1%CQIP
DGkD-$)dDLi"aKGp)ZeqimRbl2#$[DaG&5$TReaa,T'S-$R(+q)$%iJQ#G1@ZTkc
3aTj9hi,55L0Xk`4pF4FEMX2i"9KXr,LPekQ)MFIM`22D$*+1R-$0+'VU1CQd3$M
#F$DhBUb8mA#pdM`0'AZC`[mTl+'6LXA+XdfRf34G1[LDipik`D3`M$iMaXfcA(q
99[@03r[28S&&pC30RB@ZTHbkcC1P$Z4DRfAeb2c&1fQK*GrEH$ePaiBrRL(c*55
Uq&V0@QP(B2afNiQS[&q)e+[22Iq&2KlG(0p(F"#DjF#Jf*b*Qm%#V,DYbN2"kaK
ML90PE4@5C[p"KNMKE,mqcfEQD9V2@qb1"dHBC&KdGlEba&*4@U,rC9DfrdRj6K,
ldb`ZCSQ+XNNEANeD0N@%r6NhNL1mm'9F+hP6J)RBiHT%-fc4eck,(21H,FL0Qp4
4&r5VV&(NS6U"9#%'[pPCDN3J%YfPp,NdmSHMS$iP9q,CkBRrdcQ9)92bkR@+(8+
2Yd1F1@HJ&+iED,d!K8qdNRr+%Bd[!@8YN!"@'R(pm#GQE%C,Z2mKj$mNUjKUf4'
Teq#1"dB$',jhRET3j*&b'*XN0pNbXSTG[`CEJjiH!3U5(Sp21C0*SEJrF3l2KZP
f`h11DA&Qif9)$-$mjB59qcBU4QNXr1"keDI@GLTkpUc'Cfrh-qP$Tb8h46[1'%`
`l!ZrjIL!)RNVP93+(h)r8f1!14(+,`08Pl6p,42dl,0HIVa&EVIPVc+ff+9(pK"
%'$$!iJ2N9r+P!Gh#6kBX*64pp0&4%'L@YJGMqp(D%&10MLkk'E(1&YMEX9kG(kj
fFMfEdMI3+)!3*XD$@$4ep81ljV!9Z)X#j'CL1QbNi[#k-mGSH#`@P-Y8Gf3J"ER
mVKd+28pjVK&H6ZPHQGlIC&)[hR+V4RZEPUk`rdhhhq4+e@Q#Zja(HQqq1'kZ*[+
r[VlqA3YpEQMHL6d)+r%i4@A@SI*Y[c20(KHk)$)NlU0!Lj5KEM#V#Qqhb)39T)m
%If#X8'aG0VFNREEY9[B"LqM-"D,F*Y--VM2EjY'0#+%`V&@'0aVV)8rF8+*3l5Y
KKd!3h@lrBaTCpjEi1&KSD`A+Q$-KX2rLr8(,"`4FjiT2+K5G09ZDZ[1-eA!B)G1
N03#`H568SX$iUK@e'2iRT!+l8,jibK)c58qcFIVSZ'mlX5$Uqmk8U3Sf`R$K9!Z
M81R%r)Zb*TPjZP$D4Ga2(d"pp8'&U563((EF*CS5`H!'h-qhG,6-cfURU#JGfDr
LfEEGV)&1M"Q3!+1ZMpZ+E6U*`Uj[2#b@`3hP)ZCqh((-e4FKA)Jm'+[SAG(14[)
9b6(eG(GiDNbK$ThUDbmK,RJHPe82a@MY6&jj&[bK!3'X5f'9JD1I2D$23%*f,'S
pNdN&UkaaCUCIF`ZHBLBC5bYq!,A-(3Yi5-pe&H"lV@4VEj0`L$h3U'kqp(rL%aq
h*hjN*ZFd*lpcA`1CUN80lJN03f9)5HM@HjV[bP2P!JBMl"RS1rPMY"U)XmibF)R
I5A(hFa,+TQ5kmF&`&-rS!r%-jJMBLM#ICV6lC9RhkaTh$3jkML1[DqY`&8b&q#1
%+K,lpe3TH[6i+(hdhlN2ZX*3E30V+C)[1R2Jkk%$)$amb1@BdehidBEG!MAi3h!
3B1Gd'IrTqY60bD*4l1U2bafI*I)48c68prXT5fmRJ4CqhaC)0CKfHTJUKGp)E+J
QX&)!VmAk3!T(rrDRAFIj8#DKF#FmNRM8L8r6GJqS@6lc9d@KQNK)Kmd'ILRI#m$
3e5+KTf8AriK0%6B065QEb2apXF9(E5[$c68k%r3R'U0biTSG+1A9U-YJUL*@ffM
!Kl,pQ`JEiVK0&M!@AbfdX&R$Ce*"rch"Ea4fm8CmPFkSM5b&L6BNeCDFT28F+cR
j(J&X"f*UU6!B!C5caJl`qT4%A*UTN!!BRh2BUl0Q[Bjeldik2A-U&H)N#$+BfAY
+HD5HI@BFS@lI',mkFU%)hTXZK#8`5b'LD'-5ULKi*X,30-q`BGq1@UZ"U$+lia'
cb3CK'UG-kfD9d@+fKUU*VQkEk@#ZL1k!qq9m(%#dhpF@%I'N$$iN!k"ALFrE1+'
$$Q6rJFHPMk&S+H2$lrC@,IAQ6)PAHiU8@dmQlRZ&*mYKD*40&-LZRcQDbAbM-j4
lp$d35aGj2q1F1)43TUpSHca@r0#P,9G4+Q6,[dPL)3q6UARe[FY-*Eiq08N!KKd
b'I5a)D6jdZ4BIEiK&6fX433Kam*S@ceYd4#qL!-91*c&%RY4mIj#ELKf-c$+j5l
3P*m#Ii5a0LKSXrLEYVEpcJ0([&`(6RN(&q&frRNB[hB[TZSjZFTY(!5aP+k,#BV
!8jaSX`qirr&TSa2a*-rb#ERNIC@bU)@i-I*"TYEeQAVD-Nir+X2Kl$'#Be44+d*
N$$QJKBXmN5UXB5m@@%T@pPrKacq$'3LP$('80+YjYdf"j$K4r&0lGELAM#pf4D)
14SUH4hb$Kl)'r%N3l`N5c5+[B*3XZC!!2G+'rQ-rU#&kL(bbbjX[a#a$D6bmKaU
K)E)@KB668cG"M5"+lZ@DYB9&Q3pqckb6,8Hr[BN%)YMZ-DS8IfS9cfli3dJ)#5U
3!,Dl3U(9eQaEc'`3ZB1lrSHYK`&+E"GT)qS"jG`-"8'1NYDAeqbEENcmZEI9JG@
FJ-K"%Z2RZrLL&CY'P8KQ"#Z(LS'1HbP'SmbB!hj%Y3-M2lKY#XD1l`NPr2YpL[G
p6YF8BqH0`PT1D884$-Dpp`XN,F3%&Dqbr%QRBTE@AINe5D("mkY+UpP(NH,1YXc
)ie221a'3!(@10a&DY+18d-e3F+,eKCA*(V3RSp&eR)",f8E2Me"j)HU4H)bT4ST
p(HE"hbe&CaEDSJ&d9p(2JX+2)8%T-,jAQQAG)l&FaIp@U&L&-IGZCLe[jDjh[%h
"mNC529(I"HE&Z[L*09QhYXFPd+aG6UKf,hIhbF`bNXDpV8Q,8YP,A!rlfDm1qaF
pcaSh'kTk5LjJL(dh,AlifN3CCd&9kPTk,X&B@MN0c0kmrUhci#*(cj%q0184%P@
+62ELf@0HC4D'`l!m`,2VeGFPmAkN98fF&p(fN!!H'i*GmKe4C3#+N`Vq3a[DA)L
#b#kjf9V6Emk2iIKCBMc$dj@qTm2-hq4pfdSqjPM[E(5eTeZ'1-+MELGTQj!!!A*
rQ0V%'jGp3"4FcCVAN!#BHZ,5UAh+LI[+aU'DPLcAhhE3lGI0r[ff$6+YSIE#ir"
98L@%YZXV&R0JaZb8rKPkY9VJ-rKI)jChGP,DpG!DVj!!Ch5CE#[A%40%PdJ`ER+
U0PjXF%LADA`bKm9@*MTA(fm4E3DILCaeB"1CRZrh(MX1N!#FBpIfPh1RQQBqMjp
hIh&MAUjRI#1hXE)!X9l-P(2hKqKfiChFkE8[2JPQ%i3Hi18([a)JhfB9)%@NaAb
4C'k@F$MGp2)leMbkdYGa%eH!"R`KFEc3KHBA,ENbkGekhYhUUH&GQ4A*i3YSlYT
!9V[2VM'-%H5l8c0Ml63[ffljh9VDrD*HeICH2qkl&lLepPB(LL-QC61dQUbXipK
VfZ$qP%hE&bm-NT)`NU'-6Q1PSYEV@ciV!Fl3rL,jXe)5f---"K'lP#jKT5@6U49
dBRpSTU+2LS1iB44TJ,c0C@fqPcUN&lR8D-MHAjblAPMF,T!!f$$J[H%2b[(`a2V
!j&ZGNbSpGH")"3D1-d&R[&ScPCK35-`KhZMm`H%hKU(Z"BD[Kq2X-X'I+!9cUHq
c[Ed6T0LRdU4pBXYA#SZkaKK*`+22Hd$S!(p8A6MMq6[HNRrH'84hi,06GcS6)M+
EN!$dVrC*[r@Mh8d%,eZdjYJMANpL2ak+b4Tj3f3++-DNYAEe@jl(Z%A5kc*"l!J
A,eP"Ihd#lkhED'V[j9'BZa#i2(#BZ`KSGi5p$eMP)qRT'-Y-qd5T*AYJC4FfmJp
p!6RJ`MCR24'(QledJDVENlD,alX8QXcP6XR,-f!Np8kI)YhBqa)J@KYjHUqQFT!
!Q*m4j0C"Ke0H1#`+'Z)DdC!!P$qmXU1eRU%qXN"K%i$S8@6fJ8%'9%0N)&Z@M$c
C9[c!hp0i4e9)qXNTIemr(N"AFB3$@Bfe861h1h""#e8RF06BHGGep3DDD@+C+IC
j6dHD"M9plFIVBa8%-U,EU5VUjPA("8[8&X3F*PHM'PUQ3PKX@3N"&ZdjhmlRcr5
`m3fF3348Vc95&NK`X+61RGdfZ"RBM,'*"aQ1&He(91[2hha'VB9F5dc5RTS-YlN
@J1XMS68pb6QDIfA-kL*lr,#@[6[R-4SI--iD9&B,K3%m1cYHBkHcFI`DAJ9cN!!
5%pN%NYM2(PM#6c*Zqj1lTreCT-C%-mcmd"HkZLX(@iiqE2D1(lqNKGN-bmZS1UP
D6$'RAN'8Gm3P8"km2lQD!3KBhN-b!m(X5iq0RNqh`IDP3f"SiSpZM[b0l`L#PE@
GaKjJr12$YL'()jmIU,L`MD1XY&M!`qDQ&p'pL#-#[0+$dCYTN!#*kb-i#1`PGUr
820-ENP%JRTVP3'`XVZ@c,$T-a34dB-+KS9)bSTMK8dY&Z"-*d,a$VXPA$E(icT6
fI[EN"T*hJ1ZHd281K1#,$j[YRL3FXca'mF8khR,ZkKa6YYeJa#D3!,ra36"cHJJ
Ki+'3!'XL"9HQ*jU@UjQI8#'+dd8r'hIRDpd"[eUKC%I+VFIUrM$J!lQbGYdK,V*
R'f!RFqMYNBZTN!!R(M%Bm9D,eqNC2(d&hf*DrfY0UC)`h3m)jC+d@+PhZmCf[(L
i%"2+@iRD!kB1`FK4(lbjP$aKRGLi6eRA!!KJ6dBX3drdH@V',NR(82GfS*2Ah%b
QKc+IJm,)F5m(!Q9S#jdX0mCCUZH0j@dReFCm@rE`lI@)Cp8e,0&U$FS$)i1F8BA
06(%cC(-9k)r-C60ZE(%Z9icHl1q#R@V1!$D1MrRjL6J`Tf&#eb`P!&Z*2+CMKa[
e+3G80!Nh!1E%dTrb[H'3!)Fbmq03UYUQfKeqTPkAc+HNIrkb9PP(14eNIe2b)k3
65Q"qqq*rZ`'0S)3eG,,`AX+04NPYp3p"BGCL)I,Ta2mhC%5",Ub!S6K8,mq`YYP
1dj5Xmb+eA-kbKX[DPZ!M*TeN@A6$A*c2CI!d)9#P%c6&-3T6V!Qq`9@U*FB#fY0
f*)MD1LGaihP0S"r6X54GI*8j962*GMPI4"fpdhkDC4KJSXjAp5p6'c")LP+X821
-@jA'6VU[68+$b+5J0fP6@9!Y++,2*K66q&a#E,qRbD@qS(&mXJLp3'-L1@AAkL4
K@#(mFl8F68JN8Yh'L6--qL0#403RL2@Fl*J6kQXr8U-R*lLGP9'6ZITYJA32UFN
Fm2$2e%S,qP+Qcq3e@M9l3BSk4,LNZqRb0D++"E2"f5Q`"QrE&!8rI@`*eH"`IV3
X3c*)BC%khQX[NjMlliHcm$Pq!rflL-,'"2F3m[`jT+f8mZp`-$1SYdMLBSLYY1G
m"pU[M2cJ4*Q[)M!#lGfeI2eS$EeE9&38q)*'ehPbmY2pSi0iX%%!(2HGFG-Lb(I
MA$T'55UIMHfp)[qZVA`iHF)A"c&E*Z,TrZp,M5B#&I3A(VmYG54!%iI"`LeVQ(Y
6RGdTr6U#!k'VLrkkJpPjmQX66Yl1[4SSf*B+BjpVfpBa9&)KZphfFhTre8D,#`q
her!mfD5+rVPr8c$(qMh!R,k4b@lm2MpRZC[Q2RTp2M!M1**2J'-br2Br[`r-h[r
1IG2dk!V&YN)4lIaEZdKHMkBPHam*MVVNSZV8hNiVlQa9E8L$H8D6'[qK6rarr"6
Il0VAJ9&Gr&RhM'P+1E@X5TkGK4[14"i+EKP6m`ib6mKcm'Ym$-e3+VqkY)mFYEI
U#YVQ+r6%90+r&B5T"(RGS[VBq@DD*l@)4LmNY53-kkFp'LbhfSZ&5$j63%[5ilG
$JNd+HiLi*SkKKB0PAi"Y5495GF48lcVmHkL1UB1[[INqP8kPB`ai#q-(-,Z8YI2
'bml`q@eU#H66D)LHGHh8dmQe+PQc4*`,bqa9Me0ddq0'h%GPcU'5(,52kr80!%r
8p6H%DGGHjGjdflF)qYCk5BYZ91l@&S'6U0VJ9@em6'#H5CH#%*5CG6p[pJJ0a[-
6pq+R'heN6!)[bD(Ch'E*NbaZA@m'h@5rdMr1R5+TlA4C4AEp55cm4Q%P!h*le2,
'4[4J1R#Q%q13!![-lrI+Q5aQcd(R"&pcJ%RJ9dBP4VCQ`r*JlCceY0I2DlFB6[0
!VhITUJ#(,69+d3`98pkKC9!Np,Yr(9b$8QVSaY3BIl3,BJbJX9[LjU1c&PKMFDG
4VhUKME$Y"bXYr[dRhAH0*LJ0G9+r&VlRaHKDF@!TX2&+6I"*iMdm@!CUde@C"AD
i,,h)pNpDmGrR!Pf@d6d+m,*L4NA1Q6CKReAQY",Q,43reH`SXA$&@2K0A`$#5aU
f(dSd6S9kK['l6Jj0qhel8BYa[PqK0V9BBX@rQCXr6lEL,5lhiA9p0Ye%1q11fMb
MNecMU3aH@dRe&lA[XMUrCcaL#)%0EaQ##-0TCBT*I6,d3e+#aGkqpai3X[l5#dD
SIYlc'6"(J3-P*)X"ehiL8d3Dr#jJh`V(G`[[JYmFDLD%(j6@b%Pc4UU,arF)#Sh
&"G``)M[)BD$"D3J5KNTdJd63$1SH'd%3PXBFhICG[VH)m'I4r-#)EmLZ!b4DECe
+c2kKfEYU(8bLYIR(`ULj2[%PmMpbi+rG*!HCG[h(S02efTp"h&la(E(MYSE2Dkj
[JeBI-Nj"j14JUBe39hla'6rCHU9Y91bm`T-'`qpZbUNEp!$9mA,XT,QcZ)XFJr#
3!*DR9hr14YS,9NrN&k[(@`6!Q9kCreGQK#DQIX3#4ZjFrhY2f93E%K6DckX14dR
9LbG##jijr9,!XY9r"2iZGM#EU@3KqcpZNa14KAZqPkBAB`"`jA&emSrZ2qcU5'J
cB-h3TKGhA+)aY(!Zq)akeKPPqpGlIRciHXBZG`5CImR4d)'lFdbZ)%MrY,-%b5[
LZjN@b8!#fQCV&q4192U1GcfdYU!NU0!NMaRFEr`a[-$0Vr@@rQk!VAfJBH+NGeQ
M11pI,6HCaG[He9cG"p8L!([cAE4AI4dIh%D)T6YQm&A(r1F9*+Far&TIaJ(pN!$
[rj!!h+Hhr*ZYbr5KG-k-'edr-kRC0b*N*aK$%[0$rGE$KTm[b8[aP'VJ3pH(Xiq
rj8hTmi8`YFHH'%0EeP!Cr!8C`%hIXMSPMlATrD[X(#%Q@k[(b!-FE[FH13$pJ-C
RRXk+$D`MAT&'iU1"Vq6"G8cQYi6V)6I0CNr2l@mVrQ5kH6Uaj$VJ*I22q2iTqFl
SEGGD+b8M$H3RU5Br2ph-DC!!#[Q$bVkEH+Z[K#HK$A#03AEbI+Hf-U@jc(D8$2X
NbX#ER+%4&1KCQEPb+K(Ud#@6+hG@qd4"96#3!1LM36ZM'5AK$5m0A+5F)bQQC[G
&[#eQYhM0992'P02j6Ii)j62#(TT3NQU'Y4FN!*R!0L&!m#J)DekGqh#b8KR8qdf
GRP2GAP-KiU!L"B%*Sk5d5)6EaH#)[PIDY%S1@r*6qYD5UVY)!6#+`rCT90@@9Pe
f2`GT'%#NQ#rGViDr-TX*c4h*ZF&UDGhd8#EVl2LPpXTG,1UBF+D[#,LFFA'M6hk
aJlBC8ddU!5Jbm*cPYFM`F6U4T3P"cP5M4EI0#+a8Q&2*TZfZ$l3IHC-,JBb`J%Z
M`R!22V-D@MMYTEq0m*B$""L&-$@R%596"[Y'"qFra9-Ll2Z-cHJL[EXIP'YaGET
P'3DN&iTMTYek#5*m+A@ETbN-G05Sc1+XHL(!DZY!%dkdDD6R-hV,'3Ikh+&mSN&
-$+H4C`,MB)CXi!6q#APCi06hY-'MNZSFYk)HqJTBrM*2fl@e2TE3,dRPR3l'SjS
G+-r!A3fY2ah6+jU&d+ri0$T43"64%'$1#d6LUFZ92*J)LB*L!Qk[(fX1er@U!4%
Llp(48ifPZ"mbC[CZfd+SP`!`D9p(TPP,TXVfC4Xm8Dj@CqdY&8jm(+Y4&LfUEL&
P)G!9k1%F5EXQAZZkZcKeG"+M(VS9++C3`L(1*0B$Q9P`1[I00-iHaEaJ!$*#K*!
!9I$I8E4Y&N93S$IC+3YfR"!"rR+SU0YPEL+0FM`*IpkDSHLXH4$#SVXmC6[%'bf
3!#I5Af,bTHD$ik9fPDU"*TL8I#!9$8r9bK'KX@R21k6B#Q+#8d+(SHA-G$0p%Fb
Y+*IGiF,D"rkEcVBL,Tq*PhSSM''Y65ddf,lBF-6FQVaEV6BZBqZVIi,VCa2`N9J
ldk3`Tf0jM0@3!2fZqZ80lVFI!k`AD2LAf`AV$pie&$'BpGPE,2&q)&mpa01GL"i
I,aVddjPG4NUYPi"QlZN[N!$D0Q0`$q6@5-Zi)d[%6%26i2M8K(,#@hLj#-EA6!J
pKr$AaV*JP@S"IMX)VFiPjm@N[Y&"bXdQ,A+YYih0"P`dH5VrG$Ij"aT#N!!b,3q
HVfA3*UBE`AMTjm[f,b$bB3c"NC!!-RIDMC%$8k,emVqD@Nb(qjMPS$iF@LSm)r`
lE#GT$83$1MriQh8q`dC'm1`E(k86FZ@a@T'JXQXT(f-!VbbiQ(bG+qKIdf4Ik@j
AX6mhU1l[#@e,M-r%66H2Ecm+FX2FDX"IpEBpL(,SGMTb$lD0SmTe(X0&qLaA,ji
VR!lL`lU1aERrM1d%bPK1'KqK%LV8XZD%U4cMK#3ik%bi&Ccc!m(maEM)c%#[l4h
kBhF(8Pf-Y(9V9b6mi,&XRMmpY4-XeQS9cl&U,liFY-L@**E)$rGS&Ej9("ddMEF
kpV9"led`(i5pIXPjjCKL(C`8qFpbj"&6V8A6c*F5G@EMACK6'N$alR2-0(`$FPB
la`e#rPpr`"MIBA"V,VV$)`M@Mal5S)c5l5HQB+ZK8AVAR'Qi(`k+T('9+)95H0K
@9Z4lE'-,T3fV0,CIUm#i%ReI*aGc01!)k1+IkjrhcM"eZ$DD&RrXGH86d'P4I`'
Ib4#'LU"mH`+!d&q''ilmFe!cl+"'aak)[&'NBEFeUMI'`l3+%ircfca0iYef#1j
*c2,QihC"$T!!jTT#c,fl,c4HcK[-&0aER!$%Zm@k1`2UfL`8+KH(2b3Jbh&-TAf
%Xk!d@RqR+c`)%D',mBMNb1$9iI'`%SY0-Z"!Z63*%Q&-hRKKL$-,84KUQ`raX#'
RJRpA4,@-*iM2MaAH*`[apdZ`QK$5rdAd+d2H$&10b`RKB!"A61'$!f9(HX[2pSp
j)R#*3Z5aT6p+"T!!1`lrFHp2TPchN!!9aHdQeYLBr(DbIP%%hd0(N!!YUZkEQ5Z
+6#P"dQ5pbYpS%BTRb4PUB58'@fSCjfBSF#V*5MNiRdihbSGSYdU5*9NPiT6i4XB
Ge[1'E#V`AEpDcD((Y"b3!*f6S!F(ilCmBh)$Y@(cNE5hDpJqj[qH8QVXQ!'C"k-
&Jf!H0a5"h6@"0UXcCPNSQa@2$1B(1bM'6TMZ51ATGpTfN!!M6[l[QJI"%l((dX)
TlV0E-qd[KFI46`9!1YJj`SY`"VBaC#jCDj*iEjhN3dLFN5@'e0k5"Ck'@pdBXaD
,#ElN(2A4[pJ-PJPA"*[V['1DSBqKGG,ahhJCqffGdUT$4q"ddpLQBm9NbeRkA'`
eDqB!k2qVPc-b%D$PPCBkjU&2G*-#Z6L#E6qKI`l5ZCr&"6Vd+FBiNNFdLi&h5G+
dQPQ'm$@5Uj[S6ZSJ6G*8GMc6Zr*Dkkb"i)3NrD&4rVpJZXkH*kq8G2IhLacGU,%
h!-(A5hc8TV1&M!XRD,5-cEc%6[pB&CFJl0(mEq-!DcQi5D%%B3jqT-&!-kl[edk
Pl-E0cVFIA"'&H8'K9hS5eZEr`VTD%&NV&%&iGE%I%&FiX"YSa$KpRmGeB&AcT0i
Iad9M6U(d9mR#$Lq@iZa'*iKN`XLdh68@-"*LN!$64'++F,d`dHA$CSPm2*D"R6H
BTI1#V$r5949LiNdJ*"HZ0a,M9IA8!2!"fL&(2kiH,!YYUP1)3!bFKq#F2)Gd62r
dG)S[eX,fCrm4ipd-QrJH-#"b6-6[jd0I0bL"JHb$fQ!q!%F8R80cVjMJ$RFrUkT
LKU2BML-FEDhN`'8D!!!:␍
@@ -1,3 +0,0 @@
int test_main(int argc, char **argv);
#define main(X,Y) test_main(X,Y)␍
@@ -1,3 +0,0 @@
int test_main(int argc, char* argv[]);
#define main() test_main(int argc, char* argv[])
-201
View File
@@ -1,201 +0,0 @@
/* config.h generated manually for macos. */
/* Define if you have the strftime function. */
#define HAVE_STRFTIME
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS
#define PACKAGE
#define VERSION
#undef HAVE_LIBZ
#undef HAVE_LIBM
#undef HAVE_ISINF
#undef HAVE_ISNAN
#undef HAVE_LIBHISTORY
#undef HAVE_LIBREADLINE
#define XML_SOCKLEN_T socklen_t
#define HAVE_LIBPTHREAD
#define HAVE_PTHREAD_H
#define LIBXML_THREAD_ENABLED
/* Define if you have the _stat function. */
#define HAVE__STAT
/* Define if you have the class function. */
#undef HAVE_CLASS
/* Define if you have the finite function. */
#undef HAVE_FINITE
/* Define if you have the fp_class function. */
#undef HAVE_FP_CLASS
/* Define if you have the fpclass function. */
#undef HAVE_FPCLASS
/* Define if you have the fprintf function. */
#define HAVE_FPRINTF
/* Define if you have the isnand function. */
#undef HAVE_ISNAND
/* Define if you have the localtime function. */
#define HAVE_LOCALTIME
/* Define if you have the printf function. */
#define HAVE_PRINTF
/* Define if you have the signal function. */
#define HAVE_SIGNAL
/* Define if you have the snprintf function. */
#define HAVE_SNPRINTF
/* Define if you have the sprintf function. */
#define HAVE_SPRINTF
/* Define if you have the sscanf function. */
#define HAVE_SSCANF
/* Define if you have the stat function. */
#define HAVE_STAT
/* Define if you have the strdup function. */
#define HAVE_STRDUP
/* Define if you have the strerror function. */
#define HAVE_STRERROR
/* Define if you have the strftime function. */
#define HAVE_STRFTIME
/* Define if you have the strndup function. */
#define HAVE_STRNDUP
/* Define if you have the vfprintf function. */
#define HAVE_VFPRINTF
/* Define if you have the vsnprintf function. */
#define HAVE_VSNPRINTF
/* Define if you have the vsprintf function. */
#define HAVE_VSPRINTF
/* Define if you have the <ansidecl.h> header file. */
#define HAVE_ANSIDECL_H
/* Define if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H
/* Define if you have the <ctype.h> header file. */
#define HAVE_CTYPE_H
/* Define if you have the <dirent.h> header file. */
#define HAVE_DIRENT_H
/* Define if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H
/* Define if you have the <errno.h> header file. */
#define HAVE_ERRNO_H
/* Define if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H
/* Define if you have the <float.h> header file. */
#define HAVE_FLOAT_H
/* Define if you have the <fp_class.h> header file. */
#define HAVE_FP_CLASS_H
/* Define if you have the <ieeefp.h> header file. */
#define HAVE_IEEEFP_H
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the <math.h> header file. */
#define HAVE_MATH_H
/* Define if you have the <nan.h> header file. */
#define HAVE_NAN_H
/* Define if you have the <ndir.h> header file. */
#define HAVE_NDIR_H
/* Define if you have the <netdb.h> header file. */
#define HAVE_NETDB_H
/* Define if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H
/* Define if you have the <signal.h> header file. */
#define HAVE_SIGNAL_H
/* Define if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H
/* Define if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H
/* Define if you have the <string.h> header file. */
#define HAVE_STRING_H
/* Define if you have the <sys/dir.h> header file. */
#define HAVE_SYS_DIR_H
/* Define if you have the <sys/mman.h> header file. */
#undef HAVE_SYS_MMAN_H
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
/* Define if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H
/* Define if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H
/* Define if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H
/* Define if you have the <sys/time.h> header file. */
#define HAVE_SYS_TIME_H
/* Define if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H
/* Define if you have the <time.h> header file. */
#define HAVE_TIME_H
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H
/* Define if you have the <zlib.h> header file. */
#undef HAVE_ZLIB_H
/* Define if you have the inet library (-linet). */
#undef HAVE_LIBINET
/* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL
/* Define if you have the socket library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Name of package */
#define PACKAGE
/* Version number of package */
#define VERSION
/* Define if compiler has function prototypes */
#define PROTOTYPES
#include <libxml/xmlversion.h>
#include <sys/types.h>
#include <extra/stricmp.h>
#include <extra/strdup.h>
@@ -1,79 +0,0 @@
/**************** BEGIN GUSI CONFIGURATION ****************************
*
* GUSI Configuration section generated by GUSI Configurator
* last modified: Wed Oct 31 17:07:45 2001
*
* This section will be overwritten by the next run of Configurator.
*/
#define GUSI_SOURCE
#include <GUSIConfig.h>
#include <sys/cdefs.h>
/* Declarations of Socket Factories */
__BEGIN_DECLS
void GUSIwithInetSockets();
void GUSIwithLocalSockets();
void GUSIwithMTInetSockets();
void GUSIwithMTTcpSockets();
void GUSIwithMTUdpSockets();
void GUSIwithOTInetSockets();
void GUSIwithOTTcpSockets();
void GUSIwithOTUdpSockets();
void GUSIwithPPCSockets();
void GUSISetupFactories();
__END_DECLS
/* Configure Socket Factories */
void GUSISetupFactories()
{
#ifdef GUSISetupFactories_BeginHook
GUSISetupFactories_BeginHook
#endif
GUSIwithInetSockets();
#ifdef GUSISetupFactories_EndHook
GUSISetupFactories_EndHook
#endif
}
/* Declarations of File Devices */
__BEGIN_DECLS
void GUSIwithNullSockets();
void GUSISetupDevices();
__END_DECLS
/* Configure File Devices */
void GUSISetupDevices()
{
#ifdef GUSISetupDevices_BeginHook
GUSISetupDevices_BeginHook
#endif
GUSIwithNullSockets();
#ifdef GUSISetupDevices_EndHook
GUSISetupDevices_EndHook
#endif
}
#ifndef __cplusplus
#error GUSISetupConfig() needs to be written in C++
#endif
GUSIConfiguration::FileSuffix sSuffices[] = {
"", '????', '????'
};
extern "C" void GUSISetupConfig()
{
GUSIConfiguration * config =
GUSIConfiguration::CreateInstance(GUSIConfiguration::kNoResource);
config->ConfigureDefaultTypeCreator('TEXT', 'CWIE');
config->ConfigureSuffices(
sizeof(sSuffices)/sizeof(GUSIConfiguration::FileSuffix)-1, sSuffices);
}
/**************** END GUSI CONFIGURATION *************************/
-17
View File
@@ -1,17 +0,0 @@
#include <GUSICommandLine.h>
#include <stdlib.h>
#undef main
DECLARE_MAIN(test)
REGISTER_MAIN_START
REGISTER_MAIN(test)
REGISTER_MAIN_END
int main()
{
(void) exec_commands();
return 0;
}
-261
View File
@@ -1,261 +0,0 @@
$! BUILD_LIBXML.COM
$!
$! Build the LIBXML library
$!
$! Arguments:
$!
$! "DEBUG" - build everything in debug
$!
$! This procedure creates an object library XML_LIBDIR:LIBXML.OLB directory.
$! After the library is built, you can link LIBXML routines into
$! your code with the command
$!
$! $ LINK your_modules,XML_LIBDIR:LIBXML.OLB/LIBRARY
$!
$! Change History
$! --------------
$! Command file author : John A Fotheringham ([email protected])
$! Update history : 13 October 2003 Craig Berry ([email protected])
$! more new module additions
$! : 25 April 2003 Craig Berry ([email protected])
$! added xmlreader.c and relaxng.c to source list
$! : 28 September 2002 Craig Berry ([email protected])
$! updated to work with current sources
$! miscellaneous enhancements to build process
$!
$!- configuration -------------------------------------------------------------
$!
$!- compile command. If p1="nowarn" suppress the expected warning types
$!
$ cc_opts = "/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS"
$!
$ if p1.eqs."DEBUG" .or. p2.eqs."DEBUG"
$ then
$ debug = "Y"
$ cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL"
$ else
$ debug = "N"
$ cc_command = "CC''cc_opts'"
$ endif
$!
$!- list of sources to be built into the LIBXML library. Compare this list
$! to the definition of "libxml2_la_SOURCES" in the file MAKEFILE.IN.
$! Currently this definition includes the list WITH_TRIO_SOURCES_TRUE
$!
$ sources = "SAX.c entities.c encoding.c error.c parserInternals.c"
$ sources = sources + " parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c"
$ sources = sources + " valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c"
$ sources = sources + " xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c"
$ sources = sources + " catalog.c globals.c threads.c c14n.c xmlstring.c"
$ sources = sources + " xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c"
$ sources = sources + " triostr.c trio.c xmlreader.c relaxng.c dict.c SAX2.c"
$ sources = sources + " xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c"
$!
$!- list of main modules to compile and link. Compare this list to the
$! definition of bin_PROGRAMS in MAKEFILE.IN
$!
$ bin_progs = "xmllint xmlcatalog"
$!
$!- list of test modules to compile and link. Compare this list to the
$! definition of noinst_PROGRAMS in MAKEFILE.
$!
$ noinst_PROGRAMS = "testSchemas testRelax testSAX testHTML testXPath testURI " -
+ "testThreads testC14N testAutomata testRegexp testReader"
$!
$!- set up build logicals -----------------------------------------------------\
$!
$!
$!- start from where the procedure is in case it's submitted in batch ----------\
$!
$ whoami = f$parse(f$environment("PROCEDURE"),,,,"NO_CONCEAL")
$ procdir = f$parse(whoami,,,"DEVICE") + f$parse(whoami,,,"DIRECTORY")
$ set default 'procdir'
$!
$ if f$trnlnm("XML_LIBDIR").eqs.""
$ then
$ if f$search("[-]lib.dir") .eqs. ""
$ then
$ create/directory/log [-.lib]
$ endif
$ xml_libdir = f$parse("[-.lib]",,,"DEVICE") + f$parse("[-.lib]",,,"DIRECTORY")
$ define/process XML_LIBDIR 'xml_libdir'
$ write sys$output "Defining XML_LIBDIR as """ + f$trnlnm("XML_LIBDIR") + """
$ 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
$!
$ copy/log config.vms xml_srcdir:config.h
$!
$ if f$trnlnm("libxml").eqs.""
$ then
$ globfile = f$search("[-...]globals.h")
$ if globfile.eqs.""
$ then
$ write sys$output "Can't locate globals.h. You need to manually define a LIBXML logical"
$ exit
$ else
$ includedir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
$ define/process libxml "''includedir'"
$ write sys$output "Defining libxml as ""''includedir'"""
$ endif
$ endif
$!
$!- 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
$!
$!- move to the source directory and create any necessary subdirs and the
$! object library
$!
$ set default xml_srcdir
$ if f$search("DEBUG.DIR").eqs."" then create/dir [.DEBUG]
$ if f$search("XML_LIBDIR:LIBXML.OLB").eqs.""
$ then
$ write sys$output "Creating new object library XML_LIBDIR:LIBXML.OLB"
$ library/create XML_LIBDIR:LIBXML.OLB
$ endif
$!
$ goto start_here
$ start_here: ! move this line to debug/rerun parts of this command file
$!
$!- compile modules into the library ------------------------------------------
$!
$ lib_command = "LIBRARY/REPLACE/LOG XML_LIBDIR:LIBXML.OLB"
$ link_command = ""
$!
$ write sys$output ""
$ write sys$output "Building modules into the LIBXML object library"
$ write sys$output ""
$!
$ s_no = 0
$ sources = f$edit(sources,"COMPRESS")
$!
$ source_loop:
$!
$ next_source = f$element (S_no," ",sources)
$ if next_source.nes."" .and. next_source.nes." "
$ then
$!
$ on error then goto ERROR_OUT
$ on control_y then goto ERROR_OUT
$ call build 'next_source'
$ s_no = s_no + 1
$ goto source_loop
$!
$ endif
$!
$!- now build self-test programs ----------------------------------------------
$!
$! these programs are built as ordinary modules into XML_LIBDIR:LIBXML.OLB. Here they
$! are built a second time with /DEFINE=(STANDALONE) in which case a main()
$! is also compiled into the module
$
$ lib_command = ""
$ link_command = "LINK"
$!
$ library/compress XML_LIBDIR:LIBXML.OLB
$ purge XML_LIBDIR:LIBXML.OLB
$!
$ write sys$output ""
$ write sys$output "Building STANDALONE self-test programs"
$ write sys$output ""
$!
$ call build NANOFTP.C /DEFINE=(STANDALONE)
$ call build NANOHTTP.C /DEFINE=(STANDALONE)
$ call build TRIONAN.C /DEFINE=(STANDALONE)
$!
$!- now build main and test programs ------------------------------------------
$!
$!
$ lib_command = ""
$ link_command = "LINK"
$!
$ write sys$output ""
$ write sys$output "Building main programs and test programs"
$ write sys$output ""
$!
$ p_no = 0
$ all_progs = bin_progs + " " + noinst_PROGRAMS
$ all_progs = f$edit(all_progs,"COMPRESS")
$!
$ prog_loop:
$!
$ next_prog = f$element (p_no," ",all_progs)
$ if next_prog.nes."" .and. next_prog.nes." "
$ then
$!
$ on error then goto ERROR_OUT
$ on control_y then goto ERROR_OUT
$ call build 'next_prog'.c
$ p_no = p_no + 1
$ goto prog_loop
$!
$ endif
$!
$!- Th-th-th-th-th-that's all folks! ------------------------------------------
$!
$ goto exit_here ! move this line to avoid parts of this command file
$ exit_here:
$!
$ exit
$ goto exit_out
$!
$!
$EXIT_OUT:
$!
$ purge/nolog [.debug]
$ set default '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$parse(source_file,,,"NAME")
$ object_file = f$parse("[.debug].OBJ",name,,,"SYNTAX_ONLY")
$!
$!- compile
$!
$ write sys$output "''cc_command'''p2'/object=''object_file' ''source_file'"
$ cc_command'p2' /object='object_file 'source_file'
$!
$!- insert into library if command defined
$!
$ if lib_command.nes."" then lib_command 'object_file'
$!
$!- link module if command defined
$ if link_command.nes.""
$ then
$ opts = ""
$ if debug then opts = "/DEBUG"
$ write sys$output "''link_command'''opts' ''object_file',XML_LIBDIR:libxml.olb/library"
$ link_command'opts' 'object_file',-
XML_LIBDIR:libxml.olb/library
$ endif
$!
$EXIT_BUILD:
$ exit $status
$!
$endsubroutine
-218
View File
@@ -1,218 +0,0 @@
/* config.h */
#define VMS 1
/* Define if you have the strftime function. */
#define HAVE_STRFTIME 1
/* Define if you have the ANSI C header files. */
#define STDC_HEADERS 1
#undef PACKAGE
#undef VERSION
#undef HAVE_LIBZ
#undef HAVE_LIBM
#undef HAVE_ISINF
#if defined(_IEEE_FP) && (__CRTL_VER >= 60200000)
# define HAVE_ISNAN 1
#endif
#undef HAVE_LIBHISTORY
#undef HAVE_LIBREADLINE
/* Define if you have the class function. */
#undef HAVE_CLASS
/* Define if you have the finite function. */
#undef HAVE_FINITE
/* Define if you have the fp_class function. */
#define HAVE_FP_CLASS 1
/* Define if you have the fpclass function. */
#undef HAVE_FPCLASS
/* Define if you have the isnand function. */
#undef HAVE_ISNAND
/* Define if you have the localtime function. */
#define HAVE_LOCALTIME 1
/* Define if you have the snprintf function. */
#undef HAVE_SNPRINTF
/* Define if you have the strdup function. */
#define HAVE_STRDUP 1
/* Define if you have the strerror function. */
#define HAVE_STRERROR 1
/* Define if you have the strftime function. */
#define HAVE_STRFTIME 1
/* Define if you have the strndup function. */
#undef HAVE_STRNDUP
/* Define if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
/* Define if you have the <ctype.h> header file. */
#define HAVE_CTYPE_H 1
/* Define if you have the <dirent.h> header file. */
#define HAVE_DIRENT_H 1
/* Define if you have the <errno.h> header file. */
#define HAVE_ERRNO_H 1
/* Define if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* Define if you have the <float.h> header file. */
#define HAVE_FLOAT_H 1
/* Define if you have the <fp_class.h> header file. */
#define HAVE_FP_CLASS_H 1
/* Define if you have the <ieeefp.h> header file. */
#undef HAVE_IEEEFP_H
/* Define if you have the <malloc.h> header file. */
#undef HAVE_MALLOC_H
/* Define if you have the <math.h> header file. */
#define HAVE_MATH_H 1
/* Define if you have the <nan.h> header file. */
#undef HAVE_NAN_H
/* Define if you have the <ndir.h> header file. */
#undef HAVE_NDIR_H
/* Define if you have the <netdb.h> header file. */
#define HAVE_NETDB_H 1
/* Define if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define if you have the <stdarg.h> header file. */
#define HAVE_STDARG_H 1
/* Define if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the `strftime' function. */
#define HAVE_STRFTIME 1
/* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP
/* Define if you have the <sys/dir.h> header file. */
#undef HAVE_SYS_DIR_H
/* Define if you have the <sys/mman.h> header file. */
#undef HAVE_SYS_MMAN_H
/* Define if you have the <sys/ndir.h> header file. */
#undef HAVE_SYS_NDIR_H
/* Define if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
/* Define if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* Define if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1
/* Define if you have the <sys/time.h> header file. */
#undef HAVE_SYS_TIME_H
/* Define if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define if you have the <time.h> header file. */
#define HAVE_TIME_H 1
/* Define if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1
/* Define if you have the <zlib.h> header file. */
#undef HAVE_ZLIB_H
/* Define if you have the inet library (-linet). */
#undef HAVE_LIBINET
/* Define if you have the nsl library (-lnsl). */
#undef HAVE_LIBNSL
/* Define if you have the socket library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Name of package */
#undef PACKAGE
/* Version number of package */
#undef VERSION
/* Up to this point this is just a hard-wired version of
* config.h. After this will be anything else we need
* that is VMS-specific.
*/
/* For best results, compile with /NAMES=(SHORTENED), which requires
* DEC C 5.7 or later. For older compilers, the shortened names below
* are the same ones the mangler generates in C 5.7 and later. These may
* work, though there will probably be some conflicts with redefinitions
* in globals.h.
*/
#if __DECC_VER < 57000000
/* 0 1 2 3 0 1 2 3
* 123456789012345678901234567890123456789 1234567890123456789012345678901
*/
#define __xmlDoValidityCheckingDefaultValue __xmlDoValidityChecking3qad3pq$
#define __xmlSubstituteEntitiesDefaultValue __xmlSubstituteEntities0pij13u$
#define trio_locale_set_thousand_separator trio_locale_set_thousan259ikkk$
#define xmlDoValidityCheckingDefaultValue xmlDoValidityCheckingDe1bcsei4$
#define xmlParseBalancedChunkMemoryRecover xmlParseBalancedChunkMe1lu1e86$
#define xmlParseElementChildrenContentDecl xmlParseElementChildren1mp6pcb$
#define xmlParserInputBufferCreateFilename xmlParserInputBufferCre36lujn2$
#define xmlRegisterDefaultInputCallbacks xmlRegisterDefaultInput3vin0cp$
#define xmlRegisterDefaultOutputCallbacks xmlRegisterDefaultOutpu0q443dd$
#define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDe28k2c80$
#define xmlUCSIsAlphabeticPresentationForms xmlUCSIsAlphabeticPrese2qr24s3$
#define xmlUCSIsArabicPresentationFormsB xmlUCSIsArabicPresentat1gajvg8$
#define xmlUCSIsArabicPresentationFormsA xmlUCSIsArabicPresentat3sq1bti$
#define xmlUCSIsCJKCompatibilityIdeographsSupplement xmlUCSIsCJKCompatibilit0or40ki$
#define xmlUCSIsCJKCompatibilityIdeographs xmlUCSIsCJKCompatibilit2nodmc5$
#define xmlUCSIsCJKSymbolsandPunctuation xmlUCSIsCJKSymbolsandPu0a3i7ra$
#define xmlUCSIsCJKUnifiedIdeographsExtensionA xmlUCSIsCJKUnifiedIdeog11ig3fd$
#define xmlUCSIsCJKUnifiedIdeographsExtensionB xmlUCSIsCJKUnifiedIdeog3d22n2n$
#define xmlUCSIsCombiningDiacriticalMarks xmlUCSIsCombiningDiacri3tj3nl8$
#define xmlUCSIsCombiningMarksforSymbols xmlUCSIsCombiningMarksf3ftqd7s$
#define xmlUCSIsEnclosedCJKLettersandMonths xmlUCSIsEnclosedCJKLett0nq67g4$
#define xmlUCSIsHalfwidthandFullwidthForms xmlUCSIsHalfwidthandFul047l0a1$
#define xmlUCSIsHighPrivateUseSurrogates xmlUCSIsHighPrivateUseS071kh83$
#define xmlUCSIsIdeographicDescriptionCharacters xmlUCSIsIdeographicDesc1rovf8g$
#define xmlUCSIsMathematicalAlphanumericSymbols xmlUCSIsMathematicalAlp2ag8r44$
#define xmlUCSIsOpticalCharacterRecognition xmlUCSIsOpticalCharacte1juuh06$
#define xmlUCSIsSuperscriptsandSubscripts xmlUCSIsSuperscriptsand3fi4eup$
#define xmlUCSIsUnifiedCanadianAboriginalSyllabics xmlUCSIsUnifiedCanadian0lbvi9b$
#define xmlValidCtxtNormalizeAttributeValue xmlValidCtxtNormalizeAt0q11n5f$
#define xmlXPathRegisteredVariablesCleanup xmlXPathRegisteredVaria1uvs4uc$
#endif
#define xmlBufferWriteChar xmlBufferWriteChar2
-192
View File
@@ -1,192 +0,0 @@
--------------------------------------------------------------------------
GLOBALS.C
105a106
> int xmlDoValidityCheckingDefaultValue = 0;
111,121c112,113
< #if defined(VMS) || defined(__VMS)
< #define PLATFORM_VMS
< /* int xmlDoValidityCheckingDefaultVal = 0;
< * int xmlSubstituteEntitiesDefaultVal = 0;
< */
< #define xmlDoValidityCheckingDefaultValue xmlDoValidityCheckingDefaultVal
< #define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDefaultVal
< #else
< int xmlDoValidityCheckingDefaultValue = 0;
< int xmlSubstituteEntitiesDefaultValue = 0;
< #endif
---
> int xmlSubstituteEntitiesDefaultValue = 0;
>
289,291d280
< #ifdef PLATFORM_VMS
< gs->xmlDoValidityCheckingDefaultVal = 0;
< #else
293,294d281
< #endif
<
316,318d302
< #ifdef PLATFORM_VMS
< gs->xmlSubstituteEntitiesDefaultVal = 0;
< #else
320d303
< #endif
404,419c387,390
< #ifdef PLATFORM_VMS
< extern int xmlDoValidityCheckingDefaultVal;
< #undef xmlDoValidityCheckingDefaultVal
< int *
< __xmlDoValidityCheckingDefVal(void) {
< if (IS_MAIN_THREAD)
< return (&xmlDoValidityCheckingDefaultVal);
< else
< return (&xmlGetGlobalState()->xmlDoValidityCheckingDefaultVal);
< }
< #define __xmlDoValidityCheckingDefaultValue __xmlDoValidityCheckingDefVal
< #else
< extern int xmlDoValidityCheckingDefaultValue;
< #undef xmlDoValidityCheckingDefaultValue
< int *
< __xmlDoValidityCheckingDefaultValue(void) {
---
> extern int xmlDoValidityCheckingDefaultValue;
> #undef xmlDoValidityCheckingDefaultValue
> int *
> __xmlDoValidityCheckingDefaultValue(void) {
424,425c395
< }
< #endif
---
> }
577,592c547,550
< #ifdef PLATFORM_VMS
< extern int xmlSubstituteEntitiesDefaultVal;
< #undef xmlSubstituteEntitiesDefaultVal
< int *
< __xmlSubsEntitiesDefaultValue(void) {
< if (IS_MAIN_THREAD)
< return (&xmlSubstituteEntitiesDefaultVal);
< else
< return (&xmlGetGlobalState()->xmlSubstituteEntitiesDefaultVal);
< }
< #define __xmlSubstituteEntitiesDefaultValue __xmlSubsEntitiesDefaultValue
< #else
< extern int xmlSubstituteEntitiesDefaultValue;
< #undef xmlSubstituteEntitiesDefaultValue
< int *
< __xmlSubstituteEntitiesDefaultValue(void) {
---
> extern int xmlSubstituteEntitiesDefaultValue;
> #undef xmlSubstituteEntitiesDefaultValue
> int *
> __xmlSubstituteEntitiesDefaultValue(void) {
597,598c555
< }
< #endif
---
> }
--------------------------------------------------------------------------
TRIO.C
113,116d112
< #if defined(VMS) || defined(__VMS)
< # include <unistd.h>
< #endif /* Platform is VMS */
<
123d118
<
--------------------------------------------------------------------------
GLOBALS.H
78,86c78,79
< #if defined(VMS) || defined(__VMS)
< int xmlSubstituteEntitiesDefaultVal; /* 31 character name limit */
< int xmlDoValidityCheckingDefaultVal;
< #define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDefaultVal
< #define xmlDoValidityCheckingDefaultValue xmlDoValidityCheckingDefaultVal
< #else
< int xmlSubstituteEntitiesDefaultValue;
< int xmlDoValidityCheckingDefaultValue;
< #endif
---
> int xmlSubstituteEntitiesDefaultValue;
> int xmlDoValidityCheckingDefaultValue;
211,226c204,209
< #if defined(VMS) || defined(__VMS)
< #ifdef LIBXML_THREAD_ENABLED
< extern int *__xmlDoValidityCheckingDefaultVal(void);
< #define xmlDoValidityCheckingDefaultVal \
< (*(__xmlDoValidityCheckingDefaultVal()))
< #else
< LIBXML_DLL_IMPORT extern int xmlDoValidityCheckingDefaultVal;
< #endif
< #else
< #ifdef LIBXML_THREAD_ENABLED
< extern int *__xmlDoValidityCheckingDefaultValue(void);
< #define xmlDoValidityCheckingDefaultValue \
< (*(__xmlDoValidityCheckingDefaultValue()))
< #else
< LIBXML_DLL_IMPORT extern int xmlDoValidityCheckingDefaultValue;
< #endif
---
> #ifdef LIBXML_THREAD_ENABLED
> extern int *__xmlDoValidityCheckingDefaultValue(void);
> #define xmlDoValidityCheckingDefaultValue \
> (*(__xmlDoValidityCheckingDefaultValue()))
> #else
> LIBXML_DLL_IMPORT extern int xmlDoValidityCheckingDefaultValue;
317,332c300,305
< #if defined(VMS) || defined(__VMS)
< #ifdef LIBXML_THREAD_ENABLED
< extern int *__xmlSubsEntitiesDefaultValue(void);
< #define xmlSubsEntitiesDefaultValue \
< (*(__xmlSubsEntitiesDefaultValue()))
< #else
< LIBXML_DLL_IMPORT extern int xmlSubsEntitiesDefaultValue;
< #endif
< #else
< #ifdef LIBXML_THREAD_ENABLED
< extern int *__xmlSubstituteEntitiesDefaultValue(void);
< #define xmlSubstituteEntitiesDefaultValue \
< (*(__xmlSubstituteEntitiesDefaultValue()))
< #else
< LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultValue;
< #endif
---
> #ifdef LIBXML_THREAD_ENABLED
> extern int *__xmlSubstituteEntitiesDefaultValue(void);
> #define xmlSubstituteEntitiesDefaultValue \
> (*(__xmlSubstituteEntitiesDefaultValue()))
> #else
> LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultValue;
--------------------------------------------------------------------------
XMLIO.H
79,82d78
< #if defined(VMS) || defined(__VMS)
< void xmlRegisterDefInputCallbacks (void);
< #define xmlRegisterDefaultInputCallbacks xmlRegisterDefInputCallbacks
< #else
84d79
< #endif
130,133d124
< #if defined(VMS) || defined(__VMS)
< void xmlRegisterDefOutputCallbacks(void);
< #define xmlRegisterDefaultOutputCallbacks xmlRegisterDefOutputCallbacks
< #else
135,136d125
< #endif
<
--------------------------------------------------------------------------
XPATHINTERNALS.H
433,436d432
< #if defined(VMS) || defined(__VMS)
< void xmlXPathRegisteredVarsCleanup(xmlXPathContextPtr ctxt);
< #define xmlXPathRegisteredVariablesCleanup xmlXPathRegisteredVarsCleanup
< #else
438d433
< #endif
-143
View File
@@ -1,143 +0,0 @@
Issues in porting libxml to VMS
===============================
Here's a summary of the issues I encountered when building LIBXML under
VMS. There was some VMS support in the version I got, but it was a little
out of date with the result that some newer files had problems.
I present this list "as is" to hopefully act as a guide to anyone having
problems in the future.
That's it. Good luck!
John A Fotheringham ([email protected])
October 2001
Updated October 2002 by Craig A Berry ([email protected])
Installation kit
----------------
- File attributes. Having downloaded essentially a Unix distribution, some
of the file attributes weren't correct... especially those in the [.VMS]
subdirectory. In EDT you could see line feeds and carriage returns as
<LF><CR> etc. To correct this use the command
$ set file <filespec> /attr=rfm=stm
This sets the record format to be "stream". Other variants may be used
instead depending on how you got the files onto your system. Files will
look okay in an EDT editor once the attributes are set. Without
this the command file may not run correctly, since it may be interpreted
as a single line.
- VMS-specific files are in a [.VMS] directory. If you've found this file
then you already know this :-) This directory contains
BUILD_LIBXML.COM - a build command file, which I've radically re-worked
CONFIG.VMS - a configuration file to replace config.h
- Don't execute BUILD_LIBXML.COM until you've done all the following
- read these notes
- reviewed the configuration section of BUILD_LIBXML.COM, and in particular
updated the module lists in line with MAKEFILE
- identified the location of the include files, so that you can manually
set the LIBXML logical if need be.
- re-read these notes :-p
instructions for all these steps are below.
- the file [.vms]config.vms is used in lieu of a Configure-generated config.h.
This file contains a number of define statements that identify the software
options required under VMS
- The include files are in a [.INCLUDE.LIBXML] subdirectory. You need
a logical "libxml" to point to this so that include statements of the
form
#include <libxml/parser.h>
will work correctly. The source files are mostly two levels above this
directory, although there are some .h files there as well.
- The command file BUILD_LIBXML.COM will do the following
- setup some logicals
- set def to the source directory
- compile modules and place them into a LIBXML.OLB library
- compile and link a number of self-test programs
- compile and link a number of utilities and test programs
- set def back to the original directory (i.e. if it fails you might not be
where you started :-)
before running this command file review the configuration segment at
the top. In particular compare the lists of modules with those in the
most recent version of the Unix MAKEFILE. Instructions are contained
in the command file itself.
The command file will attempt to set two logicals
- xml_srcdir. The directory containing the source files
- libxml. The include file directory.
It attempts this by looking for modules globals.c and globals.h in
nearby directories. If this logic fails, you'll need to manually define
these logicals.
The TRIO package
----------------
- A sub-package TRIO is used to provide some functions not naturally available
under VMS. These include support for infinite and undefined numbers,
and specialised print functions like "snprintf"
I had to make several changes to trionan.c in discussion with the author
(hopefully these are now included in the distro, so I won't list them here)
To build this software we need to add
/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE
to the compile command for xpath.c and trio.c, and to any main program
that uses this functionality. BUILD_LIBXML.COM should do this for you.
- to build in trio support you need the define WITH_TRIO to be set. This
is done by default for VMS in xmlversion.h
Compiler and linker errors
--------------------------
- the DEC C compiler may produce a number of warnings when compiling the
C code. These include
- Implicit function warnings. These indicate functions whose type is
not defined in a .h file. This will probably only happen if your
configuration is not correct (e.g. for "snprintf" if you haven't
edited xmlversion.h to set WITH_TRIO
- uninitialised variables. Not usually a problem. You can solve this
by editing the code to initialise the variables affected
Changes made to the codebase
----------------------------
- I changed all dummy declarations in trio.c to be
va_list dummy = NULL;
to prevent compiler whinge in TRIO.C about uninitialised variables
- I had to add the following to nanoftp.c
#if defined(VMS) || defined(__VMS)
#define SOCKLEN_T unsigned int
#endif
This matches similar lines already added to nanohttp.c
- Several variables and function names exceed the 31 character limit
of the VMS linker. The solution adopted has been to use the
/NAMES=SHORTENED compiler option, which requires DEC/Compaq C 5.7
or later. For a complete list of the names that needed shortening
and the short names generated by the compiler, see [.vms]config.vms.
-7
View File
@@ -1,7 +0,0 @@
Makefile
config.*
depends.*
int.*
bin.*
*.win32
*.win32.zip
-342
View File
@@ -1,342 +0,0 @@
# Makefile for libxml2, specific for Windows, BCB6 and Borland make.
#
# Take a look at the beginning and modify the variables to suit your
# environment. Having done that, you can do a
#
# make [all] to build the libxml and the accompanying utilities.
# make clean to remove all compiler output files and return to a
# clean state.
# make rebuild to rebuild everything from scratch. This basically does
# a 'nmake clean' and then a 'nmake all'.
# make install to install the library and its header files.
#
# August 2003, Eric Zurcher <[email protected]>
# based on the MSVC version of
# March 2002, Igor Zlatkovic <[email protected]>
#
# There should never be a need to modify anything below this line.
# ----------------------------------------------------------------
AUTOCONF = .\config.bcb
!include $(AUTOCONF)
!if !$d(BCB)
BCB = $(MAKEDIR)\..
!endif
.autodepend
# Names of various input and output components.
XML_NAME = xml2
XML_BASENAME = lib$(XML_NAME)
XML_SO = $(XML_BASENAME).dll
XML_IMP = $(XML_BASENAME).lib
XML_DEF = $(XML_BASENAME).def
XML_A = $(XML_BASENAME)_a.lib
DUMMY = dir.exists
# Place where we let the compiler put its intermediate trash.
BINDIR = bin.bcb
XML_INTDIR = int.bcb
XML_INTDIR_A = int.a.bcb
UTILS_INTDIR = int.utils.bcb
# The preprocessor and its options.
CPP = cpp32.exe -P- -DWIN32
CPPFLAGS = -I"$(XML_SRCDIR)\include"
!if "$(WITH_THREADS)" != "no"
CPPFLAGS = $(CPPFLAGS) -D_REENTRANT -D__MT__
!endif
# The compiler and its options.
CC = bcc32.exe
CFLAGS = -q -DWIN32 -D_NO_VCL -D_WINDOWS -D_MBCS -DEILSEQ=2 -w-
CFLAGS = $(CFLAGS) -I"$(XML_SRCDIR)" -I"$(XML_SRCDIR)\include" -I"$(INCPREFIX)" -I"$(INCLUDE)"
!if "$(WITH_THREADS)" != "no"
CFLAGS = $(CFLAGS) -D_REENTRANT -tWM
!endif
!if "$(DYNRUNTIME)" == "1"
CFLAGS = $(CFLAGS) -tWR
!endif
!if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls"
CFLAGS = $(CFLAGS) -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
!else if "$(WITH_THREADS)" == "native"
CFLAGS = $(CFLAGS) -DHAVE_WIN32_THREADS
!else if "$(WITH_THREADS)" == "posix"
CFLAGS = $(CFLAGS) -DHAVE_PTHREAD_H
!endif
!if "$(WITH_ZLIB)" == "1"
CFLAGS = $(CFLAGS) -DHAVE_ZLIB_H
!endif
# The linker and its options.
LD = ilink32.exe
LDFLAGS = -q -U$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)
LDFLAGS = $(LDFLAGS) -L"$(BINDIR);$(LIBPREFIX);$(LIB);$(BCB)\lib\PSdk"
LIBS = import32.lib
!if "$(WITH_THREADS)" != "no" && "$(DYNRUNTIME)" == "1"
LIBS = $(LIBS) cw32mti.lib
!elif "$(WITH_THREADS)" != "no"
LIBS = $(LIBS) cw32mt.lib
!elif "$(DYNRUNTIME)" == "1"
LIBS = $(LIBS) cw32i.lib
!else
LIBS = $(LIBS) cw32.lib
!endif
!if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1"
LIBS = $(LIBS) wsock32.lib
!endif
!if "$(WITH_ICONV)" == "1"
LIBS = $(LIBS) iconvomf.lib
!endif
!if "$(WITH_ZLIB)" == "1"
LIBS = $(LIBS) zlibomf.lib
!endif
!if "$(WITH_THREADS)" == "posix"
LIBS = $(LIBS) pthreadVC.lib
!endif
!if "$(WITH_MODULES)" == "1"
LIBS = $(LIBS) kernel32.lib
!endif
# The archiver and its options.
AR = tlib.exe
ARFLAGS = /P64 /0
# Optimisation and debug symbols.
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS) -D_DEBUG -Od -v
LDFLAGS = $(LDFLAGS) -v
!else
CFLAGS = $(CFLAGS) -DNDEBUG -O2
LDFLAGS = $(LDFLAGS)
!endif
# Libxml object files.
XML_OBJS = $(XML_INTDIR)\c14n.obj\
$(XML_INTDIR)\catalog.obj\
$(XML_INTDIR)\chvalid.obj\
$(XML_INTDIR)\debugXML.obj\
$(XML_INTDIR)\dict.obj\
$(XML_INTDIR)\DOCBparser.obj\
$(XML_INTDIR)\encoding.obj\
$(XML_INTDIR)\entities.obj\
$(XML_INTDIR)\error.obj\
$(XML_INTDIR)\globals.obj\
$(XML_INTDIR)\hash.obj\
$(XML_INTDIR)\HTMLparser.obj\
$(XML_INTDIR)\HTMLtree.obj\
$(XML_INTDIR)\legacy.obj\
$(XML_INTDIR)\list.obj\
$(XML_INTDIR)\nanoftp.obj\
$(XML_INTDIR)\nanohttp.obj\
$(XML_INTDIR)\parser.obj\
$(XML_INTDIR)\parserInternals.obj\
$(XML_INTDIR)\pattern.obj\
$(XML_INTDIR)\relaxng.obj\
$(XML_INTDIR)\SAX.obj\
$(XML_INTDIR)\SAX2.obj\
$(XML_INTDIR)\threads.obj\
$(XML_INTDIR)\tree.obj\
$(XML_INTDIR)\uri.obj\
$(XML_INTDIR)\valid.obj\
$(XML_INTDIR)\xinclude.obj\
$(XML_INTDIR)\xlink.obj\
$(XML_INTDIR)\xmlIO.obj\
$(XML_INTDIR)\xmlmemory.obj\
$(XML_INTDIR)\xmlreader.obj\
$(XML_INTDIR)\xmlregexp.obj\
$(XML_INTDIR)\xmlmodule.obj\
$(XML_INTDIR)\xmlsave.obj\
$(XML_INTDIR)\xmlschemas.obj\
$(XML_INTDIR)\xmlschemastypes.obj\
$(XML_INTDIR)\xmlunicode.obj\
$(XML_INTDIR)\xmlwriter.obj\
$(XML_INTDIR)\xpath.obj\
$(XML_INTDIR)\xpointer.obj\
$(XML_INTDIR)\xmlstring.obj
# Static libxml object files.
XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\
$(XML_INTDIR_A)\catalog.obj\
$(XML_INTDIR_A)\chvalid.obj\
$(XML_INTDIR_A)\debugXML.obj\
$(XML_INTDIR_A)\dict.obj\
$(XML_INTDIR_A)\DOCBparser.obj\
$(XML_INTDIR_A)\encoding.obj\
$(XML_INTDIR_A)\entities.obj\
$(XML_INTDIR_A)\error.obj\
$(XML_INTDIR_A)\globals.obj\
$(XML_INTDIR_A)\hash.obj\
$(XML_INTDIR_A)\HTMLparser.obj\
$(XML_INTDIR_A)\HTMLtree.obj\
$(XML_INTDIR_A)\legacy.obj\
$(XML_INTDIR_A)\list.obj\
$(XML_INTDIR_A)\nanoftp.obj\
$(XML_INTDIR_A)\nanohttp.obj\
$(XML_INTDIR_A)\parser.obj\
$(XML_INTDIR_A)\parserInternals.obj\
$(XML_INTDIR_A)\pattern.obj\
$(XML_INTDIR_A)\relaxng.obj\
$(XML_INTDIR_A)\SAX.obj\
$(XML_INTDIR_A)\SAX2.obj\
$(XML_INTDIR_A)\threads.obj\
$(XML_INTDIR_A)\tree.obj\
$(XML_INTDIR_A)\uri.obj\
$(XML_INTDIR_A)\valid.obj\
$(XML_INTDIR_A)\xinclude.obj\
$(XML_INTDIR_A)\xlink.obj\
$(XML_INTDIR_A)\xmlIO.obj\
$(XML_INTDIR_A)\xmlmemory.obj\
$(XML_INTDIR_A)\xmlreader.obj\
$(XML_INTDIR_A)\xmlregexp.obj\
$(XML_INTDIR_A)\xmlmodule.obj\
$(XML_INTDIR_A)\xmlsave.obj\
$(XML_INTDIR_A)\xmlschemas.obj\
$(XML_INTDIR_A)\xmlschemastypes.obj\
$(XML_INTDIR_A)\xmlunicode.obj\
$(XML_INTDIR_A)\xmlwriter.obj\
$(XML_INTDIR_A)\xpath.obj\
$(XML_INTDIR_A)\xpointer.obj\
$(XML_INTDIR_A)\xmlstring.obj
# Xmllint and friends executables.
UTILS = $(BINDIR)\xmllint.exe\
$(BINDIR)\xmlcatalog.exe\
$(BINDIR)\testAutomata.exe\
$(BINDIR)\testC14N.exe\
$(BINDIR)\testDocbook.exe\
$(BINDIR)\testHTML.exe\
$(BINDIR)\testReader.exe\
$(BINDIR)\testRelax.exe\
$(BINDIR)\testRegexp.exe\
$(BINDIR)\testModule.exe\
$(BINDIR)\testSAX.exe\
$(BINDIR)\testSchemas.exe\
$(BINDIR)\testURI.exe\
$(BINDIR)\testXPath.exe\
$(BINDIR)\runtest.exe\
$(BINDIR)\runsuite.exe
!if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS)" == "native"
UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe
!else if "$(WITH_THREADS)" == "posix"
UTILS = $(UTILS) $(BINDIR)\testThreads.exe
!endif
all : libxml libxmla utils
libxml : $(BINDIR)\$(XML_SO)
libxmla : $(BINDIR)\$(XML_A)
utils : $(UTILS)
clean :
if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR)
if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A)
if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
if exist $(BINDIR) rmdir /S /Q $(BINDIR)
distclean : clean
if exist config.* del config.*
if exist Makefile del Makefile
rebuild : clean all
install-libs : all
if not exist "$(INCPREFIX)\libxml" mkdir "$(INCPREFIX)\libxml"
if not exist "$(BINPREFIX)" mkdir "$(BINPREFIX)"
if not exist "$(LIBPREFIX)" mkdir "$(LIBPREFIX)"
copy $(XML_SRCDIR)\include\libxml\*.h "$(INCPREFIX)\libxml"
copy $(BINDIR)\$(XML_SO) "$(SOPREFIX)"
copy $(BINDIR)\$(XML_A) "$(LIBPREFIX)"
copy $(BINDIR)\$(XML_IMP) "$(LIBPREFIX)"
copy $(BINDIR)\*.exe "$(BINPREFIX)"
install : install-libs
copy $(BINDIR)\*.exe "$(BINPREFIX)"
install-dist : install-libs
copy $(BINDIR)\xml*.exe "$(BINPREFIX)"
# This is a target for me, to make a binary distribution. Not for the public use,
# keep your hands off :-)
BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
bindist : all
$(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-dist
cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
# Makes the output directory.
$(BINDIR)\$(DUMMY) :
if not exist $(BINDIR) mkdir $(BINDIR)
touch $(BINDIR)\$(DUMMY)
# Makes the libxml intermediate directory.
$(XML_INTDIR)\$(DUMMY) :
if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
touch $(XML_INTDIR)\$(DUMMY)
# Makes the static libxml intermediate directory.
$(XML_INTDIR_A)\$(DUMMY) :
if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
touch $(XML_INTDIR_A)\$(DUMMY)
# An implicit rule for libxml compilation.
{$(XML_SRCDIR)}.c{$(XML_INTDIR)}.obj:
$(CC) $(CFLAGS) -n$(XML_INTDIR) -c $<
# An implicit rule for static libxml compilation.
{$(XML_SRCDIR)}.c{$(XML_INTDIR_A)}.obj:
$(CC) $(CFLAGS) -DLIBXML_STATIC -n$(XML_INTDIR_A)\ -c $<
# Compiles libxml source. Uses the implicit rule for commands.
$(XML_OBJS) : $(XML_INTDIR)\$(DUMMY)
# Compiles static libxml source. Uses the implicit rule for commands.
$(XML_OBJS_A) : $(XML_INTDIR_A)\$(DUMMY)
#def4bcb.exe : def4bcb.c
# Creates the export definition file (DEF) for libxml.
#$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR)\$(DUMMY) $(XML_DEF).src def4bcb.exe
# $(CPP) $(CPPFLAGS) -o $(XML_INTDIR)\$(XML_DEF).tmp $(XML_DEF).src
# def4bcb -msnames < $(XML_INTDIR)\$(XML_DEF).tmp > $(XML_INTDIR)\$(XML_DEF)
# Creates the libxml shared object.
$(BINDIR)\$(XML_SO) : $(BINDIR)\$(DUMMY) $(XML_OBJS)
$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS)
#$(BINDIR)\$(XML_SO) : $(BINDIR)\$(DUMMY) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
# $(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS),$(XML_INTDIR)\$(XML_DEF)
# Creates the libxml archive.
$(BINDIR)\$(XML_A) : $(BINDIR)\$(DUMMY) $(XML_OBJS_A)
$(AR) $(BINDIR)\$(XML_A) $(ARFLAGS) /u $(XML_OBJS_A)
# Makes the utils intermediate directory.
$(UTILS_INTDIR)\$(DUMMY) :
if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
touch $(UTILS_INTDIR)\$(DUMMY)
# An implicit rule for xmllint and friends.
!if "$(STATIC)" == "1"
{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe:
$(CC) -DLIBXML_STATIC -w -tWC $(CFLAGS) -o$(UTILS_INTDIR)\$&.obj -c $<
$(LD) $(LDFLAGS) c0x32.obj $(UTILS_INTDIR)\$&.obj,$@,,$(LIBS) $(XML_A)
!else
{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe:
$(CC) $(CFLAGS) -tWC -o$(UTILS_INTDIR)\$&.obj -c $<
$(LD) $(LDFLAGS) c0x32.obj $(UTILS_INTDIR)\$&.obj $(XML_IMP),$@,,$(LIBS)
!endif
# Builds xmllint and friends. Uses the implicit rule for commands.
$(UTILS) : $(UTILS_INTDIR)\$(DUMMY) $(BINDIR)\$(DUMMY) $(BINDIR)\$(XML_SO) $(BINDIR)\$(XML_A)
# Source dependences should be autogenerated somehow here, but how to
# do it? I have no clue.
-336
View File
@@ -1,336 +0,0 @@
# Makefile for libxml2, specific for Windows, GCC (mingw) and GNU make.
#
# Take a look at the beginning and modify the variables to suit your
# environment. Having done that, you can do a
#
# nmake [all] to build the libxml and the accompanying utilities.
# nmake clean to remove all compiler output files and return to a
# clean state.
# nmake rebuild to rebuild everything from scratch. This basically does
# a 'nmake clean' and then a 'nmake all'.
# nmake install to install the library and its header files.
#
# November 2002, Igor Zlatkovic <[email protected]>
# There should never be a need to modify anything below this line.
# ----------------------------------------------------------------
AUTOCONF = .\config.mingw
include $(AUTOCONF)
# Names of various input and output components.
XML_NAME = xml2
XML_BASENAME = lib$(XML_NAME)
XML_SO = $(XML_BASENAME).dll
XML_IMP = $(XML_BASENAME).lib
XML_A = $(XML_BASENAME).a
# Place where we let the compiler put its output.
BINDIR = bin.mingw
XML_INTDIR = int.mingw
XML_INTDIR_A = int.a.mingw
UTILS_INTDIR = int.utils.mingw
# The preprocessor and its options.
CPP = gcc.exe -E
CPPFLAGS += -I$(XML_SRCDIR)/include
ifeq ($(WITH_THREADS),1)
CPPFLAGS += -D_REENTRANT
endif
# The compiler and its options.
CC = gcc.exe
CFLAGS += -DWIN32 -D_WINDOWS -D_MBCS
CFLAGS += -I$(XML_SRCDIR) -I$(XML_SRCDIR)/include -I$(INCPREFIX)
ifneq ($(WITH_THREADS),no)
CFLAGS += -D_REENTRANT
endif
ifeq ($(WITH_THREADS),yes)
CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
endif
ifeq ($(WITH_THREADS),ctls)
CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
endif
ifeq ($(WITH_THREADS),native)
CFLAGS += -DHAVE_WIN32_THREADS
endif
ifeq ($(WITH_THREADS),posix)
CFLAGS += -DHAVE_PTHREAD_H
endif
ifeq ($(WITH_ZLIB),1)
CFLAGS += -DHAVE_ZLIB_H
endif
# The linker and its options.
LD = gcc.exe
LDFLAGS += -Wl,--major-image-version,$(LIBXML_MAJOR_VERSION)
LDFLAGS += -Wl,--minor-image-version,$(LIBXML_MINOR_VERSION)
LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX)
LIBS =
ifeq ($(WITH_FTP),1)
CFLAGS += -D_WINSOCKAPI_
LIBS += -lwsock32
endif
ifeq ($(WITH_HTTP),1)
CFLAGS += -D_WINSOCKAPI_
LIBS += -lwsock32
endif
ifeq ($(WITH_ICONV),1)
LIBS += -liconv
endif
ifeq ($(WITH_ZLIB),1)
LIBS += -lzdll
endif
ifeq ($(WITH_THREADS),posix)
LIBS += -lpthreadGC
endif
ifeq ($(WITH_MODULES),1)
LIBS += -lkernel32
endif
# The archiver and its options.
AR = ar.exe
ARFLAGS = -r
# Optimisation and debug symbols.
ifeq ($(DEBUG),1)
CFLAGS += -D_DEBUG -g
LDFLAGS +=
else
CFLAGS += -DNDEBUG -O2
LDFLAGS +=
endif
# Libxml object files.
XML_OBJS = $(XML_INTDIR)/c14n.o\
$(XML_INTDIR)/catalog.o\
$(XML_INTDIR)/chvalid.o\
$(XML_INTDIR)/debugXML.o\
$(XML_INTDIR)/dict.o\
$(XML_INTDIR)/DOCBparser.o\
$(XML_INTDIR)/encoding.o\
$(XML_INTDIR)/entities.o\
$(XML_INTDIR)/error.o\
$(XML_INTDIR)/globals.o\
$(XML_INTDIR)/hash.o\
$(XML_INTDIR)/HTMLparser.o\
$(XML_INTDIR)/HTMLtree.o\
$(XML_INTDIR)/legacy.o\
$(XML_INTDIR)/list.o\
$(XML_INTDIR)/nanoftp.o\
$(XML_INTDIR)/nanohttp.o\
$(XML_INTDIR)/parser.o\
$(XML_INTDIR)/parserInternals.o\
$(XML_INTDIR)/pattern.o\
$(XML_INTDIR)/relaxng.o\
$(XML_INTDIR)/SAX.o\
$(XML_INTDIR)/SAX2.o\
$(XML_INTDIR)/threads.o\
$(XML_INTDIR)/tree.o\
$(XML_INTDIR)/uri.o\
$(XML_INTDIR)/valid.o\
$(XML_INTDIR)/xinclude.o\
$(XML_INTDIR)/xlink.o\
$(XML_INTDIR)/xmlIO.o\
$(XML_INTDIR)/xmlmemory.o\
$(XML_INTDIR)/xmlreader.o\
$(XML_INTDIR)/xmlregexp.o\
$(XML_INTDIR)/xmlmodule.o\
$(XML_INTDIR)/xmlsave.o\
$(XML_INTDIR)/xmlschemas.o\
$(XML_INTDIR)/xmlschemastypes.o\
$(XML_INTDIR)/xmlunicode.o\
$(XML_INTDIR)/xmlwriter.o\
$(XML_INTDIR)/xpath.o\
$(XML_INTDIR)/xpointer.o\
$(XML_INTDIR)/xmlstring.o
XML_SRCS = $(subst .o,.c,$(subst $(XML_INTDIR)/,$(XML_SRCDIR)/,$(XML_OBJS)))
# Static libxml object files.
XML_OBJS_A = $(XML_INTDIR_A)/c14n.o\
$(XML_INTDIR_A)/catalog.o\
$(XML_INTDIR_A)/chvalid.o\
$(XML_INTDIR_A)/debugXML.o\
$(XML_INTDIR_A)/dict.o\
$(XML_INTDIR_A)/DOCBparser.o\
$(XML_INTDIR_A)/encoding.o\
$(XML_INTDIR_A)/entities.o\
$(XML_INTDIR_A)/error.o\
$(XML_INTDIR_A)/globals.o\
$(XML_INTDIR_A)/hash.o\
$(XML_INTDIR_A)/HTMLparser.o\
$(XML_INTDIR_A)/HTMLtree.o\
$(XML_INTDIR_A)/legacy.o\
$(XML_INTDIR_A)/list.o\
$(XML_INTDIR_A)/nanoftp.o\
$(XML_INTDIR_A)/nanohttp.o\
$(XML_INTDIR_A)/parser.o\
$(XML_INTDIR_A)/parserInternals.o\
$(XML_INTDIR_A)/pattern.o\
$(XML_INTDIR_A)/relaxng.o\
$(XML_INTDIR_A)/SAX.o\
$(XML_INTDIR_A)/SAX2.o\
$(XML_INTDIR_A)/threads.o\
$(XML_INTDIR_A)/tree.o\
$(XML_INTDIR_A)/uri.o\
$(XML_INTDIR_A)/valid.o\
$(XML_INTDIR_A)/xinclude.o\
$(XML_INTDIR_A)/xlink.o\
$(XML_INTDIR_A)/xmlIO.o\
$(XML_INTDIR_A)/xmlmemory.o\
$(XML_INTDIR_A)/xmlreader.o\
$(XML_INTDIR_A)/xmlregexp.o\
$(XML_INTDIR_A)/xmlmodule.o\
$(XML_INTDIR_A)/xmlsave.o\
$(XML_INTDIR_A)/xmlschemas.o\
$(XML_INTDIR_A)/xmlschemastypes.o\
$(XML_INTDIR_A)/xmlunicode.o\
$(XML_INTDIR_A)/xmlwriter.o\
$(XML_INTDIR_A)/xpath.o\
$(XML_INTDIR_A)/xpointer.o\
$(XML_INTDIR_A)/xmlstring.o
XML_SRCS_A = $(subst .o,.c,$(subst $(XML_INTDIR_A)/,$(XML_SRCDIR)/,$(XML_OBJS_A)))
# Xmllint and friends executables.
UTILS = $(BINDIR)/xmllint.exe\
$(BINDIR)/xmlcatalog.exe\
$(BINDIR)/testAutomata.exe\
$(BINDIR)/testC14N.exe\
$(BINDIR)/testDocbook.exe\
$(BINDIR)/testHTML.exe\
$(BINDIR)/testReader.exe\
$(BINDIR)/testRegexp.exe\
$(BINDIR)/testModule.exe\
$(BINDIR)/testRelax.exe\
$(BINDIR)/testSAX.exe\
$(BINDIR)/testSchemas.exe\
$(BINDIR)/testURI.exe\
$(BINDIR)/testXPath.exe\
$(BINDIR)/runtest.exe\
$(BINDIR)/runsuite.exe
ifeq ($(WITH_THREADS),yes)
UTILS += $(BINDIR)/testThreadsWin32.exe
endif
ifeq ($(WITH_THREADS),ctls)
UTILS += $(BINDIR)/testThreadsWin32.exe
endif
ifeq ($(WITH_THREADS),native)
UTILS += $(BINDIR)/testThreadsWin32.exe
endif
ifeq ($(WITH_THREADS),posix)
UTILS += $(BINDIR)/testThreads.exe
endif
all : dep libxml libxmla utils
libxml : $(BINDIR)/$(XML_SO)
libxmla : $(BINDIR)/$(XML_A)
utils : $(UTILS)
clean :
cmd.exe /C if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR)
cmd.exe /C if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A)
cmd.exe /C if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
cmd.exe /C if exist $(BINDIR) rmdir /S /Q $(BINDIR)
cmd.exe /C if exist depends.mingw del depends.mingw
distclean : clean
cmd.exe /C if exist config.* del config.*
cmd.exe /C if exist Makefile del Makefile
rebuild : clean all
install-libs : all
cmd.exe /C if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX)
cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
cmd.exe /C copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
cmd.exe /C copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
cmd.exe /C copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
cmd.exe /C copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX)
install : install-libs
cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX)
install-dist : install-libs
cmd.exe /C copy $(BINDIR)\xml*.exe $(BINPREFIX)
# This is a target for me, to make a binary distribution. Not for the public use,
# keep your hands off :-)
BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
bindist : all
$(MAKE) PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)/bin install-dist
cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
# Creates the dependency file
dep :
$(CC) $(CFLAGS) -M $(XML_SRCS) > depends.mingw
# Makes the output directory.
$(BINDIR) :
cmd.exe /C if not exist $(BINDIR) mkdir $(BINDIR)
# Makes the libxml intermediate directory.
$(XML_INTDIR) :
cmd.exe /C if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
# Makes the static libxml intermediate directory.
$(XML_INTDIR_A) :
cmd.exe /C if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
# An implicit rule for libxml compilation.
$(XML_INTDIR)/%.o : $(XML_SRCDIR)/%.c
$(CC) $(CFLAGS) -o $@ -c $<
# An implicit rule for static libxml compilation.
$(XML_INTDIR_A)/%.o : $(XML_SRCDIR)/%.c
$(CC) $(CFLAGS) -DLIBXML_STATIC -o $@ -c $<
# Compiles libxml source. Uses the implicit rule for commands.
$(XML_OBJS) : $(XML_INTDIR)
# Compiles static libxml source. Uses the implicit rule for commands.
$(XML_OBJS_A) : $(XML_INTDIR_A)
# Creates the libxml shared object.
XMLSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(XML_IMP)
$(BINDIR)/$(XML_SO) : $(BINDIR) $(XML_OBJS)
$(LD) $(XMLSO_LDFLAGS) -o $(BINDIR)/$(XML_SO) $(XML_OBJS) $(LIBS)
# Creates the libxml archive.
$(BINDIR)/$(XML_A) : $(BINDIR) $(XML_OBJS_A)
$(AR) $(ARFLAGS) $(BINDIR)\$(XML_A) $(XML_OBJS_A)
# Makes the utils intermediate directory.
$(UTILS_INTDIR) :
cmd.exe /C if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
# An implicit rule for xmllint and friends.
ifeq ($(STATIC),1)
$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
$(CC) -DLIBXML_STATIC $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $<
$(LD) $(LDFLAGS) -o $@ $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -l$(XML_BASENAME) $(LIBS)
else
$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
$(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $<
$(LD) $(LDFLAGS) -o $@ $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -l$(XML_BASENAME) $(LIBS)
endif
# Builds xmllint and friends. Uses the implicit rule for commands.
$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
# Source dependencies
#-include depends.mingw
-382
View File
@@ -1,382 +0,0 @@
# Makefile for libxml2, specific for Windows, MSVC and NMAKE.
#
# Take a look at the beginning and modify the variables to suit your
# environment. Having done that, you can do a
#
# nmake [all] to build the libxml and the accompanying utilities.
# nmake clean to remove all compiler output files and return to a
# clean state.
# nmake rebuild to rebuild everything from scratch. This basically does
# a 'nmake clean' and then a 'nmake all'.
# nmake install to install the library and its header files.
#
# March 2002, Igor Zlatkovic <[email protected]>
# There should never be a need to modify anything below this line.
# ----------------------------------------------------------------
AUTOCONF = .\config.msvc
!include $(AUTOCONF)
# Names of various input and output components.
XML_NAME = xml2
XML_BASENAME = lib$(XML_NAME)
XML_SO = $(XML_BASENAME).dll
XML_IMP = $(XML_BASENAME).lib
XML_DEF = $(XML_BASENAME).def
XML_A = $(XML_BASENAME)_a.lib
# Place where we let the compiler put its output.
BINDIR = bin.msvc
XML_INTDIR = int.msvc
XML_INTDIR_A = int.a.msvc
UTILS_INTDIR = int.utils.msvc
# The preprocessor and its options.
CPP = cl.exe /EP
CPPFLAGS = /nologo /I$(XML_SRCDIR)\include
!if "$(WITH_THREADS)" != "no"
CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT"
!endif
# The compiler and its options.
CC = cl.exe
CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W1 $(CRUNTIME)
CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
!if "$(WITH_THREADS)" != "no"
CFLAGS = $(CFLAGS) /D "_REENTRANT"
!endif
!if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls"
CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS" /D "HAVE_COMPILER_TLS"
!else if "$(WITH_THREADS)" == "native"
CFLAGS = $(CFLAGS) /D "HAVE_WIN32_THREADS"
!else if "$(WITH_THREADS)" == "posix"
CFLAGS = $(CFLAGS) /D "HAVE_PTHREAD_H"
!endif
!if "$(WITH_ZLIB)" == "1"
CFLAGS = $(CFLAGS) /D "HAVE_ZLIB_H"
!endif
# The linker and its options.
LD = link.exe
LDFLAGS = /nologo /VERSION:$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)
LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX)
LIBS =
!if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1"
LIBS = $(LIBS) wsock32.lib
!endif
!if "$(WITH_ICONV)" == "1"
LIBS = $(LIBS) iconv.lib
!endif
!if "$(WITH_ZLIB)" == "1"
LIBS = $(LIBS) zdll.lib
!endif
!if "$(WITH_THREADS)" == "posix"
LIBS = $(LIBS) pthreadVC.lib
!endif
!if "$(WITH_MODULES)" == "1"
LIBS = $(LIBS) kernel32.lib
!endif
# The archiver and its options.
AR = lib.exe
ARFLAGS = /nologo
# Optimisation and debug symbols.
!if "$(DEBUG)" == "1"
CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7
LDFLAGS = $(LDFLAGS) /DEBUG
!else
CFLAGS = $(CFLAGS) /D "NDEBUG" /O2
LDFLAGS = $(LDFLAGS) /OPT:NOWIN98
!endif
# Libxml object files.
XML_OBJS = $(XML_INTDIR)\c14n.obj\
$(XML_INTDIR)\catalog.obj\
$(XML_INTDIR)\chvalid.obj\
$(XML_INTDIR)\debugXML.obj\
$(XML_INTDIR)\dict.obj\
$(XML_INTDIR)\DOCBparser.obj\
$(XML_INTDIR)\encoding.obj\
$(XML_INTDIR)\entities.obj\
$(XML_INTDIR)\error.obj\
$(XML_INTDIR)\globals.obj\
$(XML_INTDIR)\hash.obj\
$(XML_INTDIR)\HTMLparser.obj\
$(XML_INTDIR)\HTMLtree.obj\
$(XML_INTDIR)\legacy.obj\
$(XML_INTDIR)\list.obj\
$(XML_INTDIR)\nanoftp.obj\
$(XML_INTDIR)\nanohttp.obj\
$(XML_INTDIR)\parser.obj\
$(XML_INTDIR)\parserInternals.obj\
$(XML_INTDIR)\pattern.obj\
$(XML_INTDIR)\relaxng.obj\
$(XML_INTDIR)\SAX2.obj\
$(XML_INTDIR)\SAX.obj\
$(XML_INTDIR)\threads.obj\
$(XML_INTDIR)\tree.obj\
$(XML_INTDIR)\uri.obj\
$(XML_INTDIR)\valid.obj\
$(XML_INTDIR)\xinclude.obj\
$(XML_INTDIR)\xlink.obj\
$(XML_INTDIR)\xmlIO.obj\
$(XML_INTDIR)\xmlmemory.obj\
$(XML_INTDIR)\xmlreader.obj\
$(XML_INTDIR)\xmlregexp.obj\
$(XML_INTDIR)\xmlmodule.obj\
$(XML_INTDIR)\xmlsave.obj\
$(XML_INTDIR)\xmlschemas.obj\
$(XML_INTDIR)\xmlschemastypes.obj\
$(XML_INTDIR)\xmlunicode.obj\
$(XML_INTDIR)\xmlwriter.obj\
$(XML_INTDIR)\xpath.obj\
$(XML_INTDIR)\xpointer.obj\
$(XML_INTDIR)\xmlstring.obj
# Static libxml object files.
XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\
$(XML_INTDIR_A)\catalog.obj\
$(XML_INTDIR_A)\chvalid.obj\
$(XML_INTDIR_A)\debugXML.obj\
$(XML_INTDIR_A)\dict.obj\
$(XML_INTDIR_A)\DOCBparser.obj\
$(XML_INTDIR_A)\encoding.obj\
$(XML_INTDIR_A)\entities.obj\
$(XML_INTDIR_A)\error.obj\
$(XML_INTDIR_A)\globals.obj\
$(XML_INTDIR_A)\hash.obj\
$(XML_INTDIR_A)\HTMLparser.obj\
$(XML_INTDIR_A)\HTMLtree.obj\
$(XML_INTDIR_A)\legacy.obj\
$(XML_INTDIR_A)\list.obj\
$(XML_INTDIR_A)\nanoftp.obj\
$(XML_INTDIR_A)\nanohttp.obj\
$(XML_INTDIR_A)\parser.obj\
$(XML_INTDIR_A)\parserInternals.obj\
$(XML_INTDIR_A)\pattern.obj\
$(XML_INTDIR_A)\relaxng.obj\
$(XML_INTDIR_A)\SAX2.obj\
$(XML_INTDIR_A)\SAX.obj\
$(XML_INTDIR_A)\threads.obj\
$(XML_INTDIR_A)\tree.obj\
$(XML_INTDIR_A)\uri.obj\
$(XML_INTDIR_A)\valid.obj\
$(XML_INTDIR_A)\xinclude.obj\
$(XML_INTDIR_A)\xlink.obj\
$(XML_INTDIR_A)\xmlIO.obj\
$(XML_INTDIR_A)\xmlmemory.obj\
$(XML_INTDIR_A)\xmlreader.obj\
$(XML_INTDIR_A)\xmlregexp.obj\
$(XML_INTDIR_A)\xmlmodule.obj\
$(XML_INTDIR_A)\xmlsave.obj\
$(XML_INTDIR_A)\xmlschemas.obj\
$(XML_INTDIR_A)\xmlschemastypes.obj\
$(XML_INTDIR_A)\xmlunicode.obj\
$(XML_INTDIR_A)\xmlwriter.obj\
$(XML_INTDIR_A)\xpath.obj\
$(XML_INTDIR_A)\xpointer.obj\
$(XML_INTDIR_A)\xmlstring.obj
# Xmllint and friends executables.
UTILS = $(BINDIR)\xmllint.exe\
$(BINDIR)\xmlcatalog.exe\
$(BINDIR)\testAutomata.exe\
$(BINDIR)\testC14N.exe\
$(BINDIR)\testDocbook.exe\
$(BINDIR)\testHTML.exe\
$(BINDIR)\testReader.exe\
$(BINDIR)\testRelax.exe\
$(BINDIR)\testRegexp.exe\
$(BINDIR)\testModule.exe\
$(BINDIR)\testSAX.exe\
$(BINDIR)\testSchemas.exe\
$(BINDIR)\testURI.exe\
$(BINDIR)\testXPath.exe\
$(BINDIR)\runtest.exe\
$(BINDIR)\runsuite.exe
!if "$(WITH_THREADS)" == "yes" || "$(WITH_THREADS)" == "ctls" || "$(WITH_THREADS)" == "native"
UTILS = $(UTILS) $(BINDIR)\testThreadsWin32.exe
!else if "$(WITH_THREADS)" == "posix"
UTILS = $(UTILS) $(BINDIR)\testThreads.exe
!endif
all : libxml libxmla utils
libxml : $(BINDIR)\$(XML_SO)
libxmla : $(BINDIR)\$(XML_A)
utils : $(UTILS)
clean :
if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR)
if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A)
if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
if exist $(BINDIR) rmdir /S /Q $(BINDIR)
distclean : clean
if exist config.* del config.*
if exist Makefile del Makefile
rebuild : clean all
install-libs : all
if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
if not exist $(BINPREFIX) mkdir $(BINPREFIX)
if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
if not exist $(SOPREFIX) mkdir $(SOPREFIX)
copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
install : install-libs
copy $(BINDIR)\*.exe $(BINPREFIX)
-copy $(BINDIR)\*.pdb $(BINPREFIX)
install-dist : install-libs
copy $(BINDIR)\xml*.exe $(BINPREFIX)
-copy $(BINDIR)\xml*.pdb $(BINPREFIX)
# This is a target for me, to make a binary distribution. Not for the public use,
# keep your hands off :-)
BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
bindist : all
$(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-dist
cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
# Makes the output directory.
$(BINDIR) :
if not exist $(BINDIR) mkdir $(BINDIR)
# Makes the libxml intermediate directory.
$(XML_INTDIR) :
if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
# Makes the static libxml intermediate directory.
$(XML_INTDIR_A) :
if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
# An implicit rule for libxml compilation.
{$(XML_SRCDIR)}.c{$(XML_INTDIR)}.obj::
$(CC) $(CFLAGS) /Fo$(XML_INTDIR)\ /c $<
# An implicit rule for static libxml compilation.
{$(XML_SRCDIR)}.c{$(XML_INTDIR_A)}.obj::
$(CC) $(CFLAGS) /D "LIBXML_STATIC" /Fo$(XML_INTDIR_A)\ /c $<
# Compiles libxml source. Uses the implicit rule for commands.
$(XML_OBJS) : $(XML_INTDIR)
# Compiles static libxml source. Uses the implicit rule for commands.
$(XML_OBJS_A) : $(XML_INTDIR_A)
# Creates the export definition file (DEF) for libxml.
$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src
$(CPP) $(CPPFLAGS) $(XML_DEF).src > $(XML_INTDIR)\$(XML_DEF)
# Creates the libxml shared object.
$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
$(LD) $(LDFLAGS) /DLL \
/IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS)
#$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
# $(LD) $(LDFLAGS) /DLL /DEF:$(XML_INTDIR)\$(XML_DEF) \
# /IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS)
# Creates the libxml archive.
$(BINDIR)\$(XML_A) : $(BINDIR) $(XML_OBJS_A)
$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XML_A) $(XML_OBJS_A)
# Makes the utils intermediate directory.
$(UTILS_INTDIR) :
if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
# An implicit rule for xmllint and friends.
!if "$(STATIC)" == "1"
{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe:
$(CC) /D "LIBXML_STATIC" $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $<
$(LD) $(LDFLAGS) /OUT:$@ $(XML_A) $(LIBS) $(UTILS_INTDIR)\$(<B).obj
!else
{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe:
$(CC) $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $<
$(LD) $(LDFLAGS) /OUT:$@ $(XML_IMP) $(LIBS) $(UTILS_INTDIR)\$(<B).obj
!endif
# Builds xmllint and friends. Uses the implicit rule for commands.
$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
# Source dependences should be autogenerated somehow here, but how to
# do it? I have no clue.
# TESTS
tests : XPathtests
XPathtests : $(BINDIR)\testXPath.exe
@echo. 2> .memdump
@echo ## XPath regression tests
@-$(BINDIR)\testXPath.exe | find /C "support not compiled in" 1>nul
@if %ERRORLEVEL% NEQ 0 @( \
echo Skipping debug not compiled in\
@exit 0 \
)
@for %%I in ($(XML_SRCDIR)\test\XPath\expr\*.*) do @( \
@IF NOT EXIST $(XML_SRCDIR)\result\XPath\expr\%%~nxI ( \
@echo New test %%~nxI &&\
@echo %%~nxI &&\
$(BINDIR)\testXPath.exe -f --expr %%I > $(XML_SRCDIR)/result/XPath/expr/%%~nxI &&\
findstr /C:"MEMORY ALLOCATED : 0" \
) ELSE ( \
$(BINDIR)\testXPath.exe -f --expr %%I 2>&1 > result.%%~nxI &&\
fc $(XML_SRCDIR)\result\XPath\expr\%%~nxI result.%%~nxI >nul &\
iF ERRORLEVEL 1 exit 1 & \
findstr "MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0" >nul &&\
del result.%%~nxI \
) \
)
@for %%I in ($(XML_SRCDIR)\test\XPath\docs\*.*) do @( \
for %%J in ($(XML_SRCDIR)\test\XPath\tests\%%~nxI*.*) do @( \
if not exist $(XML_SRCDIR)\result\XPath\tests\%%~nxJ ( \
$(BINDIR)\testXPath.exe -f -i %%I %%J > $(XML_SRCDIR)\result\XPath\tests\%%~nxJ &&\
findstr /C:"MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0" > nul \
) ELSE ( \
$(BINDIR)\testXPAth.exe -f -i %%I %%J 2>&1 > result.%%~nxJ &&\
findstr /C:"MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0">null &&\
fc $(XML_SRCDIR)\result\XPath\tests\%%~nxJ result.%%~nxJ >null & \
IF ERRORLEVEL 1 (echo Error: %%I %%J & exit 1) & \
del result.%%~nxJ \
)\
)\
)
XMLtests : $(BINDIR)\xmllint.exe
@echo. 2> .memdump
@echo ## XML regression tests
-@for %%I in ($(XML_SRCDIR)\test\*) do @( \
if not exist $(XML_SRCDIR)\result\%%~nxI ( \
echo New test file %%~nxI &\
$(BINDIR)\xmllint.exe %%I > $(XML_SRCDIR)\result\%%~nxI && \
findstr /C:"MEMORY ALLOCATED" .memdump | findstr /C:"MEMORY ALLOCATED : 0" > null \
) ELSE ( \
$(BINDIR)\xmllint.exe %%I 2>&1 > result.%%~nxI && \
findstr /C:"MEMORY ALLOC" .memdump | findstr /C:"MEMORY ALLOCATED : 0" > null && \
fc $(XML_SRCDIR)\result\%%~nxI result.%%~nxI > null && \
$(BINDIR)\xmllint.exe result.%%~nxI 2>&1 > result2.%%~nxI | findstr /V /C:"failed to load external entity" && \
fc result.%%~nxI result2.%%~nxI & \
del result.%%~nxI result2.%%~nxI\
) \
)
-226
View File
@@ -1,226 +0,0 @@
Windows port
============
This directory contains the files required to build this software on the
native Windows platform. This is not a place to look for help if you are
using a POSIX emulator, such as Cygwin. Check the Unix instructions for
that.
CONTENTS
========
1. General
1.1 Building From the Command-Line
1.2 Configuring The Source
1.3 Compiling
1.4 Installing
2. Compiler Specifics
2.1 Microsoft Visual C/C++
2.1 GNU C/C++, Mingw Edition
2.2 Borland C++ Builder
2.2.1 Building with iconv support
2.2.2 Compatability problems with MSVC (and probably CYGWIN)
2.2.3 Other caveats
1. General
==========
1.1 Building From The Command-Line
----------------------------------
This is the easiest, preferred and currently supported method. It can
be that a subdirectory of the directory where this file resides
contains project files for some IDE. If you want to use that, please
refer to the readme file within that subdirectory.
In order to build from the command-line you need to make sure that
your compiler works from the command line. This is not always the
case, often the required environment variables are missing. If you are
not sure, test if this works first. If it doesn't, you will first have
to configure your compiler suite to run from the command-line - please
refer to your compiler's documentation regarding that.
The first thing you want to do is configure the source. You can have
the configuration script do this automatically for you. The
configuration script is written in JScript, a Microsoft's
implementation of the ECMA scripting language. Almost every Windows
machine can execute this through the Windows Scripting Host. If your
system lacks the ability to execute JScript for some reason, you must
perform the configuration manually and you are on your own with that.
The second step is compiling the source and, optionally, installing it
to the location of your choosing.
1.2 Configuring The Source
--------------------------
The configuration script accepts numerous options. Some of these
affect features which will be available in the compiled software,
others affect the way the software is built and installed. To see a
full list of options supported by the configuration script, run
cscript configure.js help
from the win32 subdirectory. The configuration script will present you
the options it accepts and give a biref explanation of these. In every
case you will have two sets of options. The first set is specific to
the software you are building and the second one is specific to the
Windows port.
Once you have decided which options suit you, run the script with that
options. Here is an example:
cscript configure.js compiler=msvc prefix=c:\opt
include=c:\opt\include lib=c:\opt\lib debug=yes
The previous example will configure the process to use the Microsoft's
compiler, install the library in c:\opt, use c:\opt\include and
c:\opt\lib as additional search paths for the compiler and the linker
and build executables with debug symbols.
Note: Please do not use path names which contain spaces. This will
fail. Allowing this would require me to put almost everything in the
Makefile in quotas and that looks quite ugly with my
syntax-highlighting engine. If you absolutely must use spaces in paths
send me an email and tell me why. If there are enough of you out there
who need this, or if a single one has a very good reason, I will
modify the Makefile to allow spaces in paths.
1.3 Compiling
-------------
After the configuration stage has been completed, you want to build
the software. You will have to use the make tool which comes with
your compiler. If you, for example, configured the source to build
with Microsoft's MSVC compiler, you would use the NMAKE utility. If
you configured it to build with GNU C compiler, mingw edition, you
would use the GNU make. Assuming you use MSVC, type
nmake /f Makefile.msvc
and if you use MinGW, you would type
make -f Makefile.mingw
and if you use Borland's compiler, you would type
bmake -f Makefile.bcb
in the win32 subdirectory. When the building completes, you will find
the executable files in win32\bin.* directory, where * stands for the
name of the compiler you have used.
1.4 Installing
--------------
You can install the software into the directory you specified to the
configure script during the configure stage by typing (with MSVC in
this example)
nmake /f Makefile.msvc install
That would be it, enjoy.
2. Compiler Specifics
=====================
2.1 Microsoft Visual C/C++
--------------------------
If you use the compiler which comes with Visual Studio .NET, note that
it will link to its own C-runtime named msvcr70.dll or msvcr71.dll. This
file is not available on any machine which doesn't have Visual Studio
.NET installed.
2.2 GNU C/C++, Mingw edition
----------------------------
When specifying paths to configure.js, please use slashes instead of
backslashes for directory separation. Sometimes Mingw needs this. If
this is the case, and you specify backslashes, then the compiler will
complain about not finding necessary header files.
2.2 Borland C++ Builder
-----------------------
To compile libxml2 with the BCB6 compiler and associated tools, just follow
the basic instructions found in this file file. Be sure to specify
the "compiler=bcb" option when running the configure script. To compile the
library and test programs, just type
make -fMakefile.bcb
That should be all that's required. But there are a few other things to note:
2.2.1 Building with iconv support
If you configure libxml2 to include iconv support, you will obviously need to
obtain the iconv library and include files. To get them, just follow the links
at http://www.gnu.org/software/libiconv/ - there are pre-compiled Win32
versions available, but note that these where built with MSVC. Hence the
supplied import library is in COFF format rather than OMF format. You can
convert this library by using Borland's COFF2OMF utility, or use IMPLIB to
build a new import library from the DLL. Alternatively, it is possible to
obtain the iconv source, and build the DLL using the Borland compiler.
There is a minor problem with the header files for iconv - they expect a
macro named "EILSEQ" in errno.h, but this is not defined in the Borland
headers, and its absence can cause problems. To circumvent this problem, I
define EILSEQ=2 in Makefile.bcb. The value "2" is the value for ENOFILE (file
not found). This should not have any disastrous side effects beyond possibly
displaying a misleading error message in certain situations.
2.2.2 Compatability problems with MSVC (and probably CYGWIN)
A libxml2 DLL generated by BCB is callable from MSVC programs, but there is a
minor problem with the names of the symbols exported from the library. The
Borland compiler, by default, prepends an underscore character to global
identifiers (functions and global variables) when generating object files.
Hence the function "xmlAddChild" is added to the DLL with the name
"_xmlAddChild". The MSVC compiler does not have this behaviour, and looks for
the unadorned name. I currently circumvent this problem by writing a .def file
which causes BOTH the adorned and unadorned names to be exported from the DLL.
This behaviour may not be supported in the future.
An even worse problem is that of generating an import library for the DLL. The
Borland-generated DLL is in OMF format. MSVC expects libraries in COFF format,
but they don't provide a "OMF2COFF" utility, or even the equivalent of
Borland's IMPLIB utility. But it is possible to create an import lib from the
.def file, using the command:
LIB /DEF:libxml2.def
If you don't have the .def file, it's possible to create one manually. Use
DUMPBIN /EXPORTS /OUT:libxml2.tmp libxml2.dll to get a list of the exported
names, and edit this into .def file format.
A similar problem is likely with Cygwin.
2.2.3 Other caveats
We have tested this only with BCB6, Professional Edition, and BCB 5.5 free
command-line tools.
Authors: Igor Zlatkovic <[email protected]>
Eric Zurcher <[email protected]>
-662
View File
@@ -1,662 +0,0 @@
/* Configure script for libxml, specific for Windows with Scripting Host.
*
* This script will configure the libxml build process and create necessary files.
* Run it with an 'help', or an invalid option and it will tell you what options
* it accepts.
*
* March 2002, Igor Zlatkovic <[email protected]>
*/
/* The source directory, relative to the one where this file resides. */
var srcDirXml = "..";
var srcDirUtils = "..";
/* Base name of what we are building. */
var baseName = "libxml2";
/* Configure file which contains the version and the output file where
we can store our build configuration. */
var configFile = srcDirXml + "\\configure.in";
var versionFile = ".\\config.msvc";
/* Input and output files regarding the libxml features. */
var optsFileIn = srcDirXml + "\\include\\libxml\\xmlversion.h.in";
var optsFile = srcDirXml + "\\include\\libxml\\xmlversion.h";
/* Version strings for the binary distribution. Will be filled later
in the code. */
var verMajor;
var verMinor;
var verMicro;
var verMicroSuffix;
var verCvs;
var useCvsVer = true;
/* Libxml features. */
var withTrio = false;
var withThreads = "native";
var withFtp = true;
var withHttp = true;
var withHtml = true;
var withC14n = true;
var withCatalog = true;
var withDocb = true;
var withXpath = true;
var withXptr = true;
var withXinclude = true;
var withIconv = true;
var withIso8859x = false;
var withZlib = false;
var withDebug = true;
var withMemDebug = false;
var withSchemas = true;
var withRegExps = true;
var withModules = true;
var withTree = true;
var withReader = true;
var withWriter = true;
var withWalker = true;
var withPattern = true;
var withPush = true;
var withValid = true;
var withSax1 = true;
var withLegacy = true;
var withOutput = true;
var withPython = false;
/* Win32 build options. */
var dirSep = "\\";
var compiler = "msvc";
var cruntime = "/MD";
var dynruntime = true;
var buildDebug = 0;
var buildStatic = 0;
var buildPrefix = ".";
var buildBinPrefix = "";
var buildIncPrefix = "";
var buildLibPrefix = "";
var buildSoPrefix = "";
var buildInclude = ".";
var buildLib = ".";
/* Local stuff */
var error = 0;
/* Helper function, transforms the option variable into the 'Enabled'
or 'Disabled' string. */
function boolToStr(opt)
{
if (opt == false)
return "no";
else if (opt == true)
return "yes";
error = 1;
return "*** undefined ***";
}
/* Helper function, transforms the argument string into a boolean
value. */
function strToBool(opt)
{
if (opt == 0 || opt == "no")
return false;
else if (opt == 1 || opt == "yes")
return true;
error = 1;
return false;
}
/* Displays the details about how to use this script. */
function usage()
{
var txt;
txt = "Usage:\n";
txt += " cscript " + WScript.ScriptName + " <options>\n";
txt += " cscript " + WScript.ScriptName + " help\n\n";
txt += "Options can be specified in the form <option>=<value>, where the value is\n";
txt += "either 'yes' or 'no', if not stated otherwise.\n\n";
txt += "\nXML processor options, default value given in parentheses:\n\n";
txt += " trio: Enable TRIO string manipulator (" + (withTrio? "yes" : "no") + ")\n";
txt += " threads: Enable thread safety [no|ctls|native|posix] (" + (withThreads) + ") \n";
txt += " ftp: Enable FTP client (" + (withFtp? "yes" : "no") + ")\n";
txt += " http: Enable HTTP client (" + (withHttp? "yes" : "no") + ")\n";
txt += " html: Enable HTML processor (" + (withHtml? "yes" : "no") + ")\n";
txt += " c14n: Enable C14N support (" + (withC14n? "yes" : "no") + ")\n";
txt += " catalog: Enable catalog support (" + (withCatalog? "yes" : "no") + ")\n";
txt += " docb: Enable DocBook support (" + (withDocb? "yes" : "no") + ")\n";
txt += " xpath: Enable XPath support (" + (withXpath? "yes" : "no") + ")\n";
txt += " xptr: Enable XPointer support (" + (withXptr? "yes" : "no") + ")\n";
txt += " xinclude: Enable XInclude support (" + (withXinclude? "yes" : "no") + ")\n";
txt += " iconv: Enable iconv support (" + (withIconv? "yes" : "no") + ")\n";
txt += " iso8859x: Enable ISO8859X support (" + (withIso8859x? "yes" : "no") + ")\n";
txt += " zlib: Enable zlib support (" + (withZlib? "yes" : "no") + ")\n";
txt += " xml_debug: Enable XML debbugging module (" + (withDebug? "yes" : "no") + ")\n";
txt += " mem_debug: Enable memory debugger (" + (withMemDebug? "yes" : "no") + ")\n";
txt += " regexps: Enable regular expressions (" + (withRegExps? "yes" : "no") + ")\n";
txt += " modules: Enable module support (" + (withModules? "yes" : "no") + ")\n";
txt += " tree: Enable tree api (" + (withTree? "yes" : "no") + ")\n";
txt += " reader: Enable xmlReader api (" + (withReader? "yes" : "no") + ")\n";
txt += " writer: Enable xmlWriter api (" + (withWriter? "yes" : "no") + ")\n";
txt += " walker: Enable xmlDocWalker api (" + (withWalker? "yes" : "no") + ")\n";
txt += " pattern: Enable xmlPattern api (" + (withPattern? "yes" : "no") + ")\n";
txt += " push: Enable push api (" + (withPush? "yes" : "no") + ")\n";
txt += " valid: Enable DTD validation support (" + (withValid? "yes" : "no") + ")\n";
txt += " sax1: Enable SAX1 api (" + (withSax1? "yes" : "no") + ")\n";
txt += " legacy: Enable Deprecated api's (" + (withLegacy? "yes" : "no") + ")\n";
txt += " output: Enable serialization support (" + (withOutput? "yes" : "no") + ")\n";
txt += " schemas: Enable XML Schema support (" + (withSchemas? "yes" : "no") + ")\n";
txt += " python: Build Python bindings (" + (withPython? "yes" : "no") + ")\n";
txt += "\nWin32 build options, default value given in parentheses:\n\n";
txt += " compiler: Compiler to be used [msvc|mingw|bcb] (" + compiler + ")\n";
txt += " cruntime: C-runtime compiler option (only msvc) (" + cruntime + ")\n";
txt += " dynruntime: Use the dynamic RTL (only bcb) (" + dynruntime + ")\n";
txt += " debug: Build unoptimised debug executables (" + (buildDebug? "yes" : "no") + ")\n";
txt += " static: Link xmllint statically to libxml2 (" + (buildStatic? "yes" : "no") + ")\n";
txt += " Note: automatically enabled if cruntime is not /MD or /MDd\n";
txt += " prefix: Base directory for the installation (" + buildPrefix + ")\n";
txt += " bindir: Directory where xmllint and friends should be installed\n";
txt += " (" + buildBinPrefix + ")\n";
txt += " incdir: Directory where headers should be installed\n";
txt += " (" + buildIncPrefix + ")\n";
txt += " libdir: Directory where static and import libraries should be\n";
txt += " installed (" + buildLibPrefix + ")\n";
txt += " sodir: Directory where shared libraries should be installed\n";
txt += " (" + buildSoPrefix + ")\n";
txt += " include: Additional search path for the compiler, particularily\n";
txt += " where iconv headers can be found (" + buildInclude + ")\n";
txt += " lib: Additional search path for the linker, particularily\n";
txt += " where iconv library can be found (" + buildLib + ")\n";
WScript.Echo(txt);
}
/* Discovers the version we are working with by reading the apropriate
configuration file. Despite its name, this also writes the configuration
file included by our makefile. */
function discoverVersion()
{
var fso, cf, vf, ln, s, iDot, iSlash;
fso = new ActiveXObject("Scripting.FileSystemObject");
verCvs = "";
if (useCvsVer && fso.FileExists("..\\CVS\\Entries")) {
cf = fso.OpenTextFile("..\\CVS\\Entries", 1);
while (cf.AtEndOfStream != true) {
ln = cf.ReadLine();
s = new String(ln);
if (s.search(/^\/ChangeLog\//) != -1) {
iDot = s.indexOf(".");
iSlash = s.indexOf("/", iDot);
verCvs = "CVS" + s.substring(iDot + 1, iSlash);
break;
}
}
cf.Close();
}
cf = fso.OpenTextFile(configFile, 1);
if (compiler == "msvc")
versionFile = ".\\config.msvc";
else if (compiler == "mingw")
versionFile = ".\\config.mingw";
else if (compiler == "bcb")
versionFile = ".\\config.bcb";
vf = fso.CreateTextFile(versionFile, true);
vf.WriteLine("# " + versionFile);
vf.WriteLine("# This file is generated automatically by " + WScript.ScriptName + ".");
vf.WriteBlankLines(1);
while (cf.AtEndOfStream != true) {
ln = cf.ReadLine();
s = new String(ln);
if (s.search(/^LIBXML_MAJOR_VERSION=/) != -1) {
vf.WriteLine(s);
verMajor = s.substring(s.indexOf("=") + 1, s.length)
} else if(s.search(/^LIBXML_MINOR_VERSION=/) != -1) {
vf.WriteLine(s);
verMinor = s.substring(s.indexOf("=") + 1, s.length)
} else if(s.search(/^LIBXML_MICRO_VERSION=/) != -1) {
vf.WriteLine(s);
verMicro = s.substring(s.indexOf("=") + 1, s.length)
} else if(s.search(/^LIBXML_MICRO_VERSION_SUFFIX=/) != -1) {
vf.WriteLine(s);
verMicroSuffix = s.substring(s.indexOf("=") + 1, s.length)
}
}
cf.Close();
vf.WriteLine("XML_SRCDIR=" + srcDirXml);
vf.WriteLine("UTILS_SRCDIR=" + srcDirUtils);
vf.WriteLine("WITH_TRIO=" + (withTrio? "1" : "0"));
vf.WriteLine("WITH_THREADS=" + withThreads);
vf.WriteLine("WITH_FTP=" + (withFtp? "1" : "0"));
vf.WriteLine("WITH_HTTP=" + (withHttp? "1" : "0"));
vf.WriteLine("WITH_HTML=" + (withHtml? "1" : "0"));
vf.WriteLine("WITH_C14N=" + (withC14n? "1" : "0"));
vf.WriteLine("WITH_CATALOG=" + (withCatalog? "1" : "0"));
vf.WriteLine("WITH_DOCB=" + (withDocb? "1" : "0"));
vf.WriteLine("WITH_XPATH=" + (withXpath? "1" : "0"));
vf.WriteLine("WITH_XPTR=" + (withXptr? "1" : "0"));
vf.WriteLine("WITH_XINCLUDE=" + (withXinclude? "1" : "0"));
vf.WriteLine("WITH_ICONV=" + (withIconv? "1" : "0"));
vf.WriteLine("WITH_ISO8859X=" + (withIso8859x? "1" : "0"));
vf.WriteLine("WITH_ZLIB=" + (withZlib? "1" : "0"));
vf.WriteLine("WITH_DEBUG=" + (withDebug? "1" : "0"));
vf.WriteLine("WITH_MEM_DEBUG=" + (withMemDebug? "1" : "0"));
vf.WriteLine("WITH_SCHEMAS=" + (withSchemas? "1" : "0"));
vf.WriteLine("WITH_REGEXPS=" + (withRegExps? "1" : "0"));
vf.WriteLine("WITH_MODULES=" + (withModules? "1" : "0"));
vf.WriteLine("WITH_TREE=" + (withTree? "1" : "0"));
vf.WriteLine("WITH_READER=" + (withReader? "1" : "0"));
vf.WriteLine("WITH_WRITER=" + (withWriter? "1" : "0"));
vf.WriteLine("WITH_WALKER=" + (withWalker? "1" : "0"));
vf.WriteLine("WITH_PATTERN=" + (withPattern? "1" : "0"));
vf.WriteLine("WITH_PUSH=" + (withPush? "1" : "0"));
vf.WriteLine("WITH_VALID=" + (withValid? "1" : "0"));
vf.WriteLine("WITH_SAX1=" + (withSax1? "1" : "0"));
vf.WriteLine("WITH_LEGACY=" + (withLegacy? "1" : "0"));
vf.WriteLine("WITH_OUTPUT=" + (withOutput? "1" : "0"));
vf.WriteLine("WITH_PYTHON=" + (withPython? "1" : "0"));
vf.WriteLine("DEBUG=" + (buildDebug? "1" : "0"));
vf.WriteLine("STATIC=" + (buildStatic? "1" : "0"));
vf.WriteLine("PREFIX=" + buildPrefix);
vf.WriteLine("BINPREFIX=" + buildBinPrefix);
vf.WriteLine("INCPREFIX=" + buildIncPrefix);
vf.WriteLine("LIBPREFIX=" + buildLibPrefix);
vf.WriteLine("SOPREFIX=" + buildSoPrefix);
if (compiler == "msvc") {
vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude);
vf.WriteLine("LIB=$(LIB);" + buildLib);
vf.WriteLine("CRUNTIME=" + cruntime);
} else if (compiler == "mingw") {
vf.WriteLine("INCLUDE+=;" + buildInclude);
vf.WriteLine("LIB+=;" + buildLib);
} else if (compiler == "bcb") {
vf.WriteLine("INCLUDE=" + buildInclude);
vf.WriteLine("LIB=" + buildLib);
vf.WriteLine("DYNRUNTIME=" + (dynruntime? "1" : "0"));
}
vf.Close();
}
/* Configures libxml. This one will generate xmlversion.h from xmlversion.h.in
taking what the user passed on the command line into account. */
function configureLibxml()
{
var fso, ofi, of, ln, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
ofi = fso.OpenTextFile(optsFileIn, 1);
of = fso.CreateTextFile(optsFile, true);
while (ofi.AtEndOfStream != true) {
ln = ofi.ReadLine();
s = new String(ln);
if (s.search(/\@VERSION\@/) != -1) {
of.WriteLine(s.replace(/\@VERSION\@/,
verMajor + "." + verMinor + "." + verMicro + verMicroSuffix));
} else if (s.search(/\@LIBXML_VERSION_NUMBER\@/) != -1) {
of.WriteLine(s.replace(/\@LIBXML_VERSION_NUMBER\@/,
verMajor*10000 + verMinor*100 + verMicro*1));
} else if (s.search(/\@LIBXML_VERSION_EXTRA\@/) != -1) {
of.WriteLine(s.replace(/\@LIBXML_VERSION_EXTRA\@/, verCvs));
} else if (s.search(/\@WITH_TRIO\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_TRIO\@/, withTrio? "1" : "0"));
} else if (s.search(/\@WITH_THREADS\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_THREADS\@/, withThreads == "no"? "0" : "1"));
} else if (s.search(/\@WITH_FTP\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_FTP\@/, withFtp? "1" : "0"));
} else if (s.search(/\@WITH_HTTP\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_HTTP\@/, withHttp? "1" : "0"));
} else if (s.search(/\@WITH_HTML\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_HTML\@/, withHtml? "1" : "0"));
} else if (s.search(/\@WITH_C14N\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_C14N\@/, withC14n? "1" : "0"));
} else if (s.search(/\@WITH_CATALOG\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_CATALOG\@/, withCatalog? "1" : "0"));
} else if (s.search(/\@WITH_DOCB\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_DOCB\@/, withDocb? "1" : "0"));
} else if (s.search(/\@WITH_XPATH\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_XPATH\@/, withXpath? "1" : "0"));
} else if (s.search(/\@WITH_XPTR\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_XPTR\@/, withXptr? "1" : "0"));
} else if (s.search(/\@WITH_XINCLUDE\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_XINCLUDE\@/, withXinclude? "1" : "0"));
} else if (s.search(/\@WITH_ICONV\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_ICONV\@/, withIconv? "1" : "0"));
} else if (s.search(/\@WITH_ISO8859X\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_ISO8859X\@/, withIso8859x? "1" : "0"));
} else if (s.search(/\@WITH_ZLIB\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_ZLIB\@/, withZlib? "1" : "0"));
} else if (s.search(/\@WITH_DEBUG\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_DEBUG\@/, withDebug? "1" : "0"));
} else if (s.search(/\@WITH_MEM_DEBUG\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_MEM_DEBUG\@/, withMemDebug? "1" : "0"));
} else if (s.search(/\@WITH_SCHEMAS\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_SCHEMAS\@/, withSchemas? "1" : "0"));
} else if (s.search(/\@WITH_REGEXPS\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_REGEXPS\@/, withRegExps? "1" : "0"));
} else if (s.search(/\@WITH_MODULES\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0"));
} else if (s.search(/\@MODULE_EXTENSION\@/) != -1) {
of.WriteLine(s.replace(/\@MODULE_EXTENSION\@/, ".dll"));
} else if (s.search(/\@WITH_TREE\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_TREE\@/, withTree? "1" : "0"));
} else if (s.search(/\@WITH_READER\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_READER\@/, withReader? "1" : "0"));
} else if (s.search(/\@WITH_WRITER\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_WRITER\@/, withWriter? "1" : "0"));
} else if (s.search(/\@WITH_WALKER\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_WALKER\@/, withWalker? "1" : "0"));
} else if (s.search(/\@WITH_PATTERN\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_PATTERN\@/, withPattern? "1" : "0"));
} else if (s.search(/\@WITH_PUSH\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_PUSH\@/, withPush? "1" : "0"));
} else if (s.search(/\@WITH_VALID\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_VALID\@/, withValid? "1" : "0"));
} else if (s.search(/\@WITH_SAX1\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_SAX1\@/, withSax1? "1" : "0"));
} else if (s.search(/\@WITH_LEGACY\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_LEGACY\@/, withLegacy? "1" : "0"));
} else if (s.search(/\@WITH_OUTPUT\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_OUTPUT\@/, withOutput? "1" : "0"));
} else
of.WriteLine(ln);
}
ofi.Close();
of.Close();
}
/* Configures Python bindings. Otherwise identical to the above */
function configureLibxmlPy()
{
var pyOptsFileIn = srcDirXml + "\\python\\setup.py.in";
var pyOptsFile = srcDirXml + "\\python\\setup.py";
var fso, ofi, of, ln, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
ofi = fso.OpenTextFile(pyOptsFileIn, 1);
of = fso.CreateTextFile(pyOptsFile, true);
while (ofi.AtEndOfStream != true) {
ln = ofi.ReadLine();
s = new String(ln);
if (s.search(/\@LIBXML_VERSION\@/) != -1) {
of.WriteLine(s.replace(/\@LIBXML_VERSION\@/,
verMajor + "." + verMinor + "." + verMicro));
} else if (s.search(/\@prefix\@/) != -1) {
of.WriteLine(s.replace(/\@prefix\@/, buildPrefix));
} else if (s.search(/\@WITH_THREADS\@/) != -1) {
of.WriteLine(s.replace(/\@WITH_THREADS\@/, withThreads == "no"? "0" : "1"));
} else
of.WriteLine(ln);
}
ofi.Close();
of.Close();
}
/* Creates the readme file for the binary distribution of 'bname', for the
version 'ver' in the file 'file'. This one is called from the Makefile when
generating a binary distribution. The parameters are passed by make. */
function genReadme(bname, ver, file)
{
var fso, f;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.CreateTextFile(file, true);
f.WriteLine(" " + bname + " " + ver);
f.WriteLine(" --------------");
f.WriteBlankLines(1);
f.WriteLine(" This is " + bname + ", version " + ver + ", binary package for the native Win32/IA32");
f.WriteLine("platform.");
f.WriteBlankLines(1);
f.WriteLine(" The files in this package do not require any special installation");
f.WriteLine("steps. Extract the contents of the archive whereever you wish and");
f.WriteLine("make sure that your tools which use " + bname + " can find it.");
f.WriteBlankLines(1);
f.WriteLine(" For example, if you want to run the supplied utilities from the command");
f.WriteLine("line, you can, if you wish, add the 'bin' subdirectory to the PATH");
f.WriteLine("environment variable.");
f.WriteLine(" If you want to make programmes in C which use " + bname + ", you'll");
f.WriteLine("likely know how to use the contents of this package. If you don't, please");
f.WriteLine("refer to your compiler's documentation.");
f.WriteBlankLines(1);
f.WriteLine(" If there is something you cannot keep for yourself, such as a problem,");
f.WriteLine("a cheer of joy, a comment or a suggestion, feel free to contact me using");
f.WriteLine("the address below.");
f.WriteBlankLines(1);
f.WriteLine(" Igor Zlatkovic ([email protected])");
f.Close();
}
/*
* main(),
* Execution begins here.
*/
// Parse the command-line arguments.
for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) {
var arg, opt;
arg = WScript.Arguments(i);
opt = arg.substring(0, arg.indexOf("="));
if (opt.length == 0)
opt = arg.substring(0, arg.indexOf(":"));
if (opt.length > 0) {
if (opt == "trio")
withTrio = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "threads")
withThreads = arg.substring(opt.length + 1, arg.length);
else if (opt == "ftp")
withFtp = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "http")
withHttp = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "html")
withHtml = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "c14n")
withC14n = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "catalog")
withCatalog = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "docb")
withDocb = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "xpath")
withXpath = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "xptr")
withXptr = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "xinclude")
withXinclude = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "iconv")
withIconv = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "iso8859x")
withIso8859x = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "zlib")
withZlib = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "xml_debug")
withDebug = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "mem_debug")
withMemDebug = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "schemas")
withSchemas = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "regexps")
withRegExps = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "tree")
withTree = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "reader")
withReader = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "writer")
withWriter = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "walker")
withWalker = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "pattern")
withPattern = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "push")
withPush = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "valid")
withValid = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "sax1")
withSax1 = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "legacy")
withLegacy = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "output")
withOutput = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "python")
withPython = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "compiler")
compiler = arg.substring(opt.length + 1, arg.length);
else if (opt == "cruntime")
cruntime = arg.substring(opt.length + 1, arg.length);
else if (opt == "dynruntime")
dynruntime = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "debug")
buildDebug = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "static")
buildStatic = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "prefix")
buildPrefix = arg.substring(opt.length + 1, arg.length);
else if (opt == "incdir")
buildIncPrefix = arg.substring(opt.length + 1, arg.length);
else if (opt == "bindir")
buildBinPrefix = arg.substring(opt.length + 1, arg.length);
else if (opt == "libdir")
buildLibPrefix = arg.substring(opt.length + 1, arg.length);
else if (opt == "sodir")
buildSoPrefix = arg.substring(opt.length + 1, arg.length);
else if (opt == "incdir")
buildIncPrefix = arg.substring(opt.length + 1, arg.length);
else if (opt == "include")
buildInclude = arg.substring(opt.length + 1, arg.length);
else if (opt == "lib")
buildLib = arg.substring(opt.length + 1, arg.length);
else if (opt == "release")
useCvsVer = false;
else
error = 1;
} else if (i == 0) {
if (arg == "genreadme") {
// This command comes from the Makefile and will not be checked
// for errors, because Makefile will always supply right the parameters.
genReadme(WScript.Arguments(1), WScript.Arguments(2), WScript.Arguments(3));
WScript.Quit(0);
} else if (arg == "help") {
usage();
WScript.Quit(0);
}
} else {
error = 1;
}
}
// If we fail here, it is because the user supplied an unrecognised argument.
if (error != 0) {
usage();
WScript.Quit(error);
}
// if user choses to link the c-runtime library statically into libxml2
// with /MT and friends, then we need to enable static linking for xmllint
if (cruntime == "/MT" || cruntime == "/MTd" ||
cruntime == "/ML" || cruntime == "/MLd") {
buildStatic = 1;
}
dirSep = "\\";
if (compiler == "mingw")
dirSep = "/";
if (buildBinPrefix == "")
buildBinPrefix = "$(PREFIX)" + dirSep + "bin";
if (buildIncPrefix == "")
buildIncPrefix = "$(PREFIX)" + dirSep + "include";
if (buildLibPrefix == "")
buildLibPrefix = "$(PREFIX)" + dirSep + "lib";
if (buildSoPrefix == "")
buildSoPrefix = "$(PREFIX)" + dirSep + "lib";
// Discover the version.
discoverVersion();
if (error != 0) {
WScript.Echo("Version discovery failed, aborting.");
WScript.Quit(error);
}
var outVerString = baseName + " version: " + verMajor + "." + verMinor + "." + verMicro;
if (verMicroSuffix && verMicroSuffix != "")
outVerString += "-" + verMicroSuffix;
if (verCvs && verCvs != "")
outVerString += "-" + verCvs;
WScript.Echo(outVerString);
// Configure libxml.
configureLibxml();
if (error != 0) {
WScript.Echo("Configuration failed, aborting.");
WScript.Quit(error);
}
if (withPython == true) {
configureLibxmlPy();
if (error != 0) {
WScript.Echo("Configuration failed, aborting.");
WScript.Quit(error);
}
}
// Create the makefile.
var fso = new ActiveXObject("Scripting.FileSystemObject");
var makefile = ".\\Makefile.msvc";
if (compiler == "mingw")
makefile = ".\\Makefile.mingw";
else if (compiler == "bcb")
makefile = ".\\Makefile.bcb";
fso.CopyFile(makefile, ".\\Makefile", true);
WScript.Echo("Created Makefile.");
// Create the config.h.
var confighsrc = "..\\include\\win32config.h";
var configh = "..\\config.h";
var f = fso.FileExists(configh);
if (f) {
var t = fso.GetFile(configh);
t.Attributes =0;
}
fso.CopyFile(confighsrc, configh, true);
WScript.Echo("Created config.h.");
// Display the final configuration.
var txtOut = "\nXML processor configuration\n";
txtOut += "---------------------------\n";
txtOut += " Trio: " + boolToStr(withTrio) + "\n";
txtOut += " Thread safety: " + withThreads + "\n";
txtOut += " FTP client: " + boolToStr(withFtp) + "\n";
txtOut += " HTTP client: " + boolToStr(withHttp) + "\n";
txtOut += " HTML processor: " + boolToStr(withHtml) + "\n";
txtOut += " C14N support: " + boolToStr(withC14n) + "\n";
txtOut += " Catalog support: " + boolToStr(withCatalog) + "\n";
txtOut += " DocBook support: " + boolToStr(withDocb) + "\n";
txtOut += " XPath support: " + boolToStr(withXpath) + "\n";
txtOut += " XPointer support: " + boolToStr(withXptr) + "\n";
txtOut += " XInclude support: " + boolToStr(withXinclude) + "\n";
txtOut += " iconv support: " + boolToStr(withIconv) + "\n";
txtOut += " iso8859x support: " + boolToStr(withIso8859x) + "\n";
txtOut += " zlib support: " + boolToStr(withZlib) + "\n";
txtOut += " Debugging module: " + boolToStr(withDebug) + "\n";
txtOut += " Memory debugging: " + boolToStr(withMemDebug) + "\n";
txtOut += " Regexp support: " + boolToStr(withRegExps) + "\n";
txtOut += " Module support: " + boolToStr(withModules) + "\n";
txtOut += " Tree support: " + boolToStr(withTree) + "\n";
txtOut += " Reader support: " + boolToStr(withReader) + "\n";
txtOut += " Writer support: " + boolToStr(withWriter) + "\n";
txtOut += " Walker support: " + boolToStr(withWalker) + "\n";
txtOut += " Pattern support: " + boolToStr(withPattern) + "\n";
txtOut += " Push support: " + boolToStr(withPush) + "\n";
txtOut += "Validation support: " + boolToStr(withValid) + "\n";
txtOut += " SAX1 support: " + boolToStr(withSax1) + "\n";
txtOut += " Legacy support: " + boolToStr(withLegacy) + "\n";
txtOut += " Output support: " + boolToStr(withOutput) + "\n";
txtOut += "XML Schema support: " + boolToStr(withSchemas) + "\n";
txtOut += " Python bindings: " + boolToStr(withPython) + "\n";
txtOut += "\n";
txtOut += "Win32 build configuration\n";
txtOut += "-------------------------\n";
txtOut += " Compiler: " + compiler + "\n";
if (compiler == "msvc")
txtOut += " C-Runtime option: " + cruntime + "\n";
else if (compiler == "bcb")
txtOut += " Use dynamic RTL: " + dynruntime + "\n";
txtOut += " Debug symbols: " + boolToStr(buildDebug) + "\n";
txtOut += " Static xmllint: " + boolToStr(buildStatic) + "\n";
txtOut += " Install prefix: " + buildPrefix + "\n";
txtOut += " Put tools in: " + buildBinPrefix + "\n";
txtOut += " Put headers in: " + buildIncPrefix + "\n";
txtOut += "Put static libs in: " + buildLibPrefix + "\n";
txtOut += "Put shared libs in: " + buildSoPrefix + "\n";
txtOut += " Include path: " + buildInclude + "\n";
txtOut += " Lib path: " + buildLib + "\n";
WScript.Echo(txtOut);
//
-288
View File
@@ -1,288 +0,0 @@
<?xml version="1.0"?>
<!--
win32/defgen.xsl
This stylesheet is used to transform doc/libxml2-api.xml into a pseudo-source,
which can then be preprocessed to get the .DEF file for the Microsoft's linker.
Use any XSLT processor to produce a file called libxml2.def.src in the win32
subdirectory, for example, run xsltproc from the win32 subdirectory:
xsltproc -o libxml2.def.src defgen.xsl ../doc/libxml2-api.xml
Once that finishes, rest assured, the Makefile will know what to do with the
generated file.
April 2003, Igor Zlatkovic <[email protected]>
-->
<!DOCTYPE xsl:stylesheet [ <!ENTITY nl '&#xd;&#xa;'> ]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text>#define LIBXML2_COMPILING_MSCCDEF&nl;</xsl:text>
<xsl:text>#include "../include/libxml/xmlversion.h"&nl;</xsl:text>
<xsl:text>LIBRARY libxml2&nl;</xsl:text>
<xsl:text>EXPORTS&nl;</xsl:text>
<xsl:for-each select="/api/symbols/*[self::variable or self::function]">
<!-- Basic tests -->
<xsl:if test="@file = 'c14n'">
<xsl:text>#ifdef LIBXML_C14N_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'catalog'">
<xsl:text>#ifdef LIBXML_CATALOG_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'debugXML'">
<xsl:text>#ifdef LIBXML_DEBUG_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'DOCBparser'">
<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'HTMLparser')
or (@file = 'HTMLtree')">
<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'nanohttp'">
<xsl:text>#ifdef LIBXML_HTTP_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'nanoftp'">
<xsl:text>#ifdef LIBXML_FTP_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'relaxng')
or (@file = 'xmlschemas')
or (@file = 'xmlschemastypes')">
<xsl:text>#ifdef LIBXML_SCHEMAS_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xinclude'">
<xsl:text>#ifdef LIBXML_XINCLUDE_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xlink'">
<xsl:text>#ifdef LIBXML_XLINK_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xmlautomata'">
<xsl:text>#ifdef LIBXML_AUTOMATA_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'xmlregexp')
or (@file = 'xmlunicode')">
<xsl:text>#ifdef LIBXML_REGEXP_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'xpath')
or (@file = 'xpathInternals')">
<xsl:text>#ifdef LIBXML_XPATH_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xpointer'">
<xsl:text>#ifdef LIBXML_XPTR_ENABLED&nl;</xsl:text>
</xsl:if>
<!-- Extended tests -->
<xsl:if test="(@name = 'htmlDefaultSAXHandlerInit')
or (@name = 'htmlInitAutoClose')
or (@name = 'htmlCreateFileParserCtxt')
or (@name = 'inithtmlDefaultSAXHandler')
or (@name = 'xmlIsXHTML')
or (@name = 'xmlIOHTTPOpenW')
or (@name = 'xmlRegisterHTTPPostCallbacks')
or (@name = 'xmlIOHTTPMatch')
or (@name = 'xmlIOHTTPOpen')
or (@name = 'xmlIOHTTPRead')
or (@name = 'xmlIOHTTPClose')">
<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'docbDefaultSAXHandlerInit')
or (@name = 'initdocbDefaultSAXHandler')">
<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@name = 'xmlValidBuildContentModel'">
<xsl:text>#ifdef LIBXML_REGEXP_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlIOFTPMatch')
or (@name = 'xmlIOFTPOpen')
or (@name = 'xmlIOFTPRead')
or (@name = 'xmlIOFTPClose')">
<xsl:text>#ifdef LIBXML_FTP_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlTextReaderRelaxNGValidate')
or (@name = 'xmlTextReaderRelaxNGSetSchema')">
<xsl:text>#ifdef LIBXML_SCHEMAS_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlXPathDebugDumpObject')
or (@name = 'xmlXPathDebugDumpCompExpr')">
<xsl:text>#ifdef LIBXML_DEBUG_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlMallocLoc')
or (@name = 'xmlMallocAtomicLoc')
or (@name = 'xmlReallocLoc')
or (@name = 'xmlMemStrdupLoc')">
<xsl:text>#ifdef DEBUG_MEMORY_LOCATION&nl;</xsl:text>
</xsl:if>
<!-- Symbol -->
<xsl:choose>
<xsl:when test="(@name = 'xmlMalloc')
or (@name = 'xmlMallocAtomic')
or (@name = 'xmlRealloc')
or (@name = 'xmlFree')
or (@name = 'xmlMemStrdup')">
<xsl:text>#ifdef LIBXML_THREAD_ALLOC_ENABLED&nl;</xsl:text>
<xsl:text>__</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&nl;</xsl:text>
<xsl:text>#else&nl;</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text> DATA&nl;</xsl:text>
<xsl:text>#endif&nl;</xsl:text>
</xsl:when>
<xsl:when test="(@name = 'docbDefaultSAXHandler')
or (@name = 'htmlDefaultSAXHandler')
or (@name = 'oldXMLWDcompatibility')
or (@name = 'xmlBufferAllocScheme')
or (@name = 'xmlDefaultBufferSize')
or (@name = 'xmlDefaultSAXHandler')
or (@name = 'xmlDefaultSAXLocator')
or (@name = 'xmlDoValidityCheckingDefaultValue')
or (@name = 'xmlGenericError')
or (@name = 'xmlGenericErrorContext')
or (@name = 'xmlGetWarningsDefaultValue')
or (@name = 'xmlIndentTreeOutput')
or (@name = 'xmlTreeIndentString')
or (@name = 'xmlKeepBlanksDefaultValue')
or (@name = 'xmlLineNumbersDefaultValue')
or (@name = 'xmlLoadExtDtdDefaultValue')
or (@name = 'xmlParserDebugEntities')
or (@name = 'xmlParserVersion')
or (@name = 'xmlPedanticParserDefaultValue')
or (@name = 'xmlSaveNoEmptyTags')
or (@name = 'xmlSubstituteEntitiesDefaultValue')
or (@name = 'xmlRegisterNodeDefaultValue')
or (@name = 'xmlDeregisterNodeDefaultValue')">
<xsl:text>#ifdef LIBXML_THREAD_ENABLED&nl;</xsl:text>
<xsl:if test="@name = 'docbDefaultSAXHandler'">
<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@name = 'htmlDefaultSAXHandler'">
<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:text>__</xsl:text>
<xsl:value-of select="@name"/>
<xsl:text>&nl;</xsl:text>
<xsl:if test="@name = 'docbDefaultSAXHandler'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@name = 'htmlDefaultSAXHandler'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:text>#else&nl;</xsl:text>
<xsl:if test="@name = 'docbDefaultSAXHandler'">
<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:if test="@name = 'htmlDefaultSAXHandler'">
<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
</xsl:if>
<xsl:value-of select="@name"/>
<xsl:text> DATA&nl;</xsl:text>
<xsl:if test="@name = 'docbDefaultSAXHandler'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@name = 'htmlDefaultSAXHandler'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:text>#endif&nl;</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="@name"/>
<xsl:if test="self::variable">
<xsl:text> DATA</xsl:text>
</xsl:if>
<xsl:text>&nl;</xsl:text>
</xsl:otherwise>
</xsl:choose>
<!-- Basic tests (close) -->
<xsl:if test="@file = 'c14n'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'catalog'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'debugXML'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'DOCBparser'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'HTMLparser')
or (@file = 'HTMLtree')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'nanohttp'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'nanoftp'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'relaxng')
or (@file = 'xmlschemas')
or (@file = 'xmlschemastypes')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xinclude'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xlink'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xmlautomata'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'xmlregexp')
or (@file = 'xmlunicode')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@file = 'xpath')
or (@file = 'xpathInternals')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@file = 'xpointer'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<!-- Extended tests (close) -->
<xsl:if test="(@name = 'htmlDefaultSAXHandlerInit')
or (@name = 'htmlInitAutoClose')
or (@name = 'htmlCreateFileParserCtxt')
or (@name = 'inithtmlDefaultSAXHandler')
or (@name = 'xmlIsXHTML')
or (@name = 'xmlIOHTTPOpenW')
or (@name = 'xmlRegisterHTTPPostCallbacks')
or (@name = 'xmlIOHTTPMatch')
or (@name = 'xmlIOHTTPOpen')
or (@name = 'xmlIOHTTPRead')
or (@name = 'xmlIOHTTPClose')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'docbDefaultSAXHandlerInit')
or (@name = 'initdocbDefaultSAXHandler')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="@name = 'xmlValidBuildContentModel'">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlIOFTPMatch')
or (@name = 'xmlIOFTPOpen')
or (@name = 'xmlIOFTPRead')
or (@name = 'xmlIOFTPClose')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlTextReaderRelaxNGValidate')
or (@name = 'xmlTextReaderRelaxNGSetSchema')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlXPathDebugDumpObject')
or (@name = 'xmlXPathDebugDumpCompExpr')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
<xsl:if test="(@name = 'xmlMallocLoc')
or (@name = 'xmlMallocAtomicLoc')
or (@name = 'xmlReallocLoc')
or (@name = 'xmlMemStrdupLoc')">
<xsl:text>#endif&nl;</xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
File diff suppressed because it is too large Load Diff
-1
View File
@@ -1 +0,0 @@
Microsoft C/C++ program database 2.00
-122
View File
@@ -1,122 +0,0 @@
<html>
<body>
<pre>
<h1>Build Log</h1>
<h3>
--------------------Configuration: libxml2 - Win32 (WCE x86em) Debug--------------------
</h3>
<h3>Command Lines</h3>
Creating temporary file "C:\DOCUME~1\fjvg\CONFIG~1\Temp\RSP12E.tmp" with contents
[
/nologo /W3 /Zi /Od /I "..\..\..\include" /I "..\..\include" /I "c:\ppc\libxml\XML\win32\wince" /D "DEBUG" /D _WIN32_WCE=300 /D "WIN32" /D "STRICT" /D "_WIN32_WCE_EMULATION" /D "INTERNATIONAL" /D "USA" /D "INTLMSG_CODEPAGE" /D "WIN32_PLATFORM_PSPC" /D "i486" /D UNDER_CE=300 /D "UNICODE" /D "_UNICODE" /D "_X86_" /D "x86" /Fp"X86EMDbg/libxml2.pch" /YX /Fo"X86EMDbg/" /Fd"X86EMDbg/" /Gz /c
"C:\ppc\libxml\XML\DOCBparser.c"
"C:\ppc\libxml\XML\encoding.c"
"C:\ppc\libxml\XML\entities.c"
"C:\ppc\libxml\XML\error.c"
"C:\ppc\libxml\XML\globals.c"
"C:\ppc\libxml\XML\hash.c"
"C:\ppc\libxml\XML\list.c"
"C:\ppc\libxml\XML\parser.c"
"C:\ppc\libxml\XML\parserInternals.c"
"C:\ppc\libxml\XML\SAX.c"
"C:\ppc\libxml\XML\threads.c"
"C:\ppc\libxml\XML\tree.c"
"C:\ppc\libxml\XML\uri.c"
"C:\ppc\libxml\XML\valid.c"
"C:\ppc\libxml\XML\win32\wince\wincecompat.c"
"C:\ppc\libxml\XML\xlink.c"
"C:\ppc\libxml\XML\xmlIO.c"
"C:\ppc\libxml\XML\xmlmemory.c"
"C:\ppc\libxml\XML\c14n.c"
"C:\ppc\libxml\XML\catalog.c"
"C:\ppc\libxml\XML\debugXML.c"
"C:\ppc\libxml\XML\HTMLparser.c"
"C:\ppc\libxml\XML\HTMLtree.c"
"C:\ppc\libxml\XML\nanoftp.c"
"C:\ppc\libxml\XML\nanohttp.c"
"C:\ppc\libxml\XML\xinclude.c"
"C:\ppc\libxml\XML\xpath.c"
"C:\ppc\libxml\XML\xpointer.c"
]
Creating command line "cl.exe @C:\DOCUME~1\fjvg\CONFIG~1\Temp\RSP12E.tmp"
Creating temporary file "C:\DOCUME~1\fjvg\CONFIG~1\Temp\RSP12F.tmp" with contents
[
corelibc.lib winsock.lib commctrl.lib coredll.lib /nologo /stack:0x10000,0x1000 /dll /incremental:yes /pdb:"X86EMDbg/libxml2.pdb" /debug /nodefaultlib:"OLDNAMES.lib" /nodefaultlib:libc.lib /nodefaultlib:libcd.lib /nodefaultlib:libcmt.lib /nodefaultlib:libcmtd.lib /nodefaultlib:msvcrt.lib /nodefaultlib:msvcrtd.lib /nodefaultlib:oldnames.lib /def:".\libxml2.def" /out:"X86EMDbg/libxml2.dll" /implib:"X86EMDbg/libxml2.lib" /windowsce:emulation /MACHINE:IX86
.\X86EMDbg\DOCBparser.obj
.\X86EMDbg\encoding.obj
.\X86EMDbg\entities.obj
.\X86EMDbg\error.obj
.\X86EMDbg\globals.obj
.\X86EMDbg\hash.obj
.\X86EMDbg\list.obj
.\X86EMDbg\parser.obj
.\X86EMDbg\parserInternals.obj
.\X86EMDbg\SAX.obj
.\X86EMDbg\threads.obj
.\X86EMDbg\tree.obj
.\X86EMDbg\uri.obj
.\X86EMDbg\valid.obj
.\X86EMDbg\wincecompat.obj
.\X86EMDbg\xlink.obj
.\X86EMDbg\xmlIO.obj
.\X86EMDbg\xmlmemory.obj
.\X86EMDbg\c14n.obj
.\X86EMDbg\catalog.obj
.\X86EMDbg\debugXML.obj
.\X86EMDbg\HTMLparser.obj
.\X86EMDbg\HTMLtree.obj
.\X86EMDbg\nanoftp.obj
.\X86EMDbg\nanohttp.obj
.\X86EMDbg\xinclude.obj
.\X86EMDbg\xpath.obj
.\X86EMDbg\xpointer.obj
]
Creating command line "link.exe @C:\DOCUME~1\fjvg\CONFIG~1\Temp\RSP12F.tmp"
<h3>Output Window</h3>
Compiling...
DOCBparser.c
encoding.c
entities.c
error.c
globals.c
hash.c
list.c
parser.c
C:\ppc\libxml\XML\parser.c(2282) : warning C4090: '=' : different 'const' qualifiers
parserInternals.c
SAX.c
threads.c
tree.c
uri.c
valid.c
wincecompat.c
C:\ppc\libxml\XML\win32\wince\wincecompat.c(37) : warning C4047: '=' : 'char ' differs in levels of indirection from 'char [2]'
C:\ppc\libxml\XML\win32\wince\wincecompat.c(39) : warning C4047: '=' : 'char ' differs in levels of indirection from 'char [2]'
C:\ppc\libxml\XML\win32\wince\wincecompat.c(40) : warning C4047: 'return' : 'int ' differs in levels of indirection from 'void *'
xlink.c
xmlIO.c
C:\ppc\libxml\XML\xmlIO.c(2404) : warning C4101: 'dir' : unreferenced local variable
C:\ppc\libxml\XML\xmlIO.c(2405) : warning C4101: 'cur' : unreferenced local variable
xmlmemory.c
c14n.c
catalog.c
debugXML.c
HTMLparser.c
HTMLtree.c
nanoftp.c
nanohttp.c
C:\ppc\libxml\XML\nanoftp.c(892) : warning C4761: integral size mismatch in argument; conversion supplied
xinclude.c
C:\ppc\libxml\XML\nanohttp.c(921) : warning C4761: integral size mismatch in argument; conversion supplied
xpath.c
xpointer.c
Linking...
Creating library X86EMDbg/libxml2.lib and object X86EMDbg/libxml2.exp
<h3>Results</h3>
libxml2.dll - 0 error(s), 8 warning(s)
</pre>
</body>
</html>
-1
View File
@@ -1 +0,0 @@
ÐÏࡱ
File diff suppressed because it is too large Load Diff
-41
View File
@@ -1,41 +0,0 @@
Microsoft eMbedded Visual Tools Workspace File, Format Version 3.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "libxml2"=.\libxml2.vcp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "ppcTest"=.\ppcTest\ppcTest.vcp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
-61
View File
@@ -1,61 +0,0 @@
/*
* wincecompat.c : wince compatiblity module
*
* See Copyright for the status of this software.
*
* [email protected]
*
* 17 Sep 2002 created
*/
#include "wincecompat.h"
char *strError[]= {"Error 0","","No such file or directory","","","","","Arg list too long",
"Exec format error","Bad file number","","","Not enough core","Permission denied","","",
"","File exists","Cross-device link","","","","Invalid argument","","Too many open files",
"","","","No space left on device","","","","","Math argument","Result too large","",
"Resource deadlock would occur", "Unknown error under wince"};
int errno=0;
int read(int handle, char *buffer, unsigned int len)
{
return(fread(&buffer[0], len, 1, (FILE *) handle));
}
int write(int handle, const char *buffer, unsigned int len)
{
return(fwrite(&buffer[0], len,1,(FILE *) handle));
}
int open(const char *filename,int oflag, ...)
{
char mode[3]; /* mode[0] ="w/r/a" mode[1]="+" */
mode[2]=0;
if ( oflag==(O_WRONLY|O_CREAT) )
mode[0]="w";
else if (oflag==O_RDONLY)
mode[0]="r";
return fopen(filename, mode);
}
int close(int handle)
{
return ( fclose((FILE *) handle) );
}
char *getenv( const char *varname )
{
return NULL;
}
char *strerror(int errnum)
{
if (errnum>MAX_STRERROR)
return strError[MAX_STRERROR];
else
return strError[errnum];
}
-46
View File
@@ -1,46 +0,0 @@
/*
* wincecompat.h : wince compatiblity header file
*
* See Copyright for the status of this software.
*
* [email protected]
*
* 17 Sep 2002 created
*/
#ifndef __WINCECOMPAT_H__
#define __WINCECOMPAT_H__
#include <stdio.h>
#define MAX_STRERROR 31
#define O_RDONLY 0x0000 /* open for reading only */
#define O_WRONLY 0x0001 /* open for writing only */
#define O_RDWR 0x0002 /* open for reading and writing */
#define O_APPEND 0x0008 /* writes done at eof */
#define O_CREAT 0x0100 /* create and open file */
#define O_TRUNC 0x0200 /* open and truncate */
#define O_EXCL 0x0400 /* open only if file doesn't already exist */
extern int errno;
/*
Prototypes
*/
int read(int handle, char *buffer, unsigned int len);
int write(int handle, const char *buffer, unsigned int len);
int open(const char *filename,int oflag, ...);
int close(int handle);
char *getenv( const char *varname );
char *strerror(int errnum);
/*
Macro'ed inexistant funtion names
*/
#define snprintf _snprintf
#define vsnprintf(b,c,f,a) _vsnprintf(b,c,f,a)
#define perror(_t) MessageBox(NULL, _T("_t"), _T("Error/Warning"), MB_OK)
#endif
-131
View File
@@ -1,131 +0,0 @@
#
# Definition for the tests from W3C
#
PYSCRIPTS=nist-test.py ms-test.py sun-test.py
TESTDIR=Tests
TESTDIRS=$(TESTDIR)/msxsdtest $(TESTDIR)/suntest $(TESTDIR)/Datatypes
TARBALL=xsts-2002-01-16.tar.gz
TARBALL_2=xsts-2004-01-14.tar.gz
TSNAME=xmlschema2002-01-16
TSNAME_2=xmlschema2004-01-14
TARBALLURL=http://www.w3.org/XML/2004/xml-schema-test-suite/$(TSNAME)/$(TARBALL)
TARBALLURL_2=http://www.w3.org/XML/2004/xml-schema-test-suite/$(TSNAME_2)/$(TARBALL_2)
MSTESTDEF=MSXMLSchema1-0-20020116.testSet
SUNTESTDEF=SunXMLSchema1-0-20020116.testSet
NISTTESTDEF=NISTXMLSchema1-0-20020116.testSet
NISTTESTDEF_2=NISTXMLSchemaDatatypes.testSet
#
# The local data and scripts
#
EXTRA_DIST=xstc.py xstc-to-python.xsl
#
# Nothing is done by make, only make tests and
# only if Python and Schemas are enabled.
#
all:
#
# Rule to load the test description and extract the informations
#
$(TESTDIRS) Tests/Metadata/$(NISTTESTDEF_2) Tests/Metadata/$(MSTTESTDEF) Tests/Metadata/$(SUNTESTDEF):
-@(if [ ! -d Tests ] ; then \
mkdir Tests ; \
fi)
-@(if [ ! -f $(TARBALL_2) ] ; then \
echo "Missing the test suite description (2004-01-14), trying to fetch it" ;\
if [ -x /usr/bin/wget ] ; then \
wget $(TARBALLURL_2) ; \
else echo "Dont' know how to fetch $(TARBALLURL_2)" ; fi ; fi)
-@(if [ -f $(TARBALL_2) ] ; then \
echo -n "extracting test data (NIST)..." ; \
$(TAR) -xzf $(TARBALL_2) '*/Datatypes' '*/Metadata/$(NISTTESTDEF_2)' ; \
echo "done" ; \
fi)
-@(if [ ! -f $(TARBALL) ] ; then \
echo "Missing the test suite description (2002-01-16), trying to fetch it" ;\
if [ -x /usr/bin/wget ] ; then \
wget $(TARBALLURL) ; \
else echo "Dont' know how to fetch $(TARBALLURL)" ; fi ; fi)
-@(if [ -f $(TARBALL) ] ; then \
echo -n "extracting test data (Sun, Microsoft)..." ; \
$(TAR) -C Tests -xzf $(TARBALL) '*/suntest' '*/msxsdtest' '*/$(MSTESTDEF)' '*/$(SUNTESTDEF)' ; \
if [ -d Tests/suntest ] ; then rm -r Tests/suntest ; fi ; \
if [ -d Tests/msxsdtest ] ; then rm -r Tests/msxsdtest ; fi ; \
mv Tests/xmlschema2002-01-16/* Tests ; \
mv Tests/*.testSet Tests/Metadata ; \
rm -r Tests/xmlschema2002-01-16 ; \
echo "done" ; \
fi)
#
# The python tests are generated via XSLT
#
nist-test.py: Tests/Metadata/$(NISTTESTDEF_2) xstc-to-python.xsl
-@(if [ -x $(XSLTPROC) ] ; then \
echo "Rebuilding script (NIST)" $@ ; \
$(XSLTPROC) --nonet --stringparam vendor NIST-2 \
$(srcdir)/xstc-to-python.xsl \
$(srcdir)/Tests/Metadata/$(NISTTESTDEF_2) > $@ ; \
chmod +x $@ ; fi )
ms-test.py: Tests/Metadata/$(MSTTESTDEF) xstc-to-python.xsl
-@(if [ -x $(XSLTPROC) ] ; then \
echo "Rebuilding script (Microsoft)" $@ ; \
$(XSLTPROC) --nonet --stringparam vendor MS \
$(srcdir)/xstc-to-python.xsl \
$(srcdir)/Tests/Metadata/$(MSTESTDEF) > $@ ; \
chmod +x $@ ; fi )
sun-test.py: Tests/Metadata/$(SUNTESTDEF) xstc-to-python.xsl
-@(if [ -x $(XSLTPROC) ] ; then \
echo "Rebuilding script (Sun)" $@ ; \
$(XSLTPROC) --nonet --stringparam vendor SUN \
$(srcdir)/xstc-to-python.xsl \
$(srcdir)/Tests/Metadata/$(SUNTESTDEF) > $@ ; \
chmod +x $@ ; fi )
#
# The actual test run if present. PYTHONPATH is updated to make sure
# we run the version from the loacl build and not preinstalled bindings
#
pytests: $(PYSCRIPTS) $(TESTDIRS)
-@(if [ -x nist-test.py -a -d $(TESTDIR)/Datatypes ] ; then \
echo "## Running XML Schema tests (NIST)"; \
PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
export PYTHONPATH; \
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
$(CHECKER) $(PYTHON) nist-test.py -s -b $(srcdir) ; fi)
-@(if [ -x sun-test.py -a -d $(TESTDIR)/suntest ] ; then \
echo "## Running Schema tests (Sun)"; \
PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
export PYTHONPATH; \
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
$(CHECKER) $(PYTHON) sun-test.py -s -b $(srcdir) ; fi)
-@(if [ -x ms-test.py -a -d $(TESTDIR)/msxsdtest ] ; then \
echo "## Running Schema tests (Microsoft)"; \
PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
export PYTHONPATH; \
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
$(CHECKER) $(PYTHON) ms-test.py -s -b $(srcdir) ; fi)
tests:
-@(if [ -x $(PYTHON) ] ; then \
$(MAKE) MAKEFLAGS+=--silent pytests ; fi);
#
# Heavy, works well only on RHEL3
#
valgrind:
-@(if [ -x $(PYTHON) ] ; then \
echo '## Running the regression tests under Valgrind' ; \
$(MAKE) CHECKER='valgrind' MAKEFLAGS+=--silent pytests ; fi);
clean:
rm -f $(PYSCRIPTS) test.log
distclean:
rm -rf $(PYSCRIPTS) test.log # TESTDIRS
-549
View File
@@ -1,549 +0,0 @@
# Makefile.in generated by automake 1.9.2 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
subdir = xstc
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
$(top_srcdir)/configure.in
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
SOURCES =
DIST_SOURCES =
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BASE_THREAD_LIBS = @BASE_THREAD_LIBS@
C14N_OBJ = @C14N_OBJ@
CATALOG_OBJ = @CATALOG_OBJ@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
CYGWIN_EXTRA_LDFLAGS = @CYGWIN_EXTRA_LDFLAGS@
CYGWIN_EXTRA_PYTHON_LIBADD = @CYGWIN_EXTRA_PYTHON_LIBADD@
DEBUG_OBJ = @DEBUG_OBJ@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DLLTOOL = @DLLTOOL@
DOCB_OBJ = @DOCB_OBJ@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FTP_OBJ = @FTP_OBJ@
HAVE_ISINF = @HAVE_ISINF@
HAVE_ISNAN = @HAVE_ISNAN@
HTML_DIR = @HTML_DIR@
HTML_OBJ = @HTML_OBJ@
HTTP_OBJ = @HTTP_OBJ@
ICONV_LIBS = @ICONV_LIBS@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIBXML_MAJOR_VERSION = @LIBXML_MAJOR_VERSION@
LIBXML_MICRO_VERSION = @LIBXML_MICRO_VERSION@
LIBXML_MINOR_VERSION = @LIBXML_MINOR_VERSION@
LIBXML_VERSION = @LIBXML_VERSION@
LIBXML_VERSION_EXTRA = @LIBXML_VERSION_EXTRA@
LIBXML_VERSION_INFO = @LIBXML_VERSION_INFO@
LIBXML_VERSION_NUMBER = @LIBXML_VERSION_NUMBER@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAKEINFO = @MAKEINFO@
MODULE_EXTENSION = @MODULE_EXTENSION@
MODULE_PLATFORM_LIBS = @MODULE_PLATFORM_LIBS@
MV = @MV@
M_LIBS = @M_LIBS@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PERL = @PERL@
PYTHON = @PYTHON@
PYTHON_INCLUDES = @PYTHON_INCLUDES@
PYTHON_SITE_PACKAGES = @PYTHON_SITE_PACKAGES@
PYTHON_SUBDIR = @PYTHON_SUBDIR@
PYTHON_TESTS = @PYTHON_TESTS@
PYTHON_VERSION = @PYTHON_VERSION@
RANLIB = @RANLIB@
RDL_LIBS = @RDL_LIBS@
READER_TEST = @READER_TEST@
RELDATE = @RELDATE@
RM = @RM@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STATIC_BINARIES = @STATIC_BINARIES@
STRIP = @STRIP@
TAR = @TAR@
TEST_C14N = @TEST_C14N@
TEST_CATALOG = @TEST_CATALOG@
TEST_DEBUG = @TEST_DEBUG@
TEST_HTML = @TEST_HTML@
TEST_MODULES = @TEST_MODULES@
TEST_PATTERN = @TEST_PATTERN@
TEST_PHTML = @TEST_PHTML@
TEST_PUSH = @TEST_PUSH@
TEST_REGEXPS = @TEST_REGEXPS@
TEST_SAX = @TEST_SAX@
TEST_SCHEMAS = @TEST_SCHEMAS@
TEST_THREADS = @TEST_THREADS@
TEST_VALID = @TEST_VALID@
TEST_VTIME = @TEST_VTIME@
TEST_XINCLUDE = @TEST_XINCLUDE@
TEST_XPATH = @TEST_XPATH@
TEST_XPTR = @TEST_XPTR@
THREADS_W32 = @THREADS_W32@
THREAD_CFLAGS = @THREAD_CFLAGS@
THREAD_LIBS = @THREAD_LIBS@
U = @U@
VERSION = @VERSION@
WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@
WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@
WITH_C14N = @WITH_C14N@
WITH_CATALOG = @WITH_CATALOG@
WITH_DEBUG = @WITH_DEBUG@
WITH_DOCB = @WITH_DOCB@
WITH_FTP = @WITH_FTP@
WITH_HTML = @WITH_HTML@
WITH_HTTP = @WITH_HTTP@
WITH_ICONV = @WITH_ICONV@
WITH_ISO8859X = @WITH_ISO8859X@
WITH_LEGACY = @WITH_LEGACY@
WITH_MEM_DEBUG = @WITH_MEM_DEBUG@
WITH_MODULES = @WITH_MODULES@
WITH_OUTPUT = @WITH_OUTPUT@
WITH_PATTERN = @WITH_PATTERN@
WITH_PUSH = @WITH_PUSH@
WITH_PYTHON_FALSE = @WITH_PYTHON_FALSE@
WITH_PYTHON_TRUE = @WITH_PYTHON_TRUE@
WITH_READER = @WITH_READER@
WITH_REGEXPS = @WITH_REGEXPS@
WITH_RUN_DEBUG = @WITH_RUN_DEBUG@
WITH_SAX1 = @WITH_SAX1@
WITH_SCHEMAS = @WITH_SCHEMAS@
WITH_THREADS = @WITH_THREADS@
WITH_TREE = @WITH_TREE@
WITH_TRIO = @WITH_TRIO@
WITH_TRIO_SOURCES_FALSE = @WITH_TRIO_SOURCES_FALSE@
WITH_TRIO_SOURCES_TRUE = @WITH_TRIO_SOURCES_TRUE@
WITH_VALID = @WITH_VALID@
WITH_WRITER = @WITH_WRITER@
WITH_XINCLUDE = @WITH_XINCLUDE@
WITH_XPATH = @WITH_XPATH@
WITH_XPTR = @WITH_XPTR@
XINCLUDE_OBJ = @XINCLUDE_OBJ@
XMLLINT = @XMLLINT@
XML_CFLAGS = @XML_CFLAGS@
XML_INCLUDEDIR = @XML_INCLUDEDIR@
XML_LIBDIR = @XML_LIBDIR@
XML_LIBS = @XML_LIBS@
XML_LIBTOOLLIBS = @XML_LIBTOOLLIBS@
XPATH_OBJ = @XPATH_OBJ@
XPTR_OBJ = @XPTR_OBJ@
XSLTPROC = @XSLTPROC@
Z_CFLAGS = @Z_CFLAGS@
Z_LIBS = @Z_LIBS@
ac_ct_AR = @ac_ct_AR@
ac_ct_AS = @ac_ct_AS@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_DLLTOOL = @ac_ct_DLLTOOL@
ac_ct_F77 = @ac_ct_F77@
ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
ac_ct_RANLIB = @ac_ct_RANLIB@
ac_ct_STRIP = @ac_ct_STRIP@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@
prefix = @prefix@
program_transform_name = @program_transform_name@
pythondir = @pythondir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
#
# Definition for the tests from W3C
#
PYSCRIPTS = nist-test.py ms-test.py sun-test.py
TESTDIR = Tests
TESTDIRS = $(TESTDIR)/msxsdtest $(TESTDIR)/suntest $(TESTDIR)/Datatypes
TARBALL = xsts-2002-01-16.tar.gz
TARBALL_2 = xsts-2004-01-14.tar.gz
TSNAME = xmlschema2002-01-16
TSNAME_2 = xmlschema2004-01-14
TARBALLURL = http://www.w3.org/XML/2004/xml-schema-test-suite/$(TSNAME)/$(TARBALL)
TARBALLURL_2 = http://www.w3.org/XML/2004/xml-schema-test-suite/$(TSNAME_2)/$(TARBALL_2)
MSTESTDEF = MSXMLSchema1-0-20020116.testSet
SUNTESTDEF = SunXMLSchema1-0-20020116.testSet
NISTTESTDEF = NISTXMLSchema1-0-20020116.testSet
NISTTESTDEF_2 = NISTXMLSchemaDatatypes.testSet
#
# The local data and scripts
#
EXTRA_DIST = xstc.py xstc-to-python.xsl
all: all-am
.SUFFIXES:
$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu xstc/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu xstc/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
tags: TAGS
TAGS:
ctags: CTAGS
CTAGS:
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile
installdirs:
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean-am: clean-generic clean-libtool mostlyclean-am
distclean-am: clean-am distclean-generic distclean-libtool
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am:
install-exec-am:
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-info-am
.PHONY: all all-am check check-am clean clean-generic clean-libtool \
distclean distclean-generic distclean-libtool distdir dvi \
dvi-am html html-am info info-am install install-am \
install-data install-data-am install-exec install-exec-am \
install-info install-info-am install-man install-strip \
installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-generic \
mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
uninstall-info-am
#
# Nothing is done by make, only make tests and
# only if Python and Schemas are enabled.
#
all:
#
# Rule to load the test description and extract the informations
#
$(TESTDIRS) Tests/Metadata/$(NISTTESTDEF_2) Tests/Metadata/$(MSTTESTDEF) Tests/Metadata/$(SUNTESTDEF):
-@(if [ ! -d Tests ] ; then \
mkdir Tests ; \
fi)
-@(if [ ! -f $(TARBALL_2) ] ; then \
echo "Missing the test suite description (2004-01-14), trying to fetch it" ;\
if [ -x /usr/bin/wget ] ; then \
wget $(TARBALLURL_2) ; \
else echo "Dont' know how to fetch $(TARBALLURL_2)" ; fi ; fi)
-@(if [ -f $(TARBALL_2) ] ; then \
echo -n "extracting test data (NIST)..." ; \
$(TAR) -xzf $(TARBALL_2) '*/Datatypes' '*/Metadata/$(NISTTESTDEF_2)' ; \
echo "done" ; \
fi)
-@(if [ ! -f $(TARBALL) ] ; then \
echo "Missing the test suite description (2002-01-16), trying to fetch it" ;\
if [ -x /usr/bin/wget ] ; then \
wget $(TARBALLURL) ; \
else echo "Dont' know how to fetch $(TARBALLURL)" ; fi ; fi)
-@(if [ -f $(TARBALL) ] ; then \
echo -n "extracting test data (Sun, Microsoft)..." ; \
$(TAR) -C Tests -xzf $(TARBALL) '*/suntest' '*/msxsdtest' '*/$(MSTESTDEF)' '*/$(SUNTESTDEF)' ; \
if [ -d Tests/suntest ] ; then rm -r Tests/suntest ; fi ; \
if [ -d Tests/msxsdtest ] ; then rm -r Tests/msxsdtest ; fi ; \
mv Tests/xmlschema2002-01-16/* Tests ; \
mv Tests/*.testSet Tests/Metadata ; \
rm -r Tests/xmlschema2002-01-16 ; \
echo "done" ; \
fi)
#
# The python tests are generated via XSLT
#
nist-test.py: Tests/Metadata/$(NISTTESTDEF_2) xstc-to-python.xsl
-@(if [ -x $(XSLTPROC) ] ; then \
echo "Rebuilding script (NIST)" $@ ; \
$(XSLTPROC) --nonet --stringparam vendor NIST-2 \
$(srcdir)/xstc-to-python.xsl \
$(srcdir)/Tests/Metadata/$(NISTTESTDEF_2) > $@ ; \
chmod +x $@ ; fi )
ms-test.py: Tests/Metadata/$(MSTTESTDEF) xstc-to-python.xsl
-@(if [ -x $(XSLTPROC) ] ; then \
echo "Rebuilding script (Microsoft)" $@ ; \
$(XSLTPROC) --nonet --stringparam vendor MS \
$(srcdir)/xstc-to-python.xsl \
$(srcdir)/Tests/Metadata/$(MSTESTDEF) > $@ ; \
chmod +x $@ ; fi )
sun-test.py: Tests/Metadata/$(SUNTESTDEF) xstc-to-python.xsl
-@(if [ -x $(XSLTPROC) ] ; then \
echo "Rebuilding script (Sun)" $@ ; \
$(XSLTPROC) --nonet --stringparam vendor SUN \
$(srcdir)/xstc-to-python.xsl \
$(srcdir)/Tests/Metadata/$(SUNTESTDEF) > $@ ; \
chmod +x $@ ; fi )
#
# The actual test run if present. PYTHONPATH is updated to make sure
# we run the version from the loacl build and not preinstalled bindings
#
pytests: $(PYSCRIPTS) $(TESTDIRS)
-@(if [ -x nist-test.py -a -d $(TESTDIR)/Datatypes ] ; then \
echo "## Running XML Schema tests (NIST)"; \
PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
export PYTHONPATH; \
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
$(CHECKER) $(PYTHON) nist-test.py -s -b $(srcdir) ; fi)
-@(if [ -x sun-test.py -a -d $(TESTDIR)/suntest ] ; then \
echo "## Running Schema tests (Sun)"; \
PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
export PYTHONPATH; \
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
$(CHECKER) $(PYTHON) sun-test.py -s -b $(srcdir) ; fi)
-@(if [ -x ms-test.py -a -d $(TESTDIR)/msxsdtest ] ; then \
echo "## Running Schema tests (Microsoft)"; \
PYTHONPATH="../python:../python/.libs:..:../libs:$$PYTHONPATH" ;\
export PYTHONPATH; \
LD_LIBRARY_PATH="$(top_builddir)/.libs:$$LD_LIBRARY_PATH" ; \
export LD_LIBRARY_PATH; \
$(CHECKER) $(PYTHON) ms-test.py -s -b $(srcdir) ; fi)
tests:
-@(if [ -x $(PYTHON) ] ; then \
$(MAKE) MAKEFLAGS+=--silent pytests ; fi);
#
# Heavy, works well only on RHEL3
#
valgrind:
-@(if [ -x $(PYTHON) ] ; then \
echo '## Running the regression tests under Valgrind' ; \
$(MAKE) CHECKER='valgrind' MAKEFLAGS+=--silent pytests ; fi);
clean:
rm -f $(PYSCRIPTS) test.log
distclean:
rm -rf $(PYSCRIPTS) test.log # TESTDIRS
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
-114
View File
@@ -1,114 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ts="TestSuite" version="1.0"
xmlns:xl="http://www.w3.org/1999/xlink">
<xsl:param name="vendor" select="'NIST'"/>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:text>#!/usr/bin/python -u
# -*- coding: UTF-8 -*-
#
# This file is generated from the W3C test suite description file.
#
import xstc
from xstc import XSTCTestRunner, XSTCTestGroup, XSTCSchemaTest, XSTCInstanceTest
xstc.vendor = "</xsl:text><xsl:value-of select="$vendor"/><xsl:text>"
r = XSTCTestRunner()
# Group definitions.
</xsl:text>
<xsl:apply-templates select="ts:testSet/ts:testGroup" mode="group-def"/>
<xsl:text>
# Test definitions.
</xsl:text>
<xsl:apply-templates select="ts:testSet/ts:testGroup" mode="test-def"/>
<xsl:text>
r.run()
</xsl:text>
</xsl:template>
<!-- groupName, descr -->
<xsl:template match="ts:testGroup" mode="group-def">
<xsl:text>r.addGroup(XSTCTestGroup("</xsl:text>
<!-- group -->
<xsl:value-of select="@name"/><xsl:text>", "</xsl:text>
<!-- main schema -->
<xsl:value-of select="ts:schemaTest[1]/ts:schemaDocument/@xl:href"/><xsl:text>", """</xsl:text>
<!-- group-description -->
<xsl:call-template name="str">
<xsl:with-param name="str" select="ts:annotation/ts:documentation/text()"/>
</xsl:call-template>
<xsl:text>"""))
</xsl:text>
</xsl:template>
<xsl:template name="str">
<xsl:param name="str"/>
<xsl:choose>
<xsl:when test="contains($str, '&quot;')">
<xsl:call-template name="str">
<xsl:with-param name="str" select="substring-before($str, '&quot;')"/>
</xsl:call-template>
<xsl:text>'</xsl:text>
<xsl:call-template name="str">
<xsl:with-param name="str" select="substring-after($str, '&quot;')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="ts:testGroup" mode="test-def">
<xsl:param name="group" select="@name"/>
<xsl:for-each select="ts:schemaTest">
<!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
<xsl:text>r.addTest(XSTCSchemaTest("</xsl:text>
<!-- group -->
<xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
<!-- test-name -->
<xsl:value-of select="@name"/><xsl:text>", </xsl:text>
<!-- accepted -->
<xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
<!-- filename -->
<xsl:value-of select="ts:schemaDocument/@xl:href"/><xsl:text>", </xsl:text>
<!-- validity -->
<xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
<!-- test-description -->
<xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
</xsl:text>
</xsl:for-each>
<xsl:for-each select="ts:instanceTest">
<!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
<xsl:text>r.addTest(XSTCInstanceTest("</xsl:text>
<!-- group -->
<xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
<!-- test-name -->
<xsl:value-of select="@name"/><xsl:text>", </xsl:text>
<!-- accepted -->
<xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
<!-- filename -->
<xsl:value-of select="ts:instanceDocument/@xl:href"/><xsl:text>", </xsl:text>
<!-- validity -->
<xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
<!-- test-description -->
<xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
-693
View File
@@ -1,693 +0,0 @@
#!/usr/bin/env python
#
# This is the MS subset of the W3C test suite for XML Schemas.
# This file is generated from the MS W3c test suite description file.
#
import sys, os
import exceptions, optparse
import libxml2
opa = optparse.OptionParser()
opa.add_option("-b", "--base", action="store", type="string", dest="baseDir",
default="",
help="""The base directory; i.e. the parent folder of the
"nisttest", "suntest" and "msxsdtest" directories.""")
opa.add_option("-o", "--out", action="store", type="string", dest="logFile",
default="test.log",
help="The filepath of the log file to be created")
opa.add_option("--log", action="store_true", dest="enableLog",
default=False,
help="Create the log file")
opa.add_option("--no-test-out", action="store_true", dest="disableTestStdOut",
default=False,
help="Don't output test results")
opa.add_option("-s", "--silent", action="store_true", dest="silent", default=False,
help="Disables display of all tests")
opa.add_option("-v", "--verbose", action="store_true", dest="verbose",
default=False,
help="Displays all tests (only if --silent is not set)")
opa.add_option("-x", "--max", type="int", dest="maxTestCount",
default="-1",
help="The maximum number of tests to be run")
opa.add_option("-t", "--test", type="string", dest="singleTest",
default=None,
help="Runs the specified test only")
opa.add_option("--tsw", "--test-starts-with", type="string", dest="testStartsWith",
default=None,
help="Runs the specified test(s), starting with the given string")
opa.add_option("--rieo", "--report-internal-errors-only", action="store_true",
dest="reportInternalErrOnly", default=False,
help="Display erroneous tests of type 'internal' only")
opa.add_option("--rueo", "--report-unimplemented-errors-only", action="store_true",
dest="reportUnimplErrOnly", default=False,
help="Display erroneous tests of type 'unimplemented' only")
opa.add_option("--rmleo", "--report-mem-leak-errors-only", action="store_true",
dest="reportMemLeakErrOnly", default=False,
help="Display erroneous tests of type 'memory leak' only")
opa.add_option("-c", "--combines", type="string", dest="combines",
default=None,
help="Combines to be run (all if omitted)")
opa.add_option("--csw", "--csw", type="string", dest="combineStartsWith",
default=None,
help="Combines to be run (all if omitted)")
opa.add_option("--rc", "--report-combines", action="store_true",
dest="reportCombines", default=False,
help="Display combine reports")
opa.add_option("--rec", "--report-err-combines", action="store_true",
dest="reportErrCombines", default=False,
help="Display erroneous combine reports only")
opa.add_option("--debug", action="store_true",
dest="debugEnabled", default=False,
help="Displays debug messages")
opa.add_option("--info", action="store_true",
dest="info", default=False,
help="Displays info on the suite only. Does not run any test.")
opa.add_option("--sax", action="store_true",
dest="validationSAX", default=False,
help="Use SAX2-driven validation.")
opa.add_option("--tn", action="store_true",
dest="displayTestName", default=False,
help="Display the test name in every case.")
(options, args) = opa.parse_args()
if options.combines is not None:
options.combines = options.combines.split()
################################################
# The vars below are not intended to be changed.
#
msgSchemaNotValidButShould = "The schema should be valid."
msgSchemaValidButShouldNot = "The schema should be invalid."
msgInstanceNotValidButShould = "The instance should be valid."
msgInstanceValidButShouldNot = "The instance should be invalid."
vendorNIST = "NIST"
vendorNIST_2 = "NIST-2"
vendorSUN = "SUN"
vendorMS = "MS"
###################
# Helper functions.
#
vendor = None
def handleError(test, msg):
global options
if not options.silent:
test.addLibLog("'%s' LIB: %s" % (test.name, msg))
if msg.find("Unimplemented") > -1:
test.failUnimplemented()
elif msg.find("Internal") > -1:
test.failInternal()
def fixFileNames(fileName):
if (fileName is None) or (fileName == ""):
return ""
dirs = fileName.split("/")
if dirs[1] != "Tests":
fileName = os.path.join(".", "Tests")
for dir in dirs[1:]:
fileName = os.path.join(fileName, dir)
return fileName
class XSTCTestGroup:
def __init__(self, name, schemaFileName, descr):
global vendor, vendorNIST_2
self.name = name
self.descr = descr
self.mainSchema = True
self.schemaFileName = fixFileNames(schemaFileName)
self.schemaParsed = False
self.schemaTried = False
def setSchema(self, schemaFileName, parsed):
if not self.mainSchema:
return
self.mainSchema = False
self.schemaParsed = parsed
self.schemaTried = True
class XSTCTestCase:
# <!-- groupName, Name, Accepted, File, Val, Descr
def __init__(self, isSchema, groupName, name, accepted, file, val, descr):
global options
#
# Constructor.
#
self.testRunner = None
self.isSchema = isSchema
self.groupName = groupName
self.name = name
self.accepted = accepted
self.fileName = fixFileNames(file)
self.val = val
self.descr = descr
self.failed = False
self.combineName = None
self.log = []
self.libLog = []
self.initialMemUsed = 0
self.memLeak = 0
self.excepted = False
self.bad = False
self.unimplemented = False
self.internalErr = False
self.noSchemaErr = False
self.failed = False
#
# Init the log.
#
if not options.silent:
if self.descr is not None:
self.log.append("'%s' descr: %s\n" % (self.name, self.descr))
self.log.append("'%s' exp validity: %d\n" % (self.name, self.val))
def initTest(self, runner):
global vendorNIST, vendorSUN, vendorMS, vendorNIST_2, options, vendor
#
# Get the test-group.
#
self.runner = runner
self.group = runner.getGroup(self.groupName)
if vendor == vendorMS or vendor == vendorSUN:
#
# Use the last given directory for the combine name.
#
dirs = self.fileName.split("/")
self.combineName = dirs[len(dirs) -2]
elif vendor == vendorNIST:
#
# NIST files are named in the following form:
# "NISTSchema-short-pattern-1.xsd"
#
tokens = self.name.split("-")
self.combineName = tokens[1]
elif vendor == vendorNIST_2:
#
# Group-names have the form: "atomic-normalizedString-length-1"
#
tokens = self.groupName.split("-")
self.combineName = "%s-%s" % (tokens[0], tokens[1])
else:
self.combineName = "unkown"
raise Exception("Could not compute the combine name of a test.")
if (not options.silent) and (self.group.descr is not None):
self.log.append("'%s' group-descr: %s\n" % (self.name, self.group.descr))
def addLibLog(self, msg):
"""This one is intended to be used by the error handler
function"""
global options
if not options.silent:
self.libLog.append(msg)
def fail(self, msg):
global options
self.failed = True
if not options.silent:
self.log.append("'%s' ( FAILED: %s\n" % (self.name, msg))
def failNoSchema(self):
global options
self.failed = True
self.noSchemaErr = True
if not options.silent:
self.log.append("'%s' X NO-SCHEMA\n" % (self.name))
def failInternal(self):
global options
self.failed = True
self.internalErr = True
if not options.silent:
self.log.append("'%s' * INTERNAL\n" % self.name)
def failUnimplemented(self):
global options
self.failed = True
self.unimplemented = True
if not options.silent:
self.log.append("'%s' ? UNIMPLEMENTED\n" % self.name)
def failCritical(self, msg):
global options
self.failed = True
self.bad = True
if not options.silent:
self.log.append("'%s' ! BAD: %s\n" % (self.name, msg))
def failExcept(self, e):
global options
self.failed = True
self.excepted = True
if not options.silent:
self.log.append("'%s' # EXCEPTION: %s\n" % (self.name, e.__str__()))
def setUp(self):
#
# Set up Libxml2.
#
self.initialMemUsed = libxml2.debugMemory(1)
libxml2.initParser()
libxml2.lineNumbersDefault(1)
libxml2.registerErrorHandler(handleError, self)
def tearDown(self):
libxml2.schemaCleanupTypes()
libxml2.cleanupParser()
self.memLeak = libxml2.debugMemory(1) - self.initialMemUsed
def isIOError(self, file, docType):
err = None
try:
err = libxml2.lastError()
except:
# Suppress exceptions.
pass
if (err is None):
return False
if err.domain() == libxml2.XML_FROM_IO:
self.failCritical("failed to access the %s resource '%s'\n" % (docType, file))
def debugMsg(self, msg):
global options
if options.debugEnabled:
sys.stdout.write("'%s' DEBUG: %s\n" % (self.name, msg))
def finalize(self):
global options
"""Adds additional info to the log."""
#
# Add libxml2 messages.
#
if not options.silent:
self.log.extend(self.libLog)
#
# Add memory leaks.
#
if self.memLeak != 0:
self.log.append("%s + memory leak: %d bytes\n" % (self.name, self.memLeak))
def run(self):
"""Runs a test."""
global options
##filePath = os.path.join(options.baseDir, self.fileName)
# filePath = "%s/%s/%s/%s" % (options.baseDir, self.test_Folder, self.schema_Folder, self.schema_File)
if options.displayTestName:
sys.stdout.write("'%s'\n" % self.name)
try:
self.validate()
except (Exception, libxml2.parserError, libxml2.treeError), e:
self.failExcept(e)
def parseSchema(fileName):
schema = None
ctxt = libxml2.schemaNewParserCtxt(fileName)
try:
try:
schema = ctxt.schemaParse()
except:
pass
finally:
del ctxt
return schema
class XSTCSchemaTest(XSTCTestCase):
def __init__(self, groupName, name, accepted, file, val, descr):
XSTCTestCase.__init__(self, 1, groupName, name, accepted, file, val, descr)
def validate(self):
global msgSchemaNotValidButShould, msgSchemaValidButShouldNot
schema = None
filePath = self.fileName
# os.path.join(options.baseDir, self.fileName)
valid = 0
try:
#
# Parse the schema.
#
self.debugMsg("loading schema: %s" % filePath)
schema = parseSchema(filePath)
self.debugMsg("after loading schema")
if schema is None:
self.debugMsg("schema is None")
self.debugMsg("checking for IO errors...")
if self.isIOError(file, "schema"):
return
self.debugMsg("checking schema result")
if (schema is None and self.val) or (schema is not None and self.val == 0):
self.debugMsg("schema result is BAD")
if (schema == None):
self.fail(msgSchemaNotValidButShould)
else:
self.fail(msgSchemaValidButShouldNot)
else:
self.debugMsg("schema result is OK")
finally:
self.group.setSchema(self.fileName, schema is not None)
del schema
class XSTCInstanceTest(XSTCTestCase):
def __init__(self, groupName, name, accepted, file, val, descr):
XSTCTestCase.__init__(self, 0, groupName, name, accepted, file, val, descr)
def validate(self):
instance = None
schema = None
filePath = self.fileName
# os.path.join(options.baseDir, self.fileName)
if not self.group.schemaParsed and self.group.schemaTried:
self.failNoSchema()
return
self.debugMsg("loading instance: %s" % filePath)
parserCtxt = libxml2.newParserCtxt()
if (parserCtxt is None):
# TODO: Is this one necessary, or will an exception
# be already raised?
raise Exception("Could not create the instance parser context.")
if not options.validationSAX:
try:
try:
instance = parserCtxt.ctxtReadFile(filePath, None, libxml2.XML_PARSE_NOWARNING)
except:
# Suppress exceptions.
pass
finally:
del parserCtxt
self.debugMsg("after loading instance")
if instance is None:
self.debugMsg("instance is None")
self.failCritical("Failed to parse the instance for unknown reasons.")
return
try:
#
# Validate the instance.
#
self.debugMsg("loading schema: %s" % self.group.schemaFileName)
schema = parseSchema(self.group.schemaFileName)
try:
validationCtxt = schema.schemaNewValidCtxt()
#validationCtxt = libxml2.schemaNewValidCtxt(None)
if (validationCtxt is None):
self.failCritical("Could not create the validation context.")
return
try:
self.debugMsg("validating instance")
if options.validationSAX:
instance_Err = validationCtxt.schemaValidateFile(filePath, 0)
else:
instance_Err = validationCtxt.schemaValidateDoc(instance)
self.debugMsg("after instance validation")
self.debugMsg("instance-err: %d" % instance_Err)
if (instance_Err != 0 and self.val == 1) or (instance_Err == 0 and self.val == 0):
self.debugMsg("instance result is BAD")
if (instance_Err != 0):
self.fail(msgInstanceNotValidButShould)
else:
self.fail(msgInstanceValidButShouldNot)
else:
self.debugMsg("instance result is OK")
finally:
del validationCtxt
finally:
del schema
finally:
if instance is not None:
instance.freeDoc()
####################
# Test runner class.
#
class XSTCTestRunner:
CNT_TOTAL = 0
CNT_RAN = 1
CNT_SUCCEEDED = 2
CNT_FAILED = 3
CNT_UNIMPLEMENTED = 4
CNT_INTERNAL = 5
CNT_BAD = 6
CNT_EXCEPTED = 7
CNT_MEMLEAK = 8
CNT_NOSCHEMA = 9
CNT_NOTACCEPTED = 10
CNT_SCHEMA_TEST = 11
def __init__(self):
self.logFile = None
self.counters = self.createCounters()
self.testList = []
self.combinesRan = {}
self.groups = {}
self.curGroup = None
def createCounters(self):
counters = {self.CNT_TOTAL:0, self.CNT_RAN:0, self.CNT_SUCCEEDED:0,
self.CNT_FAILED:0, self.CNT_UNIMPLEMENTED:0, self.CNT_INTERNAL:0, self.CNT_BAD:0,
self.CNT_EXCEPTED:0, self.CNT_MEMLEAK:0, self.CNT_NOSCHEMA:0, self.CNT_NOTACCEPTED:0,
self.CNT_SCHEMA_TEST:0}
return counters
def addTest(self, test):
self.testList.append(test)
test.initTest(self)
def getGroup(self, groupName):
return self.groups[groupName]
def addGroup(self, group):
self.groups[group.name] = group
def updateCounters(self, test, counters):
if test.memLeak != 0:
counters[self.CNT_MEMLEAK] += 1
if not test.failed:
counters[self.CNT_SUCCEEDED] +=1
if test.failed:
counters[self.CNT_FAILED] += 1
if test.bad:
counters[self.CNT_BAD] += 1
if test.unimplemented:
counters[self.CNT_UNIMPLEMENTED] += 1
if test.internalErr:
counters[self.CNT_INTERNAL] += 1
if test.noSchemaErr:
counters[self.CNT_NOSCHEMA] += 1
if test.excepted:
counters[self.CNT_EXCEPTED] += 1
if not test.accepted:
counters[self.CNT_NOTACCEPTED] += 1
if test.isSchema:
counters[self.CNT_SCHEMA_TEST] += 1
return counters
def displayResults(self, out, all, combName, counters):
out.write("\n")
if all:
if options.combines is not None:
out.write("combine(s): %s\n" % str(options.combines))
elif combName is not None:
out.write("combine : %s\n" % combName)
out.write(" total : %d\n" % counters[self.CNT_TOTAL])
if all or options.combines is not None:
out.write(" ran : %d\n" % counters[self.CNT_RAN])
out.write(" (schemata) : %d\n" % counters[self.CNT_SCHEMA_TEST])
# out.write(" succeeded : %d\n" % counters[self.CNT_SUCCEEDED])
out.write(" not accepted : %d\n" % counters[self.CNT_NOTACCEPTED])
if counters[self.CNT_FAILED] > 0:
out.write(" failed : %d\n" % counters[self.CNT_FAILED])
out.write(" -> internal : %d\n" % counters[self.CNT_INTERNAL])
out.write(" -> unimpl. : %d\n" % counters[self.CNT_UNIMPLEMENTED])
out.write(" -> skip-invalid-schema : %d\n" % counters[self.CNT_NOSCHEMA])
out.write(" -> bad : %d\n" % counters[self.CNT_BAD])
out.write(" -> exceptions : %d\n" % counters[self.CNT_EXCEPTED])
out.write(" memory leaks : %d\n" % counters[self.CNT_MEMLEAK])
def displayShortResults(self, out, all, combName, counters):
out.write("Ran %d of %d tests (%d schemata):" % (counters[self.CNT_RAN],
counters[self.CNT_TOTAL], counters[self.CNT_SCHEMA_TEST]))
# out.write(" succeeded : %d\n" % counters[self.CNT_SUCCEEDED])
if counters[self.CNT_NOTACCEPTED] > 0:
out.write(" %d not accepted" % (counters[self.CNT_NOTACCEPTED]))
if counters[self.CNT_FAILED] > 0 or counters[self.CNT_MEMLEAK] > 0:
if counters[self.CNT_FAILED] > 0:
out.write(" %d failed" % (counters[self.CNT_FAILED]))
out.write(" (")
if counters[self.CNT_INTERNAL] > 0:
out.write(" %d internal" % (counters[self.CNT_INTERNAL]))
if counters[self.CNT_UNIMPLEMENTED] > 0:
out.write(" %d unimplemented" % (counters[self.CNT_UNIMPLEMENTED]))
if counters[self.CNT_NOSCHEMA] > 0:
out.write(" %d skip-invalid-schema" % (counters[self.CNT_NOSCHEMA]))
if counters[self.CNT_BAD] > 0:
out.write(" %d bad" % (counters[self.CNT_BAD]))
if counters[self.CNT_EXCEPTED] > 0:
out.write(" %d exception" % (counters[self.CNT_EXCEPTED]))
out.write(" )")
if counters[self.CNT_MEMLEAK] > 0:
out.write(" %d leaks" % (counters[self.CNT_MEMLEAK]))
out.write("\n")
else:
out.write(" all passed\n")
def reportCombine(self, combName):
global options
counters = self.createCounters()
#
# Compute evaluation counters.
#
for test in self.combinesRan[combName]:
counters[self.CNT_TOTAL] += 1
counters[self.CNT_RAN] += 1
counters = self.updateCounters(test, counters)
if options.reportErrCombines and (counters[self.CNT_FAILED] == 0) and (counters[self.CNT_MEMLEAK] == 0):
pass
else:
if options.enableLog:
self.displayResults(self.logFile, False, combName, counters)
self.displayResults(sys.stdout, False, combName, counters)
def displayTestLog(self, test):
sys.stdout.writelines(test.log)
sys.stdout.write("~~~~~~~~~~\n")
def reportTest(self, test):
global options
error = test.failed or test.memLeak != 0
#
# Only erroneous tests will be written to the log,
# except @verbose is switched on.
#
if options.enableLog and (options.verbose or error):
self.logFile.writelines(test.log)
self.logFile.write("~~~~~~~~~~\n")
#
# if not @silent, only erroneous tests will be
# written to stdout, except @verbose is switched on.
#
if not options.silent:
if options.reportInternalErrOnly and test.internalErr:
self.displayTestLog(test)
if options.reportMemLeakErrOnly and test.memLeak != 0:
self.displayTestLog(test)
if options.reportUnimplErrOnly and test.unimplemented:
self.displayTestLog(test)
if (options.verbose or error) and (not options.reportInternalErrOnly) and (not options.reportMemLeakErrOnly) and (not options.reportUnimplErrOnly):
self.displayTestLog(test)
def addToCombines(self, test):
found = False
if self.combinesRan.has_key(test.combineName):
self.combinesRan[test.combineName].append(test)
else:
self.combinesRan[test.combineName] = [test]
def run(self):
global options
if options.info:
for test in self.testList:
self.addToCombines(test)
sys.stdout.write("Combines: %d\n" % len(self.combinesRan))
sys.stdout.write("%s\n" % self.combinesRan.keys())
return
if options.enableLog:
self.logFile = open(options.logFile, "w")
try:
for test in self.testList:
self.counters[self.CNT_TOTAL] += 1
#
# Filter tests.
#
if options.singleTest is not None and options.singleTest != "":
if (test.name != options.singleTest):
continue
elif options.combines is not None:
if not options.combines.__contains__(test.combineName):
continue
elif options.testStartsWith is not None:
if not test.name.startswith(options.testStartsWith):
continue
elif options.combineStartsWith is not None:
if not test.combineName.startswith(options.combineStartsWith):
continue
if options.maxTestCount != -1 and self.counters[self.CNT_RAN] >= options.maxTestCount:
break
self.counters[self.CNT_RAN] += 1
#
# Run the thing, dammit.
#
try:
test.setUp()
try:
test.run()
finally:
test.tearDown()
finally:
#
# Evaluate.
#
test.finalize()
self.reportTest(test)
if options.reportCombines or options.reportErrCombines:
self.addToCombines(test)
self.counters = self.updateCounters(test, self.counters)
finally:
if options.reportCombines or options.reportErrCombines:
#
# Build a report for every single combine.
#
# TODO: How to sort a dict?
#
self.combinesRan.keys().sort(None)
for key in self.combinesRan.keys():
self.reportCombine(key)
#
# Display the final report.
#
if options.silent:
self.displayShortResults(sys.stdout, True, None, self.counters)
else:
sys.stdout.write("===========================\n")
self.displayResults(sys.stdout, True, None, self.counters)