Edit

kc3-lang/libxml2/bakefile/libxml2.bkl

Branch :

  • Show log

    Commit

  • Author : Daniel Veillard
    Date : 2005-01-27 23:59:14
    Hash : 5351695d
    Message : files for the Bakefile generator for Makefiles from Francesco Montorsi * bakefile/Readme.txt bakefile/Bakefiles.bkgen bakefile/libxml2.bkl: files for the Bakefile generator for Makefiles from Francesco Montorsi * win32/configure.js: fixes for Windows compilation with non-default flags by Joel Reed Daniel

  • bakefile/libxml2.bkl
  • <?xml version="1.0" ?>
    
    <!-- Author: Francesco Montorsi <frm@users.sourceforge.net>         -->
    <!-- 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>