[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2008-03-07 (14:46) |
From: | Dario Teixeira <darioteixeira@y...> |
Subject: | Re: [Caml-list] Ocamlbuild with findlib + camlp4 |
Hi, Thanks for your help. I think we're getting closer to creating a generic Ocamlbuild plugin that adds support for Findlib. However, I'm also beginning to suspect that actually getting there -- creating a true generic solution -- might not be at all possible with the current Ocamlbuild. > * The "pkg_nums", "pkg_str", and "pkg_unix" tags (simply add packages to > the "packages" list if you need other packages) which add the "-package > nums", "-package str" and "-package unix" options respectively. Tag your > source files with the -package options they should use when compiling, > and your output files with the -package options they should use when > linking. Your idea can be extended to create a plugin that supports any of the packages available through Findlib. Just query Findlib for a list of packages: let packages = Findlib.init (); Fl_package_base.list_packages () While in theory this should work, it's still a brute force approach. Mind you, my initial idea was that when finding a tag of the form "pkg_foobar" (the actual syntax could be "pkg(foobar)" or something like that), Ocamlbuild would dynamically add a new rule for that package. Your solution statically adds all possible rules at the time the plugin is compiled (and the patch I suggest above is even more extreme in this regard). Now, if you ask what's so bad about explicitly listing all packages in myocamlbuild.ml, the answer is that it forces users to write a plugin if they want to use findlib. Personally, I think that findlib support is so essential that one shouldn't be forced to write plugins in order to use it. > * It does nothing to handle camlp4, but you should be able to add the > correct options yourself. > > Please tell me if it is what you needed or not :) I'm finding that adding camlp4 support is where things get messy: Ocamlbuild's default rules conflict with findlib's. I am yet to find a solution that manages to integrate the three successfully. Kind regards, Dario Teixeira __________________________________________________________ Sent from Yahoo! Mail. The World's Favourite Email http://uk.docs.yahoo.com/nowyoucan.html