<?xml version="1.0" ?>
<!-- 
Copyright (C) 2007 Kevin Ollivier  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.

JavaScriptCore Bakefile project file.
-->

<makefile>
    <set var="WX_UNICODE">1</set>
    <set var="WX_SHARED">1</set>

    <include file="presets/wx.bkl"/>
    <include file="presets/wxwebkit.bkl"/>
    <include file="dependencies.bkl"/>

    <set var="BUILDDIR">obj-$(FORMAT)</set>
    <!-- the WX_PYTHON option was added to presets/wx.bkl in 2.8.5, so define
         it in case the presets/wx.bkl doesn't define it for us. -->
    
    <if cond="not isdefined('WX_PYTHON')">
        <set var="WX_PYTHON">0</set>
    </if>
    
    <template id="wxwk_build_settings">
        <dirname>$(WKOUTPUTDIR)</dirname>
        <warnings>default</warnings>
        <cxx-rtti>on</cxx-rtti>
        <cxx-exceptions>on</cxx-exceptions>
        <define>BUILDING_WX__=1</define>
        <define>ENABLE_DOM_STORAGE</define>
        <define>
            $(substituteFromDict(DEBUG,{'1':'','0':'NDEBUG'}))
        </define>
        <define>USE_SYSTEM_MALLOC</define>
        <optimize>
            $(substituteFromDict(DEBUG,{'1':'off','0':'speed'}))
        </optimize>
        <debug-info>
            $(substituteFromDict(DEBUG,{'1':'on','0':'off'}))
        </debug-info>
        <if cond="FORMAT in ['msvc', 'msvs2005prj']">
            <set var="DEBUG_RUNTIME">
                <if cond="WX_PYTHON=='1' and WX_DEBUG=='0'">off</if>
                <if cond="WX_PYTHON=='0' and WX_DEBUG=='0'">off</if>
                <if cond="WX_PYTHON=='1' and WX_DEBUG=='1'">off</if>
                <if cond="WX_PYTHON=='0' and WX_DEBUG=='1'">on</if>
            </set>
            <debug-runtime-libs>
                $(DEBUG_RUNTIME)
            </debug-runtime-libs>
        </if>
        <if cond="FORMAT=='gnu'">
            <include>$(WK_ROOT)/WebKitLibraries/unix/include</include>
            <lib-path>$(WK_ROOT)/WebKitLibraries/unix/lib</lib-path>
            <lib-path>$(WK_ROOT)/WebKitLibraries</lib-path>
        </if>
        <if cond="FORMAT in ['msvc', 'msvs2005prj']">
            <include>$(WK_ROOT)/WebKitLibraries/win/include</include>
            <lib-path>$(WK_ROOT)/WebKitLibraries/win/lib</lib-path>
        </if>
    </template>
    <template id="wxwk" template="wxwk_build_settings,wx">
        <!-- 
        since wx 2.8's libpng and libjpeg symbols get exported when using gcc/gnu make
        we need to make sure our versions appear first, so that it will get the symbols
        from the right place
        -->
        <if cond="FORMAT=='gnu'">
            <ldflags>-ljpeg -lpng</ldflags>
        </if>
        
        <set var="WEBCORE_LIBS">
        	<if cond="PLATFORM_OS=='mac'">
                WebKitSystemInterfaceTiger
            </if>
        </set>
        <sys-lib>$(WEBCORE_LIBS)</sys-lib>
        <wx-lib>core</wx-lib>
        <wx-lib>base</wx-lib>
        <if cond="PLATFORM_WIN32=='1'">
            <define>WXUSINGDLL=1</define>
        </if>
    </template>
    
</makefile>
