<?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">
        <if cond="FORMAT=='gnu'">
        	<set var="SQLITE_LDFLAGS"><if cond="PLATFORM_OS=='mac'">-lWebCoreSQLite3</if><if cond="PLATFORM_OS=='linux'">$(SQLITE3_LIBS)</if></set>
        	<set var="SQLITE_CFLAGS"><if cond="PLATFORM_OS=='mac'">-I$(WK_ROOT)/WebKitLibraries/WebCoreSQLite3</if><if cond="PLATFORM_OS=='linux'">$(SQLITE3_CFLAGS)</if></set>
            <ldflags>$(SQLITE_LDFLAGS)</ldflags>
            <cxxflags>$(SQLITE_CFLAGS)</cxxflags>
        </if>
        <if cond="FORMAT in ['msvc','msvs2005prj']">
            <sys-lib>sqlite3</sys-lib>
            <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</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</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="PLATFORM_OS=='mac'">$(WK_ROOT)/JavaScriptCore/icu</if></set>
            <set var="ICU_INCLUDE"><if cond="PLATFORM_OS=='mac'">$(WK_ROOT)/WebCore/icu</if></set>
            <set var="ICU_LIB"><if cond="PLATFORM_OS=='mac'">icucore</if></set>
            <set var="ICU_LDFLAGS"><if cond="PLATFORM_OS=='linux'">$(DOLLAR)(shell icu-config --ldflags)</if></set>
            <set var="ICU_CFLAGS"><if cond="PLATFORM_OS=='linux'">$(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>
        <if cond="FORMAT=='gnu'">
            <sys-lib>pthread</sys-lib>
        </if>
    </template>
    
</makefile>
