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

    1: <?xml version="1.0" ?>
    2: 
    3: <!-- Author: Francesco Montorsi <frm@users.sourceforge.net>         -->
    4: <!-- Date: 30/8/2004                                                -->
    5: <!-- Last revision: 26/1/2005                                       -->
    6: 
    7: 
    8: <!--                    LIBXML2 BAKEFILE                            -->
    9: <!--                                                                -->
   10: <!--    The bakefile used to build the library and the test         -->
   11: <!--    programs. The makefiles output is put:                      -->
   12: <!--                                                                -->
   13: <!--    - in the ..\LIB folder                                      -->
   14: <!--    - in the ..\BIN folder                                      -->
   15: <!--                                                                -->
   16: 
   17: <makefile>
   18: 
   19:     <using module="datafiles"/>
   20:     <requires version="0.1.5"/>
   21:     
   22: 
   23:     <!-- This is a bakefile, that is, a generic template used to    -->
   24:     <!-- generate makefiles ALL supported compilers.                -->
   25:     <!-- To use this project file you need Bakefile installed.      -->
   26:     <!-- With the command "bakefile_gen" you can regen all the      -->
   27:     <!-- makefiles and project files.                               -->
   28:     <!-- See http://bakefile.sourceforge.net for more info.         -->
   29: 
   30: 
   31: 	<!--
   32: 	 This file is divided in:
   33: 		- generic options
   34: 		- generic variables
   35: 		- libxml2 options
   36: 		- libxml2 variables
   37: 		- about config.h creation
   38: 		- templates
   39: 		- libxml2 library target
   40: 		- libxml2 test program targets
   41: 	-->
   42: 
   43: 
   44: 
   45:     <!--                                                            -->
   46:     <!--                      GENERIC OPTIONS                       -->
   47:     <!--                                                            -->
   48: 
   49:      
   50:     <!--    This is a standard option that determines               -->
   51:     <!--    whether the user wants to build this library as         -->
   52:     <!--    a dll or as a static library.                           -->
   53:     <option name="SHARED">
   54:         <values>0,1</values>
   55:         <values-description>,DLL</values-description>
   56:         <default-value>0</default-value>
   57:         <description>If set to zero a STATIC libxml library will be built</description>
   58:     </option>
   59: 
   60:     <!-- Configuration for building the bakefile with               -->
   61:     <!-- unicode strings or not (unicode or ansi).                  -->
   62:     <option name="UNICODE">
   63:         <values>0,1</values>
   64:         <values-description>,Unicode</values-description>
   65:         <default-value>0</default-value>        
   66:         <description>Compile Unicode build?</description>
   67:     </option>
   68: 
   69: 
   70:     <!-- There are several options that deal with build             -->
   71:     <!-- types. First, there's this one, BUILD.                     -->
   72:     <!--                                                            -->
   73:     <!-- BUILD determines whether or not we want to build           -->
   74:     <!-- in release or debug mode.  Note that in practice           -->
   75:     <!-- this means modifying the optimize tag, which by            -->
   76:     <!-- default is set to off.  In this case debug means           -->
   77:     <!-- off (no optimizations), and release means speed            -->
   78:     <!-- (fast with inlining).  There is also a size option         -->
   79:     <!-- that is not addressed in this example bakefile.            -->
   80:     <option name="BUILD">
   81:         <values>debug,release</values>
   82:         <values-description>Debug,Release</values-description>
   83:         <default-value>release</default-value>
   84:         <description>
   85:             Type of compiled binaries
   86:         </description>
   87:     </option>
   88: 
   89: 
   90: 
   91:     <!--                                                            -->
   92:     <!--                    GENERIC VARIABLES                       -->
   93:     <!--                                                            -->
   94: 
   95:     <!--    Set the ISDLL variable, so that we can use it           -->
   96:     <!--    inside an if statement later on (options not            -->
   97:     <!--    allowed in if statements).                              -->
   98:     <set var="ISDLL" cond="SHARED=='1'">1</set>
   99:     <set var="ISDLL" cond="SHARED=='0'">0</set>
  100: 
  101:     <!--    The unicode define we want.  By default bakefile        -->
  102:     <!--    makes variables an empty string, so if unicode          -->
  103:     <!--    is not defined $(UNICODE_DEFINE) would expand           -->
  104:     <!--    to nothing (literally).                                 -->
  105:     <set var="UNICODE_DEFINE">
  106:         <if cond="FORMAT!='autoconf' and UNICODE=='1'">_UNICODE</if>
  107:     </set>    
  108:     
  109:     <!--    The debug define we need with win32 compilers           -->    
  110:     <!--    (on Linux, the wx-config program is used).              -->    
  111:     <set var="DEBUG_DEFINE">        
  112:         <if cond="FORMAT!='autoconf' and BUILD=='debug'">
  113:             __WXDEBUG__
  114:         </if>    
  115:     </set>
  116: 
  117:     <!--    Value we will use later on for the debug-info           -->
  118:     <!--    tag inside our templates.                               -->
  119:     <set var="DEBUGINFO">
  120:         <if cond="BUILD=='debug'">on</if>
  121:         <if cond="BUILD=='release'">off</if>
  122:     </set>
  123: 
  124:     <!--    Value we will use later on for the debug-runtime        -->
  125:     <!--    tag inside our templates.                               -->
  126:     <set var="DEBUGRUNTIME">
  127:         <if cond="BUILD=='debug'">on</if>
  128:         <if cond="BUILD=='release'">off</if>
  129:     </set>
  130: 
  131:     <!--    Value for optimize tag.                                 -->
  132:     <set var="OPTIMIZEFLAG">
  133:         <if cond="BUILD=='debug'">off</if>
  134:         <if cond="BUILD=='release'">speed</if>
  135:     </set>
  136: 
  137:     <!-- Level of warnings.  Here we max it out in debug            -->
  138:     <!-- mode, and turn them off in release mode.                   -->
  139:     <set var="WARNINGS">
  140:         <if cond="BUILD=='debug'">max</if>
  141:         <if cond="BUILD=='release'">no</if>
  142:     </set>
  143: 
  144:     <!-- Set MYCPPFLAGS as empty; maybe it will be filled later...  -->
  145:     <set var="MYCPPFLAGS"></set>
  146:     <if cond="FORMAT=='mingw' or FORMAT=='autoconf'">
  147: 
  148:         <!-- With GCC, settings warnings to MAX would force         -->
  149:         <!-- Bakefile to call GCC with "-W -Wall" which generates   -->
  150:         <!-- a *lot* of warnings about wxWidgets headers...         -->
  151:         <!-- this is why "-W -Wall" is here replaced by "-Wall".    -->
  152:         <set var="WARNINGS">default</set>
  153:         <set var="MYCPPFLAGS">-Wall</set>
  154:     </if>
  155:     
  156:     
  157:     
  158:   
  159: 
  160: 
  161:     <!--                                                            -->
  162:     <!--                      LIBXML2 OPTIONS                       -->
  163:     <!--                                                            -->
  164:     <!-- Note #1: not all of them are used by win32 makefiles       -->
  165: 	<!--                                                            -->
  166: 	<!-- Note #2: since all combinations of non-path options are    -->
  167: 	<!--          translated into different 'configurations' by     -->
  168: 	<!--          Bakefile when using the MSVC6PRJ output, we must  -->
  169: 	<!--          avoid to create a 10 MB libxml2.dsp file forcing  -->
  170: 	<!--          some options to their default values... this      -->
  171: 	<!--          behaviour can be overridden by the                -->
  172: 	<!--                        FULL_OPTIONS_SUPPORT                -->
  173: 	<!--          variable defined below...                         -->
  174:     
  175: 	<set var="FULL_OPTIONS_SUPPORT">
  176: 		<if cond="FORMAT=='msvc6prj'">0</if>
  177: 		<if cond="FORMAT!='msvc6prj'">1</if>
  178: 	</set>
  179: 
  180:     <option name="ICONV_DIR" category="path">
  181:         <default-value>c:\iconv</default-value>
  182:         <description>The iconv library main folder</description>
  183:     </option>
  184: 
  185:     <option name="WITH_TRIO">
  186:     	<values>0,1</values>
  187:         <default-value>0</default-value>
  188:         <description>Enable TRIO string manipulator</description>
  189:     </option>
  190: 
  191: 	<!-- see the note #2 -->
  192: 	<if cond="FULL_OPTIONS_SUPPORT=='0'">
  193: 		<set var="WITH_THREADS">native</set>
  194: 	</if>
  195: 	<if cond="FULL_OPTIONS_SUPPORT=='1'">
  196: 		<option name="WITH_THREADS">
  197:     		<values>no,ctls,native,posix</values>
  198: 			<default-value>native</default-value>
  199: 			<description>Enable thread safety</description>
  200: 		</option>
  201:     </if>
  202: 
  203:     <option name="WITH_FTP">
  204:     	<values>0,1</values>
  205:         <default-value>1</default-value>
  206:         <description>Enable FTP client</description>
  207:     </option>
  208: 
  209:     <option name="WITH_HTTP">
  210:     	<values>0,1</values>
  211:         <default-value>1</default-value>
  212:         <description>Enable HTTP client</description>
  213:     </option>
  214: 
  215:     <option name="WITH_C14N">
  216:     	<values>0,1</values>
  217:         <default-value>1</default-value>
  218:         <description>Enable C14N support</description>
  219:     </option>
  220: 
  221:     <option name="WITH_CATALOG">
  222:     	<values>0,1</values>
  223:         <default-value>1</default-value>
  224:         <description>Enable catalog support</description>
  225:     </option>
  226: 
  227:     <option name="WITH_DOCB">
  228:     	<values>0,1</values>
  229:         <default-value>1</default-value>
  230:         <description>Enable DocBook support</description>
  231:     </option>
  232: 	
  233:     <option name="WITH_XPATH">
  234:     	<values>0,1</values>
  235:         <default-value>1</default-value>
  236:         <description>Enable XPath support</description>
  237:     </option>
  238: 	
  239:     <option name="WITH_XPTR">
  240:     	<values>0,1</values>
  241:         <default-value>1</default-value>
  242:         <description>Enable XPointer support</description>
  243:     </option>
  244: 	
  245:     <option name="WITH_XINCLUDE">
  246:     	<values>0,1</values>
  247:         <default-value>1</default-value>
  248:         <description>Enable XInclude support</description>
  249:     </option>
  250: 	
  251: 	<!-- see the note #2 -->
  252: 	<if cond="FULL_OPTIONS_SUPPORT=='0'">
  253: 		<set var="WITH_ICONV">1</set>
  254: 	</if>
  255: 	<if cond="FULL_OPTIONS_SUPPORT=='1'">
  256: 		<option name="WITH_ICONV">
  257:     		<values>0,1</values>
  258: 			<default-value>1</default-value>
  259: 			<description>Enable iconv support</description>
  260: 		</option>
  261: 	</if>
  262: 	
  263:     <option name="WITH_ISO8859X">
  264:     	<values>0,1</values>
  265:         <default-value>0</default-value>
  266:         <description>Enable iso8859x support</description>
  267:     </option>
  268: 	
  269: 	<!-- see the note #2 -->
  270: 	<if cond="FULL_OPTIONS_SUPPORT=='0'">
  271: 		<set var="WITH_ZLIB">0</set>
  272: 	</if>
  273: 	<if cond="FULL_OPTIONS_SUPPORT=='1'">
  274: 		<option name="WITH_ZLIB">
  275:     		<values>0,1</values>
  276: 			<default-value>0</default-value>
  277: 			<description>Enable ZLIB support</description>
  278: 		</option>
  279: 	</if>
  280: 	
  281:     <option name="WITH_REGEXPS">
  282:     	<values>0,1</values>
  283:         <default-value>1</default-value>
  284:         <description>Enable regular expressions</description>
  285:     </option>
  286: 	
  287:     <option name="WITH_TREE">
  288:     	<values>0,1</values>
  289:         <default-value>1</default-value>
  290:         <description>Enable tree api</description>
  291:     </option>
  292: 	
  293:     <option name="WITH_READER">
  294:     	<values>0,1</values>
  295:         <default-value>1</default-value>
  296:         <description>Enable xmlReader api</description>
  297:     </option>
  298: 	
  299:     <option name="WITH_WRITER">
  300:     	<values>0,1</values>
  301:         <default-value>1</default-value>
  302:         <description>Enable xmlWriter api</description>
  303:     </option>
  304: 	
  305:     <option name="WITH_WALKER">
  306:     	<values>0,1</values>
  307:         <default-value>1</default-value>
  308:         <description>Enable xmlDocWalker api</description>
  309:     </option>    
  310: 	
  311:     <option name="WITH_PATTERN">
  312:     	<values>0,1</values>
  313:         <default-value>1</default-value>
  314:         <description>Enable xmlPattern api</description>
  315:     </option>
  316: 	
  317:     <option name="WITH_PUSH">
  318:     	<values>0,1</values>
  319:         <default-value>1</default-value>
  320:         <description>Enable push api</description>
  321:     </option>
  322: 	
  323:     <option name="WITH_VALID">
  324:     	<values>0,1</values>
  325:         <default-value>1</default-value>
  326:         <description>Enable DTD validation support</description>
  327:     </option>
  328: 	
  329:     <option name="WITH_SAX1">
  330:     	<values>0,1</values>
  331:         <default-value>1</default-value>
  332:         <description>Enable SAX1 api</description>
  333:     </option>    
  334:                 	
  335:     <option name="WITH_SCHEMAS">
  336:     	<values>0,1</values>
  337:         <default-value>1</default-value>
  338:         <description>Enable XML Schema support</description>
  339:     </option>
  340: 	
  341:     <option name="WITH_LEGACY">
  342:     	<values>0,1</values>
  343:         <default-value>1</default-value>
  344:         <description>Enable deprecated APIs</description>
  345:     </option>    
  346:                 	
  347:     <option name="WITH_OUTPUT">
  348:     	<values>0,1</values>
  349:         <default-value>1</default-value>
  350:         <description>Enable serialization support</description>
  351:     </option>					
  352:                 	
  353:     <option name="WITH_PYTHON">
  354:     	<values>0,1</values>
  355:         <default-value>0</default-value>
  356:         <description>Build Python bindings</description>
  357:     </option>
  358: 
  359: 
  360:  
  361: 
  362:     <!--                                                            -->
  363:     <!--                    LIBXML2 VARIABLES                       -->
  364:     <!--                                                            -->   
  365: 
  366:     <!-- Put all the objects files generated by         -->
  367:     <!-- the compilation in a subfolder of BUILD        -->
  368:     <set var="BUILDDIR">$(FORMAT)</set>
  369:     
  370:     <!-- This variable is set to 1 when the current output writer supports -->
  371:    	<!-- the __DEFINE_ARG variable. Otherwise it's set to zero. -->
  372:    	<set var="HAS_DEFINE_ARG">
  373:    		<if cond="FORMAT!='msvc6prj'">1</if>
  374:    		<if cond="FORMAT=='msvc6prj'">0</if>   		
  375:    	</set>
  376: 
  377: 	<!-- The root directory of libxml2 -->
  378: 	<set var="XMLBASEDIR">..</set>
  379: 	
  380: 	<!-- The directory where libxml2' tests will be put -->
  381: 	<set var="XMLTESTDIR">$(XMLBASEDIR)$(DIRSEP)bin</set>
  382: 	
  383: 	<set var="LIBXML_MAJOR_VERSION">2</set>
  384: 	<set var="LIBXML_MINOR_VERSION">6</set>
  385: 	<set var="LIBXML_MICRO_VERSION">16</set>
  386: 	
  387: 	<!-- some defines related to threads -->
  388: 	<set var="THREADS_DEF">
  389: 		<if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='native'">
  390: 			$(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_WIN32_THREADS
  391: 		</if>
  392: 		<if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='ctls'">
  393: 			$(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_WIN32_THREADS $(__DEFINE_ARG)HAVE_COMPILER_TLS
  394: 		</if>
  395: 		<if cond="HAS_DEFINE_ARG=='1' and WITH_THREADS=='posix'">
  396: 			$(__DEFINE_ARG)_REENTRANT $(__DEFINE_ARG)HAVE_PTHREAD_H
  397: 		</if>
  398: 	</set>
  399: 	<if cond="FORMAT=='borland'">
  400: 		<set var="THREADS_DEF">
  401: 			<if cond="WITH_THREADS=='native'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
  402: 			<if cond="WITH_THREADS=='ctls'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
  403: 			<if cond="WITH_THREADS=='posix'">$(THREADS_DEF) $(__DEFINE_ARG)__MT__</if>
  404: 		</set>
  405: 	</if>	
  406: 	
  407: 	
  408: 	<!-- some other conditional defines -->
  409: 	<set var="ZLIB_DEF"><if cond="WITH_ZLIB=='1'">HAVE_ZLIB_H</if></set>
  410: 	<set var="DEBUG_DEF"><if cond="BUILD=='debug'">_DEBUG</if></set>
  411: 	<set var="DEBUG_DEF"><if cond="BUILD=='release'">NDEBUG</if></set>
  412: 	
  413: 	<!-- this is very very important when compiling with MINGW: without this line,
  414: 	the test programs (and all the programs built with libxml2 which use xmlFree)
  415: 	won't build because of "undefined references to __xmlFree" -->
  416: 	<set var="STATIC_DEF"><if cond="SHARED=='0'">LIBXML_STATIC</if></set>
  417: 	
  418: 	<!-- some conditional libraries dependencies -->
  419: 	<set var="ICONV_LIB"><if cond="WITH_ICONV=='1'">iconv</if></set>
  420: 	<set var="WSOCK32_LIB"><if cond="WITH_THREADS=='native'">wsock32</if></set>
  421: 	<set var="ZLIB_LIB"><if cond="WITH_ZLIB=='1'">zdll</if></set>
  422: 	<set var="POSIX_LIB"><if cond="WITH_THREADS=='posix'">pthreadVC</if></set>
  423: 	
  424: 	<set var="XMLINCLUDEDIR">$(XMLBASEDIR)$(DIRSEP)include$(DIRSEP)libxml$(DIRSEP)</set>
  425: 
  426:   
  427: 
  428:  
  429:     <!--                                                            -->
  430:     <!--               ABOUT CONFIG.H HEADER CREATION               -->
  431:     <!--                                                            -->   
  432:     
  433:     <set var="CONFIG_SRCNAME">win32config.h</set>
  434:     <set var="CONFIG_DSTNAME">config.h</set>
  435:     
  436: 	<if cond="FORMAT!='msvc6prj' and FORMAT!='autoconf' and FORMAT!='gnu'">
  437: 		<copy-file-to-file id="setup">
  438: 			<!-- On win32 we need to manually copy a default config.h file -->
  439: 			<!-- from the include/mc/msw folder to include/mc			   -->
  440: 			<src>../include/$(CONFIG_SRCNAME)</src>
  441: 			<dst>../$(CONFIG_DSTNAME)</dst>
  442: 			<dependency-of>all</dependency-of>
  443: 
  444: 			<!-- With autoconf, we will use the configure script to translate -->
  445: 			<!-- include/mc/config.h.in to include/mc/config.h and thus we do -->
  446: 			<!-- not need to do anything here...							  -->
  447: 		</copy-file-to-file>
  448: 	</if>
  449:     
  450: 	<if cond="FORMAT!='msvc6prj'">
  451: 	    
  452: 		<mkdir id="setuplibdir"><dir>$(XMLBASEDIR)$(DIRSEP)lib</dir></mkdir>
  453: 		<mkdir id="setupbindir"><dir>$(XMLBASEDIR)$(DIRSEP)bin</dir></mkdir>
  454: 			
  455: 	    <!-- Creates all output folders -->	
  456: 	    <phony id="setupdirs">
  457: 			<dependency-of>all</dependency-of>	    
  458: 	    	<depends>setuplibdir</depends>
  459: 	    	<depends>setupbindir</depends>
  460: 	    </phony>
  461: 	</if>
  462: 
  463:     <!-- This defines a tag which includes headers on MSVC          -->
  464:     <!-- Note that $(value) is stuck in there by bakefile,          -->
  465:     <!-- and is the value between the beginning and end tag.        -->
  466:     <define-tag name="headers" rules="dll,lib,exe">
  467:         <if cond="FORMAT=='msvc6prj'">
  468:             <msvc-project-files>
  469:                 $(value)
  470:             </msvc-project-files>
  471:         </if>
  472:     </define-tag>
  473:     		
  474: 	<!-- Creates the following custom build rule for MSVC6PRJ file:
  475: 	     copies ..\include\win32config.h into ..\config.h
  476: 	     NOTE: this tag must be used before the <sources> tag if you want that the configuration
  477: 	           file will be created before any other source file is compiled... -->
  478:     <define-tag name="msvc-copy-setup-h" rules="dll,lib,action">
  479:         <if cond="FORMAT=='msvc6prj'">
  480: 	        <headers>$(XMLBASEDIR)\include\$(CONFIG_SRCNAME)</headers>
  481: 	        <set var="__subdir">$(value)</set>
  482:             <set var="_custom_build_files" append="1">$(XMLBASEDIR)\include\$(CONFIG_SRCNAME)</set>
  483:             <set var="_custom_build____include_win32config_h">
  484: Creating the configuration file ..\$(CONFIG_DSTNAME) from ..\include\$(CONFIG_SRCNAME)
  485: InputPath=..\include\$(CONFIG_SRCNAME)
  486: 
  487: "..\$(CONFIG_DSTNAME)" : $(DOLLAR)(SOURCE) "$(DOLLAR)(INTDIR)" "$(DOLLAR)(OUTDIR)"
  488: $(TAB)copy "$(DOLLAR)(InputPath)" ..\$(CONFIG_DSTNAME)
  489:             </set>
  490:         </if>
  491:     </define-tag>
  492: 
  493:  
  494: 
  495: 
  496: 
  497:     <!--                                                            -->
  498:     <!--                          TEMPLATES                         -->
  499:     <!--                                                            -->   
  500: 
  501: 	<!-- The basic template: used by all the targets -->
  502:     <template id="base">
  503:         <if cond="FORMAT=='mingw'">                    
  504:             <define>HAVE_W32API_H</define>
  505:             <ldflags>-mthreads</ldflags>
  506:         </if>
  507: 
  508:         <cxxflags>$(MYCPPFLAGS)</cxxflags>
  509:         <warnings>$(WARNINGS)</warnings>
  510:         <define>$(UNICODE_DEFINE)</define>
  511:         <optimize>$(OPTIMIZEFLAG)</optimize>
  512:         <debug-info>$(DEBUGINFO)</debug-info>
  513:         <debug-runtime-libs>$(DEBUGRUNTIME)</debug-runtime-libs>
  514: 	</template>
  515: 	
  516: 	<!-- The template used both by the library and by the test programs -->
  517:     <template id="xml2" template="base">
  518:     
  519:         <!-- -I & -L equivalents -->
  520:         <include>$(XMLBASEDIR)$(DIRSEP)include</include>
  521:         <include>$(ICONV_DIR)$(DIRSEP)include</include>
  522:         <lib-path>$(ICONV_DIR)$(DIRSEP)lib</lib-path>    
  523:         
  524: 		<!-- some conditional define flags -->
  525:         <cflags>$(THREADS_DEF)</cflags>
  526: 		<define>$(ZLIB_DEF)</define>
  527: 		<define>$(DEBUG_DEF)</define>
  528: 		<define>$(STATIC_DEF)</define>
  529: 	
  530: 		<if cond="HAS_DEFINE_ARG=='0'">
  531: 		
  532: 			<!-- we are probably using an IDE output: defaults to WITH_THREADS=='native' -->
  533: 			<define>_REENTRANT</define>
  534: 			<define>HAVE_WIN32_THREADS</define>
  535: 		</if>
  536: 
  537: 		
  538: 		<!-- these must always be defined on win32 -->
  539: 		<define>WIN32</define>		
  540: 		<define>_WINDOWS</define>
  541: 		<define>_MBCS</define>
  542: 
  543: 		<if cond="FORMAT=='borland'">
  544: 			<define>_NO_VCL</define>
  545: 			<define>EILSEQ=2</define>
  546: 		</if>
  547:     </template>
  548:     
  549: 	<!-- The template used by libxml2 test programs -->
  550: 	<template id="xml2test" template="xml2">
  551:         <dirname>$(XMLTESTDIR)</dirname>
  552:         <app-type>console</app-type>        
  553: 
  554:         <library>libxml2</library>
  555: 		
  556:         <sys-lib>$(ICONV_LIB)</sys-lib>
  557:         <sys-lib>$(WSOCK32_LIB)</sys-lib>
  558: 		<sys-lib>$(ZLIB_LIB)</sys-lib> 
  559:         <sys-lib>$(POSIX_LIB)</sys-lib>
  560: 	</template>
  561: 
  562: 
  563: 
  564: 
  565:  
  566: 
  567:     <!--                                                            -->
  568:     <!--                  LIBXML2 LIBRARY TARGET                    -->
  569:     <!--                                                            -->  
  570:     
  571:     <lib id="libxml2" template="xml2">
  572:     	
  573:     	<!-- this is useful only when using MSVC6PRJ -->
  574:     	<if cond="FORMAT=='msvc6prj'">
  575:     		<msvc-copy-setup-h/>
  576:     		<msvc-file-group>Config headers:*config.h</msvc-file-group>
  577:     	</if>
  578:     	<if cond="FORMAT!='msvc6prj'">
  579: 	    	<depends>setup</depends>
  580:     		<depends>setuplibdir</depends>
  581:     	</if>
  582:     	    
  583:     	<!-- output folder -->
  584:         <dirname>$(XMLBASEDIR)$(DIRSEP)lib</dirname>
  585: 		
  586: 		<!-- The output name must be "libxml2.lib" with all compilers.
  587: 		     Since mingw format autoadds the "lib" prefix to the library
  588: 			 name, we must intercept that case to avoid to get "liblibxml2.a" -->
  589: 		<if cond="FORMAT!='mingw'">
  590: 	        <libname>libxml2</libname>
  591: 		</if>
  592: 		<if cond="FORMAT=='mingw'">
  593: 	        <libname>xml2</libname>
  594: 		</if>
  595: 		        
  596:         <!-- the list of source files to compile -->            
  597:         <sources>
  598: 			$(XMLBASEDIR)$(DIRSEP)c14n.c
  599: 			$(XMLBASEDIR)$(DIRSEP)catalog.c
  600: 			$(XMLBASEDIR)$(DIRSEP)chvalid.c
  601: 			$(XMLBASEDIR)$(DIRSEP)debugXML.c
  602: 			$(XMLBASEDIR)$(DIRSEP)dict.c
  603: 			$(XMLBASEDIR)$(DIRSEP)DOCBparser.c
  604: 			$(XMLBASEDIR)$(DIRSEP)encoding.c
  605: 			$(XMLBASEDIR)$(DIRSEP)entities.c
  606: 			$(XMLBASEDIR)$(DIRSEP)error.c
  607: 			$(XMLBASEDIR)$(DIRSEP)globals.c
  608: 			$(XMLBASEDIR)$(DIRSEP)hash.c
  609: 			$(XMLBASEDIR)$(DIRSEP)HTMLparser.c
  610: 			$(XMLBASEDIR)$(DIRSEP)HTMLtree.c
  611: 			$(XMLBASEDIR)$(DIRSEP)legacy.c
  612: 			$(XMLBASEDIR)$(DIRSEP)list.c
  613: 			$(XMLBASEDIR)$(DIRSEP)nanoftp.c
  614: 			$(XMLBASEDIR)$(DIRSEP)nanohttp.c
  615: 			$(XMLBASEDIR)$(DIRSEP)parser.c
  616: 			$(XMLBASEDIR)$(DIRSEP)parserInternals.c
  617: 			$(XMLBASEDIR)$(DIRSEP)pattern.c
  618: 			$(XMLBASEDIR)$(DIRSEP)relaxng.c
  619: 			$(XMLBASEDIR)$(DIRSEP)SAX2.c
  620: 			$(XMLBASEDIR)$(DIRSEP)SAX.c
  621: 			$(XMLBASEDIR)$(DIRSEP)threads.c
  622: 			$(XMLBASEDIR)$(DIRSEP)tree.c
  623: 			$(XMLBASEDIR)$(DIRSEP)uri.c
  624: 			$(XMLBASEDIR)$(DIRSEP)valid.c
  625: 			$(XMLBASEDIR)$(DIRSEP)xinclude.c
  626: 			$(XMLBASEDIR)$(DIRSEP)xlink.c
  627: 			$(XMLBASEDIR)$(DIRSEP)xmlIO.c
  628: 			$(XMLBASEDIR)$(DIRSEP)xmlmemory.c
  629: 			$(XMLBASEDIR)$(DIRSEP)xmlreader.c
  630: 			$(XMLBASEDIR)$(DIRSEP)xmlregexp.c
  631: 			$(XMLBASEDIR)$(DIRSEP)xmlsave.c
  632: 			$(XMLBASEDIR)$(DIRSEP)xmlschemas.c
  633: 			$(XMLBASEDIR)$(DIRSEP)xmlschemastypes.c
  634: 			$(XMLBASEDIR)$(DIRSEP)xmlunicode.c
  635: 			$(XMLBASEDIR)$(DIRSEP)xmlwriter.c
  636: 			$(XMLBASEDIR)$(DIRSEP)xpath.c
  637: 			$(XMLBASEDIR)$(DIRSEP)xpointer.c
  638: 			$(XMLBASEDIR)$(DIRSEP)xmlstring.c
  639:         </sources>
  640:         
  641:         <!-- the list of header files (for IDE projects) -->
  642:         <headers>
  643: 			$(XMLINCLUDEDIR)c14n.h
  644: 			$(XMLINCLUDEDIR)catalog.h
  645: 			$(XMLINCLUDEDIR)chvalid.h
  646: 			$(XMLINCLUDEDIR)debugXML.h
  647: 			$(XMLINCLUDEDIR)dict.h
  648: 			$(XMLINCLUDEDIR)DOCBparser.h
  649: 			$(XMLINCLUDEDIR)encoding.h
  650: 			$(XMLINCLUDEDIR)entities.h
  651: 			$(XMLINCLUDEDIR)globals.h
  652: 			$(XMLINCLUDEDIR)hash.h
  653: 			$(XMLINCLUDEDIR)HTMLparser.h
  654: 			$(XMLINCLUDEDIR)HTMLtree.h
  655: 			$(XMLINCLUDEDIR)list.h
  656: 			$(XMLINCLUDEDIR)nanoftp.h
  657: 			$(XMLINCLUDEDIR)nanohttp.h
  658: 			$(XMLINCLUDEDIR)parser.h
  659: 			$(XMLINCLUDEDIR)parserInternals.h
  660: 			$(XMLINCLUDEDIR)pattern.h
  661: 			$(XMLINCLUDEDIR)relaxng.h
  662: 			$(XMLINCLUDEDIR)SAX.h
  663: 			$(XMLINCLUDEDIR)SAX2.h
  664: 			$(XMLINCLUDEDIR)schemasInternals.h
  665: 			$(XMLINCLUDEDIR)threads.h
  666: 			$(XMLINCLUDEDIR)tree.h
  667: 			$(XMLINCLUDEDIR)uri.h
  668: 			$(XMLINCLUDEDIR)valid.h
  669: 			$(XMLINCLUDEDIR)xinclude.h
  670: 			$(XMLINCLUDEDIR)xlink.h
  671: 			$(XMLINCLUDEDIR)xmlautomata.h
  672: 			$(XMLINCLUDEDIR)xmlerror.h
  673: 			$(XMLINCLUDEDIR)xmlexports.h
  674: 			$(XMLINCLUDEDIR)xmlIO.h
  675: 			$(XMLINCLUDEDIR)xmlmemory.h
  676: 			$(XMLINCLUDEDIR)xmlmodule.h
  677: 			$(XMLINCLUDEDIR)xmlreader.h
  678: 			$(XMLINCLUDEDIR)xmlregexp.h
  679: 			$(XMLINCLUDEDIR)xmlsave.h
  680: 			$(XMLINCLUDEDIR)xmlschemas.h
  681: 			$(XMLINCLUDEDIR)xmlschemastypes.h
  682: 			$(XMLINCLUDEDIR)xmlstring.h
  683: 			$(XMLINCLUDEDIR)xmlunicode.h
  684: 			$(XMLINCLUDEDIR)xmlversion.h			
  685: 			$(XMLINCLUDEDIR)xmlwriter.h
  686: 			$(XMLINCLUDEDIR)xpath.h
  687: 			$(XMLINCLUDEDIR)xpathInternals.h
  688: 			$(XMLINCLUDEDIR)xpointer.h
  689: 		</headers>
  690: 
  691: 		<!-- these ones are not inside the include/libxml folder -->
  692: 		<headers>
  693: 			$(XMLBASEDIR)$(DIRSEP)libxml.h
  694: 			$(XMLBASEDIR)$(DIRSEP)triodef.h
  695: 			$(XMLBASEDIR)$(DIRSEP)trionan.h
  696: 			$(XMLBASEDIR)$(DIRSEP)include$(DIRSEP)wsockcompat.h			
  697:        </headers>
  698:     </lib>
  699: 
  700: 
  701: 
  702:     <!--                                                -->
  703:     <!--               LIBXML2 test programs            -->
  704:     <!--                                                -->
  705: 	
  706: 	<set var="BUILD_ALL_TESTS">
  707: 
  708: 		<!-- when using full options support with MSVC6PRJ we should
  709: 		     avoid to create all the DSP files required for the test
  710: 			 programs: they would take a _lot_ of space !! -->
  711: 		<if cond="FORMAT=='msvc6prj' and FULL_OPTIONS_SUPPORT=='1'">0</if>
  712: 
  713: 		<!-- when creating a makefile or using MSVC6PRJ with limited
  714: 		     options support, then we can build all the tests safely -->
  715: 		<if cond="FORMAT!='msvc6prj' or FULL_OPTIONS_SUPPORT=='0'">1</if>
  716: 
  717: 	</set>
  718: 
  719:     <if cond="BUILD_ALL_TESTS=='1'">
  720: 
  721: 		<exe id="testAutomata" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testAutomata.c</sources></exe>
  722: 		<exe id="testC14N" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testC14N.c</sources></exe>
  723: 		<exe id="testHTML" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testHTML.c</sources></exe>
  724: 		<exe id="testReader" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testReader.c</sources></exe>
  725: 		<exe id="testRegexp" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testRegexp.c</sources></exe>
  726: 		<exe id="testRelax" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testRelax.c</sources></exe>
  727: 		<exe id="testSax" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testSax.c</sources></exe>
  728: 		<exe id="testSchemas" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testSchemas.c</sources></exe>
  729: 		<exe id="testURI" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testURI.c</sources></exe>
  730: 		<exe id="testXPath" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testXPath.c</sources></exe>
  731: 		<exe id="xmllint" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)xmllint.c</sources></exe>
  732: 
  733: 		<if cond="FORMAT=='autoconf'">
  734: 			<exe id="testdso" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testdso.c</sources></exe>
  735: 		</if>
  736: 
  737: 	<!-- FIXME:
  738: 		<exe id="testModule" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testModule.c</sources></exe>
  739: 
  740: 		<if cond="WITH_THREADS=='posix'">
  741: 			<exe id="testThreads" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testThreads.c</sources></exe>
  742: 		</if>
  743: 		<if cond="WITH_THREADS=='ctls' or WITH_THREADS=='native'">
  744: 			<exe id="testThreadsWin32" template="xml2test"><sources>$(XMLBASEDIR)$(DIRSEP)testThreadsWin32.c</sources></exe>
  745: 		</if>
  746: 	-->
  747: 	</if>
  748: 
  749: </makefile>

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