Annotation of embedaddon/libxml2/win32/defgen.xsl, revision 1.1.1.1
1.1 misho 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 '
'> ]>
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>