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

    1: <?xml version="1.0"?>
    2: <!-- 
    3: 	win32/defgen.xsl
    4: 	This stylesheet is used to transform doc/libxml2-api.xml into a pseudo-source,
    5: 	which can then be preprocessed to get the .DEF file for the Microsoft's linker.
    6: 	
    7: 	Use any XSLT processor to produce a file called libxml2.def.src in the win32
    8: 	subdirectory, for example, run xsltproc from the win32 subdirectory:
    9: 	
   10: 	  xsltproc -o libxml2.def.src defgen.xsl ../doc/libxml2-api.xml
   11: 	  
   12: 	Once that finishes, rest assured, the Makefile will know what to do with the
   13: 	generated file. 
   14: 
   15: 	April 2003, Igor Zlatkovic <igor@zlatkovic.com>
   16: -->
   17: <!DOCTYPE xsl:stylesheet [ <!ENTITY nl '&#xd;&#xa;'> ]>
   18: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   19: 	<xsl:strip-space elements="*"/>
   20: 	<xsl:output method="text"/>
   21: 	<xsl:template match="/">
   22: 		<xsl:text>#define LIBXML2_COMPILING_MSCCDEF&nl;</xsl:text>
   23: 		<xsl:text>#include "../include/libxml/xmlversion.h"&nl;</xsl:text>
   24: 		<xsl:text>LIBRARY libxml2&nl;</xsl:text>
   25: 		<xsl:text>EXPORTS&nl;</xsl:text>
   26: 		<xsl:for-each select="/api/symbols/*[self::variable or self::function]">
   27: 			<!-- Basic tests -->
   28: 			<xsl:if test="@file = 'c14n'">
   29: 				<xsl:text>#ifdef LIBXML_C14N_ENABLED&nl;</xsl:text>
   30: 			</xsl:if>
   31: 			<xsl:if test="@file = 'catalog'">
   32: 				<xsl:text>#ifdef LIBXML_CATALOG_ENABLED&nl;</xsl:text>
   33: 			</xsl:if>
   34: 			<xsl:if test="@file = 'debugXML'">
   35: 				<xsl:text>#ifdef LIBXML_DEBUG_ENABLED&nl;</xsl:text>
   36: 			</xsl:if>
   37: 			<xsl:if test="@file = 'DOCBparser'">
   38: 				<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
   39: 			</xsl:if>
   40: 			<xsl:if test="(@file = 'HTMLparser') 
   41: 					or (@file = 'HTMLtree')">
   42: 				<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
   43: 			</xsl:if>
   44: 			<xsl:if test="@file = 'nanohttp'">
   45: 				<xsl:text>#ifdef LIBXML_HTTP_ENABLED&nl;</xsl:text>
   46: 			</xsl:if>
   47: 			<xsl:if test="@file = 'nanoftp'">
   48: 				<xsl:text>#ifdef LIBXML_FTP_ENABLED&nl;</xsl:text>
   49: 			</xsl:if>
   50: 			<xsl:if test="(@file = 'relaxng') 
   51: 					or (@file = 'xmlschemas') 
   52: 					or (@file = 'xmlschemastypes')">
   53: 				<xsl:text>#ifdef LIBXML_SCHEMAS_ENABLED&nl;</xsl:text>
   54: 			</xsl:if>
   55: 			<xsl:if test="@file = 'xinclude'">
   56: 				<xsl:text>#ifdef LIBXML_XINCLUDE_ENABLED&nl;</xsl:text>
   57: 			</xsl:if>
   58: 			<xsl:if test="@file = 'xlink'">
   59: 				<xsl:text>#ifdef LIBXML_XLINK_ENABLED&nl;</xsl:text>
   60: 			</xsl:if>
   61: 			<xsl:if test="@file = 'xmlautomata'">
   62: 				<xsl:text>#ifdef LIBXML_AUTOMATA_ENABLED&nl;</xsl:text>
   63: 			</xsl:if>
   64: 			<xsl:if test="(@file = 'xmlregexp') 
   65: 					or (@file = 'xmlunicode')">
   66: 				<xsl:text>#ifdef LIBXML_REGEXP_ENABLED&nl;</xsl:text>
   67: 			</xsl:if>
   68: 			<xsl:if test="(@file = 'xpath') 
   69: 					or (@file = 'xpathInternals')">
   70: 				<xsl:text>#ifdef LIBXML_XPATH_ENABLED&nl;</xsl:text>
   71: 			</xsl:if>
   72: 			<xsl:if test="@file = 'xpointer'">
   73: 				<xsl:text>#ifdef LIBXML_XPTR_ENABLED&nl;</xsl:text>
   74: 			</xsl:if>
   75: 			<!-- Extended tests -->
   76: 			<xsl:if test="(@name = 'htmlDefaultSAXHandlerInit') 
   77: 					or (@name = 'htmlInitAutoClose') 
   78: 					or (@name = 'htmlCreateFileParserCtxt') 
   79: 					or (@name = 'inithtmlDefaultSAXHandler')
   80: 					or (@name = 'xmlIsXHTML') 
   81: 					or (@name = 'xmlIOHTTPOpenW') 
   82: 					or (@name = 'xmlRegisterHTTPPostCallbacks') 
   83: 					or (@name = 'xmlIOHTTPMatch')
   84: 					or (@name = 'xmlIOHTTPOpen') 
   85: 					or (@name = 'xmlIOHTTPRead') 
   86: 					or (@name = 'xmlIOHTTPClose')">
   87: 				<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
   88: 			</xsl:if>
   89: 			<xsl:if test="(@name = 'docbDefaultSAXHandlerInit') 
   90: 					or (@name = 'initdocbDefaultSAXHandler')">
   91: 				<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
   92: 			</xsl:if>
   93: 			<xsl:if test="@name = 'xmlValidBuildContentModel'">
   94: 				<xsl:text>#ifdef LIBXML_REGEXP_ENABLED&nl;</xsl:text>
   95: 			</xsl:if>
   96: 			<xsl:if test="(@name = 'xmlIOFTPMatch') 
   97: 					or (@name = 'xmlIOFTPOpen') 
   98: 					or (@name = 'xmlIOFTPRead') 
   99: 					or (@name = 'xmlIOFTPClose')">
  100: 				<xsl:text>#ifdef LIBXML_FTP_ENABLED&nl;</xsl:text>
  101: 			</xsl:if>
  102: 			<xsl:if test="(@name = 'xmlTextReaderRelaxNGValidate') 
  103: 					or (@name = 'xmlTextReaderRelaxNGSetSchema')">
  104: 				<xsl:text>#ifdef LIBXML_SCHEMAS_ENABLED&nl;</xsl:text>
  105: 			</xsl:if>
  106: 			<xsl:if test="(@name = 'xmlXPathDebugDumpObject') 
  107: 					or (@name = 'xmlXPathDebugDumpCompExpr')">
  108: 				<xsl:text>#ifdef LIBXML_DEBUG_ENABLED&nl;</xsl:text>
  109: 			</xsl:if>
  110: 			<xsl:if test="(@name = 'xmlMallocLoc') 
  111: 					or (@name = 'xmlMallocAtomicLoc') 
  112: 					or (@name = 'xmlReallocLoc') 
  113: 					or (@name = 'xmlMemStrdupLoc')">
  114: 				<xsl:text>#ifdef DEBUG_MEMORY_LOCATION&nl;</xsl:text>
  115: 			</xsl:if>
  116: 			<!-- Symbol -->
  117: 			<xsl:choose>
  118: 				<xsl:when test="(@name = 'xmlMalloc') 
  119: 						or (@name = 'xmlMallocAtomic') 
  120: 						or (@name = 'xmlRealloc') 
  121: 						or (@name = 'xmlFree') 
  122: 						or (@name = 'xmlMemStrdup')">
  123: 					<xsl:text>#ifdef LIBXML_THREAD_ALLOC_ENABLED&nl;</xsl:text>
  124: 					<xsl:text>__</xsl:text>
  125: 					<xsl:value-of select="@name"/>
  126: 					<xsl:text>&nl;</xsl:text>
  127: 					<xsl:text>#else&nl;</xsl:text>
  128: 					<xsl:value-of select="@name"/>
  129: 					<xsl:text> DATA&nl;</xsl:text>
  130: 					<xsl:text>#endif&nl;</xsl:text>
  131: 				</xsl:when>
  132: 				<xsl:when test="(@name = 'docbDefaultSAXHandler') 
  133: 						or (@name = 'htmlDefaultSAXHandler') 
  134: 						or (@name = 'oldXMLWDcompatibility') 
  135: 						or (@name = 'xmlBufferAllocScheme') 
  136: 						or (@name = 'xmlDefaultBufferSize') 
  137: 						or (@name = 'xmlDefaultSAXHandler') 
  138: 						or (@name = 'xmlDefaultSAXLocator') 
  139: 						or (@name = 'xmlDoValidityCheckingDefaultValue') 
  140: 						or (@name = 'xmlGenericError') 
  141: 						or (@name = 'xmlGenericErrorContext') 
  142: 						or (@name = 'xmlGetWarningsDefaultValue') 
  143: 						or (@name = 'xmlIndentTreeOutput') 
  144: 						or (@name = 'xmlTreeIndentString') 
  145: 						or (@name = 'xmlKeepBlanksDefaultValue') 
  146: 						or (@name = 'xmlLineNumbersDefaultValue') 
  147: 						or (@name = 'xmlLoadExtDtdDefaultValue') 
  148: 						or (@name = 'xmlParserDebugEntities') 
  149: 						or (@name = 'xmlParserVersion') 
  150: 						or (@name = 'xmlPedanticParserDefaultValue') 
  151: 						or (@name = 'xmlSaveNoEmptyTags') 
  152: 						or (@name = 'xmlSubstituteEntitiesDefaultValue') 
  153: 						or (@name = 'xmlRegisterNodeDefaultValue') 
  154: 						or (@name = 'xmlDeregisterNodeDefaultValue')">
  155: 					<xsl:text>#ifdef LIBXML_THREAD_ENABLED&nl;</xsl:text>
  156: 					<xsl:if test="@name = 'docbDefaultSAXHandler'">
  157: 						<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
  158: 					</xsl:if>
  159: 					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
  160: 						<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
  161: 					</xsl:if>
  162: 					<xsl:text>__</xsl:text>
  163: 					<xsl:value-of select="@name"/>
  164: 					<xsl:text>&nl;</xsl:text>
  165: 					<xsl:if test="@name = 'docbDefaultSAXHandler'">
  166: 						<xsl:text>#endif&nl;</xsl:text>
  167: 					</xsl:if>
  168: 					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
  169: 						<xsl:text>#endif&nl;</xsl:text>
  170: 					</xsl:if>
  171: 					<xsl:text>#else&nl;</xsl:text>
  172: 					<xsl:if test="@name = 'docbDefaultSAXHandler'">
  173: 						<xsl:text>#ifdef LIBXML_DOCB_ENABLED&nl;</xsl:text>
  174: 					</xsl:if>
  175: 					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
  176: 						<xsl:text>#ifdef LIBXML_HTML_ENABLED&nl;</xsl:text>
  177: 					</xsl:if>
  178: 					<xsl:value-of select="@name"/>
  179: 					<xsl:text> DATA&nl;</xsl:text>
  180: 					<xsl:if test="@name = 'docbDefaultSAXHandler'">
  181: 						<xsl:text>#endif&nl;</xsl:text>
  182: 					</xsl:if>
  183: 					<xsl:if test="@name = 'htmlDefaultSAXHandler'">
  184: 						<xsl:text>#endif&nl;</xsl:text>
  185: 					</xsl:if>
  186: 					<xsl:text>#endif&nl;</xsl:text>
  187: 				</xsl:when>
  188: 				<xsl:otherwise>
  189: 					<xsl:value-of select="@name"/>
  190: 					<xsl:if test="self::variable">
  191: 						<xsl:text> DATA</xsl:text>
  192: 					</xsl:if>
  193: 					<xsl:text>&nl;</xsl:text>
  194: 				</xsl:otherwise>
  195: 			</xsl:choose>
  196: 			<!-- Basic tests (close) -->
  197: 			<xsl:if test="@file = 'c14n'">
  198: 				<xsl:text>#endif&nl;</xsl:text>
  199: 			</xsl:if>
  200: 			<xsl:if test="@file = 'catalog'">
  201: 				<xsl:text>#endif&nl;</xsl:text>
  202: 			</xsl:if>
  203: 			<xsl:if test="@file = 'debugXML'">
  204: 				<xsl:text>#endif&nl;</xsl:text>
  205: 			</xsl:if>
  206: 			<xsl:if test="@file = 'DOCBparser'">
  207: 				<xsl:text>#endif&nl;</xsl:text>
  208: 			</xsl:if>
  209: 			<xsl:if test="(@file = 'HTMLparser') 
  210: 					or (@file = 'HTMLtree')">
  211: 				<xsl:text>#endif&nl;</xsl:text>
  212: 			</xsl:if>
  213: 			<xsl:if test="@file = 'nanohttp'">
  214: 				<xsl:text>#endif&nl;</xsl:text>
  215: 			</xsl:if>
  216: 			<xsl:if test="@file = 'nanoftp'">
  217: 				<xsl:text>#endif&nl;</xsl:text>
  218: 			</xsl:if>
  219: 			<xsl:if test="(@file = 'relaxng') 
  220: 					or (@file = 'xmlschemas') 
  221: 					or (@file = 'xmlschemastypes')">
  222: 				<xsl:text>#endif&nl;</xsl:text>
  223: 			</xsl:if>
  224: 			<xsl:if test="@file = 'xinclude'">
  225: 				<xsl:text>#endif&nl;</xsl:text>
  226: 			</xsl:if>
  227: 			<xsl:if test="@file = 'xlink'">
  228: 				<xsl:text>#endif&nl;</xsl:text>
  229: 			</xsl:if>
  230: 			<xsl:if test="@file = 'xmlautomata'">
  231: 				<xsl:text>#endif&nl;</xsl:text>
  232: 			</xsl:if>
  233: 			<xsl:if test="(@file = 'xmlregexp') 
  234: 					or (@file = 'xmlunicode')">
  235: 				<xsl:text>#endif&nl;</xsl:text>
  236: 			</xsl:if>
  237: 			<xsl:if test="(@file = 'xpath') 
  238: 					or (@file = 'xpathInternals')">
  239: 				<xsl:text>#endif&nl;</xsl:text>
  240: 			</xsl:if>
  241: 			<xsl:if test="@file = 'xpointer'">
  242: 				<xsl:text>#endif&nl;</xsl:text>
  243: 			</xsl:if>
  244: 			<!-- Extended tests (close) -->
  245: 			<xsl:if test="(@name = 'htmlDefaultSAXHandlerInit') 
  246: 					or (@name = 'htmlInitAutoClose') 
  247: 					or (@name = 'htmlCreateFileParserCtxt') 
  248: 					or (@name = 'inithtmlDefaultSAXHandler')
  249: 					or (@name = 'xmlIsXHTML') 
  250: 					or (@name = 'xmlIOHTTPOpenW') 
  251: 					or (@name = 'xmlRegisterHTTPPostCallbacks') 
  252: 					or (@name = 'xmlIOHTTPMatch')
  253: 					or (@name = 'xmlIOHTTPOpen') 
  254: 					or (@name = 'xmlIOHTTPRead') 
  255: 					or (@name = 'xmlIOHTTPClose')">
  256: 				<xsl:text>#endif&nl;</xsl:text>
  257: 			</xsl:if>
  258: 			<xsl:if test="(@name = 'docbDefaultSAXHandlerInit') 
  259: 					or (@name = 'initdocbDefaultSAXHandler')">
  260: 				<xsl:text>#endif&nl;</xsl:text>
  261: 			</xsl:if>
  262: 			<xsl:if test="@name = 'xmlValidBuildContentModel'">
  263: 				<xsl:text>#endif&nl;</xsl:text>
  264: 			</xsl:if>
  265: 			<xsl:if test="(@name = 'xmlIOFTPMatch') 
  266: 					or (@name = 'xmlIOFTPOpen') 
  267: 					or (@name = 'xmlIOFTPRead') 
  268: 					or (@name = 'xmlIOFTPClose')">
  269: 				<xsl:text>#endif&nl;</xsl:text>
  270: 			</xsl:if>
  271: 			<xsl:if test="(@name = 'xmlTextReaderRelaxNGValidate') 
  272: 					or (@name = 'xmlTextReaderRelaxNGSetSchema')">
  273: 				<xsl:text>#endif&nl;</xsl:text>
  274: 			</xsl:if>
  275: 			<xsl:if test="(@name = 'xmlXPathDebugDumpObject') 
  276: 					or (@name = 'xmlXPathDebugDumpCompExpr')">
  277: 				<xsl:text>#endif&nl;</xsl:text>
  278: 			</xsl:if>
  279: 			<xsl:if test="(@name = 'xmlMallocLoc') 
  280: 					or (@name = 'xmlMallocAtomicLoc') 
  281: 					or (@name = 'xmlReallocLoc') 
  282: 					or (@name = 'xmlMemStrdupLoc')">
  283: 				<xsl:text>#endif&nl;</xsl:text>
  284: 			</xsl:if>
  285: 		</xsl:for-each>
  286: 	</xsl:template>
  287: </xsl:stylesheet>
  288: 

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