Annotation of embedaddon/libxml2/bakefile/libxml2.bkl, revision 1.1.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>