################################################################################
#  OASIS: architecture for building OCaml libraries and applications           #
#                                                                              #
#  Copyright (C) 2008-2010, OCamlCore SARL                                     #
#                                                                              #
#  This library is free software; you can redistribute it and/or modify it     #
#  under the terms of the GNU Lesser General Public License as published by    #
#  the Free Software Foundation; either version 2.1 of the License, or (at     #
#  your option) any later version, with the OCaml static compilation           #
#  exception.                                                                  #
#                                                                              #
#  This library is distributed in the hope that it will be useful, but         #
#  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY  #
#  or FITNESS FOR A PARTICULAR PURPOSE. See the file COPYING for more          #
#  details.                                                                    #
#                                                                              #
#  You should have received a copy of the GNU Lesser General Public License    #
#  along with this library; if not, write to the Free Software Foundation,     #
#  Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA               #
################################################################################

# OASIS_START
# DO NOT EDIT (digest: 2c3d9ec2e42ca28272d52c84996a4be0)
# Ignore VCS directories, you can use the same kind of rule outside 
# OASIS_START/STOP if you want to exclude directories that contains 
# useless stuff for the build process
<**/.svn>: -traverse
<**/.svn>: not_hygienic
".bzr": -traverse
".bzr": not_hygienic
".hg": -traverse
".hg": not_hygienic
".git": -traverse
".git": not_hygienic
"_darcs": -traverse
"_darcs": not_hygienic
# Library oasis
"src/oasis/oasis.cmxs": use_oasis
<src/oasis/*.ml{,i}>: pkg_unix
<src/oasis/*.ml{,i}>: pkg_odn
# Library base
"src/base/base.cmxs": use_base
<src/base/*.ml{,i}>: use_oasis
<src/base/*.ml{,i}>: pkg_unix
<src/base/*.ml{,i}>: pkg_odn
# Library builtin-plugins
"src/builtin-plugins.cmxs": use_builtin-plugins
<src/*.ml{,i}>: use_base
<src/*.ml{,i}>: use_oasis
<src/*.ml{,i}>: pkg_unix
<src/*.ml{,i}>: pkg_odn
<src/plugins/custom/*.ml{,i}>: use_base
<src/plugins/custom/*.ml{,i}>: use_oasis
<src/plugins/custom/*.ml{,i}>: pkg_unix
<src/plugins/custom/*.ml{,i}>: pkg_odn
<src/plugins/extra/META/*.ml{,i}>: use_base
<src/plugins/extra/META/*.ml{,i}>: use_oasis
<src/plugins/extra/META/*.ml{,i}>: pkg_unix
<src/plugins/extra/META/*.ml{,i}>: pkg_odn
<src/plugins/extra/devfiles/*.ml{,i}>: use_base
<src/plugins/extra/devfiles/*.ml{,i}>: use_oasis
<src/plugins/extra/devfiles/*.ml{,i}>: pkg_unix
<src/plugins/extra/devfiles/*.ml{,i}>: pkg_odn
<src/plugins/extra/stdfiles/*.ml{,i}>: use_base
<src/plugins/extra/stdfiles/*.ml{,i}>: use_oasis
<src/plugins/extra/stdfiles/*.ml{,i}>: pkg_unix
<src/plugins/extra/stdfiles/*.ml{,i}>: pkg_odn
<src/plugins/internal/*.ml{,i}>: use_base
<src/plugins/internal/*.ml{,i}>: use_oasis
<src/plugins/internal/*.ml{,i}>: pkg_unix
<src/plugins/internal/*.ml{,i}>: pkg_odn
<src/plugins/none/*.ml{,i}>: use_base
<src/plugins/none/*.ml{,i}>: use_oasis
<src/plugins/none/*.ml{,i}>: pkg_unix
<src/plugins/none/*.ml{,i}>: pkg_odn
<src/plugins/ocamlbuild/*.ml{,i}>: use_base
<src/plugins/ocamlbuild/*.ml{,i}>: use_oasis
<src/plugins/ocamlbuild/*.ml{,i}>: pkg_unix
<src/plugins/ocamlbuild/*.ml{,i}>: pkg_odn
# Library cli
"src/cli/cli.cmxs": use_cli
# Library dynrun
"src/dynrun/dynrun.cmxs": use_dynrun
<src/dynrun/*.ml{,i}>: use_builtin-plugins
<src/dynrun/*.ml{,i}>: use_base
<src/dynrun/*.ml{,i}>: use_oasis
<src/dynrun/*.ml{,i}>: pkg_unix
<src/dynrun/*.ml{,i}>: pkg_odn
# Executable test
"test/test.byte": use_builtin-plugins
"test/test.byte": use_base
"test/test.byte": use_oasis
"test/test.byte": pkg_oUnit
"test/test.byte": pkg_fileutils
"test/test.byte": pkg_findlib
"test/test.byte": pkg_expect.pcre
"test/test.byte": pkg_unix
"test/test.byte": pkg_odn
<test/*.ml{,i}>: use_builtin-plugins
<test/*.ml{,i}>: use_base
<test/*.ml{,i}>: use_oasis
<test/*.ml{,i}>: pkg_oUnit
<test/*.ml{,i}>: pkg_fileutils
<test/*.ml{,i}>: pkg_findlib
<test/*.ml{,i}>: pkg_expect.pcre
<test/*.ml{,i}>: pkg_unix
<test/*.ml{,i}>: pkg_odn
# Library plugin-loader
"src/ext/plugin-loader/src/plugin-loader.cmxs": use_plugin-loader
<src/ext/plugin-loader/src/*.ml{,i}>: pkg_dynlink
<src/ext/plugin-loader/src/*.ml{,i}>: pkg_findlib
# Executable oasis
"src/cli/Main.byte": use_cli
"src/cli/Main.byte": use_builtin-plugins
"src/cli/Main.byte": use_base
"src/cli/Main.byte": use_oasis
"src/cli/Main.byte": use_plugin-loader
"src/cli/Main.byte": pkg_dynlink
"src/cli/Main.byte": pkg_findlib
"src/cli/Main.byte": pkg_unix
"src/cli/Main.byte": pkg_odn
<src/cli/*.ml{,i}>: use_cli
<src/cli/*.ml{,i}>: use_builtin-plugins
<src/cli/*.ml{,i}>: use_base
<src/cli/*.ml{,i}>: use_oasis
<src/cli/*.ml{,i}>: use_plugin-loader
<src/cli/*.ml{,i}>: pkg_dynlink
<src/cli/*.ml{,i}>: pkg_findlib
<src/cli/*.ml{,i}>: pkg_unix
<src/cli/*.ml{,i}>: pkg_odn
# Library pluginloaderLib
"src/ext/plugin-loader/test/data/findlib/pluginloaderLib/pluginloaderLib.cmxs": use_pluginloaderLib
# Library plugin1
"src/ext/plugin-loader/test/data/findlib/plugin1/plugin1.cmxs": use_plugin1
<src/ext/plugin-loader/test/data/findlib/plugin1/*.ml{,i}>: use_pluginloaderLib
# Library plugin2
"src/ext/plugin-loader/test/data/findlib/plugin2/plugin2.cmxs": use_plugin2
<src/ext/plugin-loader/test/data/findlib/plugin2/*.ml{,i}>: use_plugin1
<src/ext/plugin-loader/test/data/findlib/plugin2/*.ml{,i}>: use_pluginloaderLib
# Library plugin3
"src/ext/plugin-loader/test/data/findlib/plugin3/plugin3.cmxs": use_plugin3
<src/ext/plugin-loader/test/data/findlib/plugin3/*.ml{,i}>: use_pluginloaderLib
# Executable pluginloader
"src/ext/plugin-loader/test/data/pluginloader.byte": use_plugin-loader
"src/ext/plugin-loader/test/data/pluginloader.byte": use_pluginloaderLib
"src/ext/plugin-loader/test/data/pluginloader.byte": pkg_dynlink
"src/ext/plugin-loader/test/data/pluginloader.byte": pkg_findlib
<src/ext/plugin-loader/test/data/*.ml{,i}>: use_plugin-loader
<src/ext/plugin-loader/test/data/*.ml{,i}>: use_pluginloaderLib
<src/ext/plugin-loader/test/data/*.ml{,i}>: pkg_dynlink
<src/ext/plugin-loader/test/data/*.ml{,i}>: pkg_findlib
# Executable test_loader
"src/ext/plugin-loader/test/TestLoader.byte": use_plugin-loader
"src/ext/plugin-loader/test/TestLoader.byte": pkg_oUnit
"src/ext/plugin-loader/test/TestLoader.byte": pkg_fileutils
"src/ext/plugin-loader/test/TestLoader.byte": pkg_dynlink
"src/ext/plugin-loader/test/TestLoader.byte": pkg_findlib
<src/ext/plugin-loader/test/*.ml{,i}>: use_plugin-loader
<src/ext/plugin-loader/test/*.ml{,i}>: pkg_oUnit
<src/ext/plugin-loader/test/*.ml{,i}>: pkg_fileutils
<src/ext/plugin-loader/test/*.ml{,i}>: pkg_dynlink
<src/ext/plugin-loader/test/*.ml{,i}>: pkg_findlib
# Library userconf
"src/ext/userconf/src/userconf.cmxs": use_userconf
# Executable test_userconf
"src/ext/userconf/test/TestUserConf.byte": use_userconf
"src/ext/userconf/test/TestUserConf.byte": pkg_oUnit
<src/ext/userconf/test/*.ml{,i}>: use_userconf
<src/ext/userconf/test/*.ml{,i}>: pkg_oUnit
# OASIS_STOP

# Base system and OASIS library 

<test/test.byte>: use_ocamlbuild
<src/cli/Main.byte>: use_ocamlbuild

"src/oasis/OASISGettext.ml": syntax_camlp4o, pkg_camlp4.macro
"src/oasis/OASISGettext.ml": cond_pkg_gettext.base
"src/cli/MainGettext.ml": syntax_camlp4o, pkg_camlp4.macro
"src/cli/MainGettext.ml": cond_pkg_gettext-stub, use_oasis
"src/cli/Main.byte": cond_pkg_gettext-stub, use_oasis
"test/TestCommon.ml": syntax_camlp4o, pkg_camlp4.macro
"test/TestCommon.ml": cond_pkg_gettext-stub
"test/test.byte": cond_pkg_gettext-stub

"src/oasis/OASISTypes.ml": syntax_camlp4o, pkg_odn.with.syntax
"src/oasis/OASISRecDescParser.ml": syntax_camlp4o, pkg_camlp4
"src/oasis/OASISVersion.ml": syntax_camlp4o, pkg_odn.with.syntax
"src/oasis/OASISLicense.ml": syntax_camlp4o, pkg_odn.with.syntax
"src/oasis/OASISExpr.ml": syntax_camlp4o, pkg_odn.with.syntax

"src/base/BaseDev.ml": syntax_camlp4o, pkg_odn.with.syntax

"src/cli/Query.ml": syntax_camlp4o, pkg_camlp4

# Plugins

"src/plugins/custom/CustomPlugin.ml": syntax_camlp4o, pkg_odn.with.syntax

"src/plugins/ocamlbuild/MyOCamlbuildBase.ml": syntax_camlp4o, pkg_odn.with.syntax
"src/plugins/ocamlbuild/MyOCamlbuildBase.ml": use_ocamlbuild
"src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml": use_ocamlbuild
"src/plugins/ocamlbuild/OCamlbuildPlugin.ml": use_ocamlbuild
"src/plugins/ocamlbuild/OCamlbuildDocPlugin.ml": syntax_camlp4o, pkg_odn.with.syntax

# TODO: The fact that we need to remove these tags is maybe a bug
<test/test.byte>: -use_base
<test/test.byte>: -use_oasis
<src/cli/Main.byte>: -use_base
<src/cli/Main.byte>: -use_oasis

<src/builtin-plugins.cma>: use_ocamlbuild

<**/*.ml>: annot

"build": -traverse
"build": not_hygienic
