<?xml version="1.0" ?>

<bakefile-gen xmlns="http://www.bakefile.org/schema/bakefile-gen">

    <!--
    The formats below are disabled because wxWidgets doesn't support these
    compilers any longer (although bakefile still does).
    -->
    <disable-formats>dmars,dmars_smake,msvc6prj,watcom</disable-formats>


    <!-- These wildcards match all .bkl files in wxWidgets tree: -->
    <input>
        wx.bkl
        ../../samples/*.bkl
        ../../samples/*/*.bkl
        ../../samples/*/*/*.bkl
        ../../demos/*.bkl
        ../../demos/*/*.bkl
        ../../demos/*/*/*.bkl
        ../../utils/*.bkl
        ../../utils/*/*.bkl
        ../../utils/*/*/*.bkl
        ../../tests/*.bkl
        ../../tests/*/*.bkl
    </input>

    <!-- List of output formats to generate: -->
    <add-formats>
        autoconf,borland,dmars_smake,dmars,mingw,msvc,msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj,watcom
    </add-formats>

    <del-formats files="../../samples/*.bkl">
        autoconf,msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj
    </del-formats>
    <del-formats files="../../demos/*.bkl">
        msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj
    </del-formats>
    <del-formats files="../../samples/html/html_samples.bkl">
        msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj
    </del-formats>
    <del-formats files="../../samples/opengl/opengl_samples.bkl">
        msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj
    </del-formats>
    <del-formats files="../../utils/*.bkl">
        msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj
    </del-formats>

    <!-- HtmlCtrl sample is Cocoa only (autoconf format) -->
    <del-formats files="../../samples/html/htmlctrl/htmlctrl.bkl">
        borland,dmars_smake,dmars,mingw,msvc,msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj,watcom
    </del-formats>

    <!-- Some samples use MSVC-specific stuff -->
    <del-formats files="../../samples/mfc/mfc.bkl">
        autoconf,borland,dmars_smake,dmars,mingw,watcom
    </del-formats>

    <!-- Default flags (for all formats and bakefiles): -->
    <add-flags>-Iformats</add-flags>


    <!-- Directories where the files go: -->
    <add-flags files="wx.bkl" formats="autoconf">
        -o../../Makefile.in
    </add-flags>
    <add-flags files="wx.bkl" formats="borland">
        -o../msw/makefile.bcc
    </add-flags>
    <add-flags files="wx.bkl" formats="dmars_smake">
        -o../msw/makefile.dms
    </add-flags>
    <add-flags files="wx.bkl" formats="dmars">
        -o../msw/makefile.dmc
    </add-flags>
    <add-flags files="wx.bkl" formats="mingw">
        -o../msw/makefile.gcc
    </add-flags>
    <add-flags files="wx.bkl" formats="msvc">
        -o../msw/makefile.vc
    </add-flags>
    <add-flags files="wx.bkl" formats="watcom">
        -o../msw/makefile.wat
    </add-flags>
    <add-flags files="wx.bkl" formats="msvc6prj">
        -o../msw/wx.dsw
    </add-flags>
    <add-flags files="wx.bkl" formats="msvs2003prj">
        -o../msw/wx_vc7.sln
    </add-flags>
    <add-flags files="wx.bkl" formats="msvs2005prj">
        -o../msw/wx_vc8.sln
    </add-flags>
    <add-flags files="wx.bkl" formats="msvs2008prj">
        -o../msw/wx_vc9.sln
    </add-flags>



    <!-- Format specific settings: -->
    <add-flags formats="autoconf">
        -DAUTOCONF_MACROS_FILE=../../autoconf_inc.m4
    </add-flags>


    <!-- Use different names for Visual C++ 200x project files: -->
    <add-flags files="../../samples/*/*,../../samples/*/*/*,../../demos/*/*,../../utils/*/*,../../utils/*/*/*,../../tests/*,../../tests/*/*"
               formats="msvs2003prj">
        -o$(INPUT_FILE_DIR)/$(INPUT_FILE_BASENAME_NOEXT)_vc7.sln
    </add-flags>
    <add-flags files="../../samples/*/*,../../samples/*/*/*,../../demos/*/*,../../utils/*/*,../../utils/*/*/*,../../tests/*,../../tests/*/*"
               formats="msvs2005prj">
        -o$(INPUT_FILE_DIR)/$(INPUT_FILE_BASENAME_NOEXT)_vc8.sln
    </add-flags>
    <add-flags files="../../samples/*/*,../../samples/*/*/*,../../demos/*/*,../../utils/*/*,../../utils/*/*/*,../../tests/*,../../tests/*/*"
               formats="msvs2008prj">
        -o$(INPUT_FILE_DIR)/$(INPUT_FILE_BASENAME_NOEXT)_vc9.sln
    </add-flags>

    <add-flags formats="msvs2005prj,msvs2008prj">
        -DMSVS_PLATFORMS=win32,win64
    </add-flags>


    <!-- Makefile specific settings: -->

    <add-flags formats="borland,dmars_smake,dmars,mingw,msvc,watcom">
        -DWRITE_OPTIONS_FILE=0
    </add-flags>
    <del-flags formats="borland,dmars_smake,dmars,mingw,msvc,watcom"
               files="wx.bkl">
        -DWRITE_OPTIONS_FILE=0
    </del-flags>

    <add-flags files="wx.bkl" formats="borland">
        -DOPTIONS_FILE=config.bcc
    </add-flags>
    <add-flags files="wx.bkl" formats="dmars_smake">
        -DOPTIONS_FILE=config.dms
    </add-flags>
    <add-flags files="wx.bkl" formats="dmars">
        -DOPTIONS_FILE=config.dmc
    </add-flags>
    <add-flags files="wx.bkl" formats="mingw">
        -DOPTIONS_FILE=config.gcc
    </add-flags>
    <add-flags files="wx.bkl" formats="msvc">
        -DOPTIONS_FILE=config.vc
    </add-flags>
    <add-flags files="wx.bkl" formats="watcom">
        -DOPTIONS_FILE=config.wat
    </add-flags>

    <add-flags files="../../*/*">-DWXTOPDIR=../</add-flags>
    <add-flags files="../../*/*/*">-DWXTOPDIR=../../</add-flags>
    <add-flags files="../../*/*/*/*">-DWXTOPDIR=../../../</add-flags>
    <add-flags files="../../*/*/*/*/*">-DWXTOPDIR=../../../../</add-flags>

    <add-flags files="../../*/*" formats="borland">
        -DOPTIONS_FILE=../build/msw/config.bcc
    </add-flags>
    <add-flags files="../../*/*" formats="dmars_smake">
        -DOPTIONS_FILE=../build/msw/config.dms
    </add-flags>
    <add-flags files="../../*/*" formats="dmars">
        -DOPTIONS_FILE=../build/msw/config.dmc
    </add-flags>
    <add-flags files="../../*/*" formats="mingw">
        -DOPTIONS_FILE=../build/msw/config.gcc
    </add-flags>
    <add-flags files="../../*/*" formats="msvc">
        -DOPTIONS_FILE=../build/msw/config.vc
    </add-flags>
    <add-flags files="../../*/*" formats="watcom">
        -DOPTIONS_FILE=../build/msw/config.wat
    </add-flags>
    <add-flags files="../../*/*/*" formats="borland">
        -DOPTIONS_FILE=../../build/msw/config.bcc
    </add-flags>
    <add-flags files="../../*/*/*" formats="dmars_smake">
        -DOPTIONS_FILE=../../build/msw/config.dms
    </add-flags>
    <add-flags files="../../*/*/*" formats="dmars">
        -DOPTIONS_FILE=../../build/msw/config.dmc
    </add-flags>
    <add-flags files="../../*/*/*" formats="mingw">
        -DOPTIONS_FILE=../../build/msw/config.gcc
    </add-flags>
    <add-flags files="../../*/*/*" formats="msvc">
        -DOPTIONS_FILE=../../build/msw/config.vc
    </add-flags>
    <add-flags files="../../*/*/*" formats="watcom">
        -DOPTIONS_FILE=../../build/msw/config.wat
    </add-flags>
    <add-flags files="../../*/*/*/*" formats="borland">
        -DOPTIONS_FILE=../../../build/msw/config.bcc
    </add-flags>
    <add-flags files="../../*/*/*/*" formats="dmars_smake">
        -DOPTIONS_FILE=../../../build/msw/config.dms
    </add-flags>
    <add-flags files="../../*/*/*/*" formats="dmars">
        -DOPTIONS_FILE=../../../build/msw/config.dmc
    </add-flags>
    <add-flags files="../../*/*/*/*" formats="mingw">
        -DOPTIONS_FILE=../../../build/msw/config.gcc
    </add-flags>
    <add-flags files="../../*/*/*/*" formats="msvc">
        -DOPTIONS_FILE=../../../build/msw/config.vc
    </add-flags>
    <add-flags files="../../*/*/*/*" formats="watcom">
        -DOPTIONS_FILE=../../../build/msw/config.wat
    </add-flags>
    <add-flags files="../../*/*/*/*/*" formats="borland">
        -DOPTIONS_FILE=../../../../build/msw/config.bcc
    </add-flags>
    <add-flags files="../../*/*/*/*/*" formats="dmars_smake">
        -DOPTIONS_FILE=../../../../build/msw/config.dms
    </add-flags>
    <add-flags files="../../*/*/*/*/*" formats="dmars">
        -DOPTIONS_FILE=../../../../build/msw/config.dmc
    </add-flags>
    <add-flags files="../../*/*/*/*/*" formats="mingw">
        -DOPTIONS_FILE=../../../../build/msw/config.gcc
    </add-flags>
    <add-flags files="../../*/*/*/*/*" formats="msvc">
        -DOPTIONS_FILE=../../../../build/msw/config.vc
    </add-flags>
    <add-flags files="../../*/*/*/*/*" formats="watcom">
        -DOPTIONS_FILE=../../../../build/msw/config.wat
    </add-flags>


    <!-- Makefiles for out-of-tree building of samples on Unix: -->
    <add-formats files="../../samples/*/*.bkl,../../samples/*/*/*.bkl">
        gnu
    </add-formats>
    <del-formats files="../../samples/mfc/mfc.bkl">
        gnu
    </del-formats>
    <add-flags files="../../samples/*/*.bkl,../../samples/*/*/*.bkl"
               formats="gnu">
        -DOUT_OF_TREE_MAKEFILES=1 -o$(INPUT_FILE_DIR)/makefile.unx
    </add-flags>

    <!-- Personal customizations (not in VCS): -->
    <include file="Bakefiles.local.bkgen" ignore_missing="1"/>

</bakefile-gen>
