Annotation of embedaddon/libxml2/bakefile/libxml2.bkl, revision 1.1

1.1     ! misho       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>