<?xml version="1.0" ?>
<!-- 

Copyright (C) 2005, 2006 Apple Computer, Inc.  All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1.  Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer. 
2.  Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution. 
3.  Neither the name of Apple Computer, Inc. ("Apple") nor the names of
    its contributors may be used to endorse or promote products derived
    from this software without specific prior written permission. 

THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

This file contains templates with settings for components used by JavaScriptCore
and WebCore. Include this file to use these settings.

-->


<makefile>

    <option name="SQLITE3_LIBS">
        <default-value>$(DOLLAR)(shell pkg-config --libs sqlite3)</default-value>
    </option>

    <option name="SQLITE3_CFLAGS">
        <default-value>$(DOLLAR)(shell pkg-config --cflags sqlite3)</default-value>
    </option>

    <template id="sqlite3">
        <sys-lib>sqlite3</sys-lib>
        <if cond="FORMAT=='gnu'">
            <ldflags>$(SQLITE3_LIBS)</ldflags>
            <cxxflags>$(SQLITE3_CFLAGS)</cxxflags>
        </if>
        <if cond="FORMAT in ['msvc','msvs2005prj']">
            <include>$(WK_ROOT)/WebKitLibraries/win/include/SQLite</include>
        </if>
    </template>

    <option name="CURL_LIBS">
        <default-value>$(DOLLAR)(shell curl-config --libs)</default-value>
    </option>

    <option name="CURL_CFLAGS">
        <default-value>$(DOLLAR)(shell curl-config --cflags)</default-value>
    </option>

    <template id="curl">
    <if cond="FORMAT not in ['msvc', 'msvc2005prj']">
            <ldflags>$(CURL_LIBS)</ldflags>
            <cxxflags>$(CURL_CFLAGS)</cxxflags>
    </if>
    <if cond="FORMAT in ['msvc', 'msvs2005prj']">
        <sys-lib>libcurl</sys-lib>
    </if>
    </template>

    <option name="GTK_LIBS">
        <default-value>$(DOLLAR)(shell pkg-config --libs gtk+-2.0)</default-value>
    </option>

    <option name="GTK_CFLAGS">
        <default-value>$(DOLLAR)(shell pkg-config --cflags gtk+-2.0)</default-value>
    </option>

    <!-- GTK settings, for GTK ports - wx doesn't use these -->
    <template id="gtk">
        <if cond="FORMAT=='gnu'">
            <ldflags>$(GTK_LIBS)</ldflags>
            <cxxflags>$(GTK_CFLAGS)</cxxflags>
        </if>

        <!--    TODO: non-Cygwin Windows support for this? :) --> 
    </template>


    <option name="XML2_LIBS">
        <default-value>$(DOLLAR)(shell xml2-config --libs)</default-value>
    </option>

    <option name="XML2_CFLAGS">
        <default-value>$(DOLLAR)(shell xml2-config --cflags)</default-value>
    </option>

    <!-- XML2 library settings -->
    <template id="xml2">
        <if cond="FORMAT=='gnu'">
            <ldflags>$(XML2_LIBS)</ldflags>
            <cxxflags>$(XML2_CFLAGS)</cxxflags>
        </if>

        <if cond="PLATFORM_WIN32=='1'">
            <include>$(WK_ROOT)/WebKitLibraries/win/include/libxml</include>
            <sys-lib>libxml2</sys-lib>
        </if>
    </template>


    <option name="XSLT_LIBS">
        <default-value>$(DOLLAR)(shell xslt-config --libs)</default-value>
    </option>

    <option name="XSLT_CFLAGS">
        <default-value>$(DOLLAR)(shell xslt-config --cflags)</default-value>
    </option>

    <!-- XSLT library settings -->
    <template id="xslt" template="xml2">
        <if cond="FORMAT=='gnu'">
            <ldflags>$(XSLT_LIBS)</ldflags>
            <cxxflags>$(XSLT_CFLAGS)</cxxflags>
        </if>

        <if cond="PLATFORM_WIN32=='1'">
            <include>$(WK_ROOT)/WebKitLibraries/win/include/libxslt</include>
            <sys-lib>libxslt</sys-lib>
        </if>
    </template>

    <!-- IBM ICU settings -->
    <template id="icu">        
        <if cond="FORMAT=='gnu'">
            <!-- Mac includes ICU with the system, but doesn't include headers or
                 icu-config, so we have to hardcode settings there. -->
            <set var="ICU_INCLUDE"><if cond="WX_PORT=='mac'">$(WK_ROOT)/JavaScriptCore/icu</if></set>
            <set var="ICU_INCLUDE"><if cond="WX_PORT=='mac'">$(WK_ROOT)/WebCore/icu</if></set>
            <set var="ICU_LIB"><if cond="WX_PORT=='mac'">icucore</if></set>
            <set var="ICU_LDFLAGS"><if cond="WX_PORT=='gtk2'">$(DOLLAR)(shell icu-config --ldflags)</if></set>
            <set var="ICU_CFLAGS"><if cond="WX_PORT=='gtk2'">$(DOLLAR)(shell icu-config --cppflags)</if></set>
            
            <include>$(ICU_INCLUDE)</include>
            <sys-lib>$(ICU_LIB)</sys-lib>
            <ldflags>$(ICU_LDFLAGS)</ldflags>
            <cxxflags>$(ICU_CFLAGS)</cxxflags>
        </if>

        <if cond="PLATFORM_WIN32=='1'">
            <sys-lib>icuuc</sys-lib>
            <sys-lib>icuin</sys-lib>
        </if>
    </template>


    <template id="iconv">
    </template>


    <template id="pthreads">
        <if cond="PLATFORM_WIN32=='1'">
            <include>$(WK_ROOT)/WebKitLibraries/win/include/pthreads</include>
            <sys-lib>pthreadVC2</sys-lib>
        </if>
    </template>
    
</makefile>
