summaryrefslogtreecommitdiff
path: root/devel/ocaml-lwt
diff options
context:
space:
mode:
authorwiz <wiz>2012-05-30 13:40:59 +0000
committerwiz <wiz>2012-05-30 13:40:59 +0000
commitc852e157d3eb4efcfc1833b1ce3bfc220d8f143f (patch)
tree1c77d1ee09d10be0ed3ebf8891d84e02af6cc251 /devel/ocaml-lwt
parent7a9320ef98fcc4245aed3e40a2b8ea5a6e5683c1 (diff)
downloadpkgsrc-c852e157d3eb4efcfc1833b1ce3bfc220d8f143f.tar.gz
Update to 2.3.2, by Jaap Boender in PR 44991.
===== 2.3.2 (2011-11-04) ===== * Add location informations in logs: ** allow loggers to get the current location through local storage ** pass current location to logging functions ** pass the current location with the syntax extension * Add Lwt.on_termination * Add Lwt_unix.reinstall_signal_handler * Add Lwt_io.flush_all * Add assert_lwt keyword to the syntax extension * Add Lwt.wrap * Add Lwt_glib.iter and Lwt_glib.wakeup * ocaml 3.13 ready * Allow to compile without libev support * Fix bugs in Lwt_io * Better handling of forks * Fix many problems on Windows ===== 2.3.1 (2011-07-13) ===== * Fix building of documentation when using the tarball * Add Lwt_unix.fsync and Lwt_unix.fdatasync * Fix the stubs for Lwt_unix.send_msg when fd-passing is not available * Add -lwt-sequence-strict option to the syntax extension * Use a custom PRNG state for Lwt.choose and Lwt.pick * Fix a display glitch when starting the toplevel * Add Lwt_unix.fork which should now be used when one want to use Lwt in the child process * Better implementation of Lwt_unix.readlink and Lwt_unix.gethostbyname, which fixes compilation on Hurd * Add Lwt.wakeup_later and Lwt.wakeup_later_exn to be used when one need to do lot of nested wakeup, which fixes a buffer overflow in Lwt_mutex * Fix Lwt_unix.abort and Lwt_unix.close (threads was never wakeup) * Fix Lwt_throttle for correct timings * Fix subtle use of cancel ===== 2.3.0 (2011-04-12) ===== * Add an extensible system of engines to: ** allow the user to replace libev by another event system, such as select ** allow easier integration of external libraries supporting asynchronous operations * Lots of improvements for windows: ** use the ocaml select instead of libev by default on windows ** make asynchronous operations on non-socket file descriptors such as pipes to work ** make glib integration to work * Better use of engines in Lwt_unix: now events are cached to minimize the amount of calls to epoll_ctl * Use an eventfd when possible for notifications for faster delivery * Add modules: ** Lwt_sys: allow to test availability of extra features ** Lwt_react: replace Lwt_event and Lwt_signal * Allow to configure logging rules at runtime in Lwt_log * Add match_lwt and while_lwt to the syntax extension * Fixes: ** syntax extension: handle "lwt ... = ... in ..." at toplevel ** make the notification system fork-proof ** fix an issue with stubs not raising correctly exceptions ===== 2.2.1 (2011-01-26) ===== * Better interaction with Js_of_ocaml. * Add functions {{{Lwt.register_pause_notifier}}} and {{{Lwt.paused_count}}}. ===== 2.2.0 (2010-12-13) ===== * Bugfixes: ** Fix a bug with cancellable threads causing {{{Canceled}}} exceptions to be raised randomly ** Fix a fd-leak in Lwt_io.open_connection * {{{Lwt_unix}}} now use libev instead of select * Add thread local storage support to {{{Lwt}}} * Add backtrace support to {{{Lwt}}}. Now {{{Lwt}}} exceptions can be recored by using the syntax extension with the {{{-lwt-debug}}} command line switch. * Allow blocking system calls to be executed in parallels * Change the type of many functions of {{{Lwt_unix}}}, which now return a {{{Lwt}}} thread * Add functions {{{Lwt_unix.readable}}} and {{{Lwt_unix.writable}}} * Add function {{{Lwt_io.is_busy}}} * Add functions {{{Lwt_event.delay}}} and {{{Lwt_signal.delay}}} * Add function {{{Lwt_term.render_update}}} * Add function {{{Lwt_ssl.embed_socket}}} * Add module {{{Lwt_bytes}}} defining operations on bigarrays instead of strings * Use bigarrays in Lwt_io instead of strings for the internal buffer. Lwt_io.make now takes a function that uses a bigarray. * Add module {{{Lwt_switch}}} ===== 2.1.1 (2010-06-13) ===== * Many bugfixes, including: ** buggy behaviour of cancellable threads ** file descriptor leakage in {{{Lwt_unix.accept_n}}} * Add {{{Lwt.nchoose}}} and {{{Lwt.npick}}} * Use {{{set_close_on_exec}}} for fds created by {{{Lwt_log}}} * Better implementation of lwtized react functions ===== 2.1.0 (2010-04-19) ===== * Rename {{{Lwt.select}}} to {{{Lwt.pick}}} * Removing module {{{Lwt_monitor}}} in favour of {{{Lwt_mutex}}} and new module {{{Lwt_condition}}} * More react helpers: ** {{{Lwt_event.next}}} ** {{{Lwt_event.limit}}} and {{{Lwt_signal.limit}}} ** {{{Lwt_event.from}}} * Adding function {{{Lwt_main.fast_yield}}} * Adding unit tests * Optimisation of {{{Lwt}}} * Adding module {{{Lwt_log}}} for logging * Adding a camlp4 filter for remmoving logging statement or inlining tests * Adding module {{{Lwt_daemon}}} * Adding function {{{Lwt_unix.recv_msg}}} and {{{Lwt_unix.send_msg}}} * Adding function {{{Lwt_unix.wait4}}} * Adding function {{{Lwt_io.establish_server}}} * Adding module {{{Lwt_list}}} * Enhancement in {{{Lwt_process}}}, it now support redirections and timeouts * Allow to use {{{select}}} on arbitrary high file descriptors * More commands and features in {{{Lwt_read_line}}}: ** Handle "undo" command ** New controlable read-lines instances ** More edition commands ** Completion as you type ** Backward search * Enhancement in {{{Lwt_term}}}: more drawing functions and allow to put the terminal into drawing mode * Optimisation of {{{Lwt_stream}}} * Optimisation of {{{Lwt_io.write_char}}} and {{{Lwt_io.read_char}}} * Bugfix of {{{Lwt_stream}}}: two parallel {{{Lwt_stream.get}}} returned the same value * Bugfix in {{{Lwt_unix.connect}}}: it returned immediatly on EINPROGRESS * Bugfixes in {{{Lwt_glib}}}: file descriptors were not monitored correctly ===== 2.0.0 (2009-10-15) ===== * Adding modules: ** {{{Lwt_stream}}}: lwt-aware version of the {{{Stream}}} module ** {{{Lwt_gc}}} for using {{{finalise}}} without {{{Lwt_unix.run}}} ** {{{Lwt_io}}}: a new implementation of buffered channels with more features and better handling of concurrent access ** {{{Lwt_text}}}: implementation of text channels ** {{{Lwt_process}}}: helpers to spawn processes and communicate with them ** {{{Lwt_main}}} for abstracting the main loop and allowing replacement by a custom main loop ** {{{Lwt_glib}}} for integration into the glib main event loop ** {{{Lwt_term}}} for interaction with the terminal ** {{{Lwt_read_line}}} for interactive user input ** {{{Lwt_monitor}}}, {{{Lwt_mvar}}}: combined locks for synchronization with conditional variables for notification ** {{{Lwt_throttle}}} for limiting rate of execution (e.g. for authentication procedure) ** {{{Lwt_sequence}}}: mutable sequence of elements ** {{{Lwt_event}}}, {{{Lwt_signal}}}: helpers for reactive programming with lwt * Adding a syntax extension {{{pa_lwt}}}: ** handles anonymous bind {{{a >> b}}} ** adds syntactic sugar for catching errors (ticket #6) ** adds syntactic sugar for parallel let-binding construction ** adds syntactic sugar for for-like loops * Top-level integration: ** threads can runs while reading user input ** line editing support * New enhanced OCaml toplevel with some basic completion features * Adding C stubs to reimplement {{{Unix.read}}} and {{{Unix.write}}} with assumption of non-blocking behaviour * Adding more functions/helpers in {{{Lwt}}} * Fixing memory leaks in {{{Lwt.choose}}} * Bugfix in {{{Lwt_chan.close_*}}} (ticket #66) * Separate the type of threads (covariant) from the type of thread wakeners (contravariant); the type of many functions related to {{{Lwt.wait}}} has been changed * Add cancelable threads * Unix-dependent part is now put in its own archive and findlib package.
Diffstat (limited to 'devel/ocaml-lwt')
-rw-r--r--devel/ocaml-lwt/Makefile49
-rw-r--r--devel/ocaml-lwt/PLIST135
-rw-r--r--devel/ocaml-lwt/PLIST.opt20
-rw-r--r--devel/ocaml-lwt/buildlink3.mk14
-rw-r--r--devel/ocaml-lwt/distinfo11
-rw-r--r--devel/ocaml-lwt/options.mk19
-rw-r--r--devel/ocaml-lwt/patches/patch-aa44
-rw-r--r--devel/ocaml-lwt/patches/patch-myocamlbuild.ml201
-rw-r--r--devel/ocaml-lwt/patches/patch-setup.ml1658
9 files changed, 2019 insertions, 132 deletions
diff --git a/devel/ocaml-lwt/Makefile b/devel/ocaml-lwt/Makefile
index 307148bce04..6086477f0f2 100644
--- a/devel/ocaml-lwt/Makefile
+++ b/devel/ocaml-lwt/Makefile
@@ -1,41 +1,56 @@
-# $NetBSD: Makefile,v 1.5 2011/12/06 00:19:23 sbd Exp $
+# $NetBSD: Makefile,v 1.6 2012/05/30 13:40:59 wiz Exp $
#
-DISTNAME= lwt-1.1.0
+DISTNAME= lwt-2.3.2
PKGNAME= ocaml-${DISTNAME}
-PKGREVISION= 2
CATEGORIES= devel
MASTER_SITES= http://www.ocsigen.org/download/
MAINTAINER= jaapb@kerguelen.org
HOMEPAGE= http://www.ocsigen.org/
COMMENT= Cooperative threading library for OCaml
+LICENSE= gnu-lgpl-v2.1
-PKG_DESTDIR_SUPPORT= user-destdir
+BUILDLINK_API_DEPENDS.ocaml+= ocaml>=3.11.0
+BUILD_DEPENDS+= ocaml-findlib-[0-9]*:../../devel/ocaml-findlib
+DEPENDS+= ocaml-react-[0-9]*:../../devel/ocaml-react
-MAKE_JOBS_SAFE= no
+USE_TOOLS+= gmake
+HAS_CONFIGURE= yes
+CONFIGURE_ARGS+= --destdir "${DESTDIR}" --prefix "${PREFIX}" --enable-react --disable-text --disable-glib --disable-toplevel
+USE_LANGUAGES+= c
-DEPENDS+= ocaml-findlib-[0-9]*:../../devel/ocaml-findlib
+BUILD_TARGET= build
-USE_TOOLS+= gmake
+PKG_DESTDIR_SUPPORT= user-destdir
+
+AUTO_MKDIRS= yes
-.include "../../mk/bsd.prefs.mk"
+SUBST_CLASSES+= destdir
+SUBST_STAGE.destdir= post-configure
+SUBST_MESSAGE.destdir= Changing install location to DESTDIR
+SUBST_FILES.destdir= setup.ml
+SUBST_SED.destdir= -e 's,"install" :: findlib_name,"install" :: "-destdir ${DESTDIR}${PREFIX}/lib/ocaml/site-lib" :: "-ldconf /dev/null" :: findlib_name,'
-BUILD_TARGET= META byte
.if (${MACHINE_ARCH} == "i386") || (${MACHINE_ARCH} == "powerpc") || \
(${MACHINE_ARCH} == "sparc") || (${MACHINE_ARCH} == "x86_64")
-BUILD_TARGET+= opt
-PLIST_SRC+= PLIST.opt
+PLIST_SUBST+= OPT=""
+.else
+PLIST_SUBST+= OPT="@comment "
.endif
-BUILD_TARGET+= doc
-PLIST_SRC+= PLIST
+do-configure:
+ cd ${WRKSRC} && ${CONFIGURE_ENV} ocaml setup.ml -configure ${CONFIGURE_ARGS}
-INSTALLATION_DIRS+= share/doc/ocaml-lwt
+do-build:
+ cd ${WRKSRC} && ${MAKE_ENV} ocaml setup.ml -build
-post-install:
- ${INSTALL_DATA} ${WRKSRC}/_build/lwt.docdir/* ${DESTDIR}${PREFIX}/share/doc/ocaml-lwt
+do-install:
+ ${RM} -rf ${DESTDIR}${PREFIX}/lib/ocaml/site-lib/lwt
+ ${MKDIR} ${DESTDIR}${PREFIX}/lib/ocaml/site-lib
+ cd ${WRKSRC} && ${MAKE_ENV} ocaml setup.ml -install --destdir ${DESTDIR} --prefix ${PREFIX}
-.include "../../security/ocaml-ssl/buildlink3.mk"
+.include "options.mk"
.include "../../lang/ocaml/buildlink3.mk"
+.include "../../devel/libev/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
diff --git a/devel/ocaml-lwt/PLIST b/devel/ocaml-lwt/PLIST
index 83162e9f7bb..706a5f11e54 100644
--- a/devel/ocaml-lwt/PLIST
+++ b/devel/ocaml-lwt/PLIST
@@ -1,70 +1,113 @@
-@comment $NetBSD: PLIST,v 1.2 2009/06/14 17:49:01 joerg Exp $
+@comment $NetBSD: PLIST,v 1.3 2012/05/30 13:40:59 wiz Exp $
@unexec %D/libexec/ocaml-findlib-register del %D/lib/ocaml/site-lib/lwt
lib/ocaml/site-lib/lwt/META
+lib/ocaml/site-lib/lwt/dlllwt-unix.so
+lib/ocaml/site-lib/lwt/liblwt-unix.a
+${OPT}lib/ocaml/site-lib/lwt/lwt-extra.a
+lib/ocaml/site-lib/lwt/lwt-extra.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-extra.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-extra.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-preemptive.a
+lib/ocaml/site-lib/lwt/lwt-preemptive.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-preemptive.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-preemptive.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-react.a
+lib/ocaml/site-lib/lwt/lwt-react.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-react.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-react.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-simple-top.a
+lib/ocaml/site-lib/lwt/lwt-simple-top.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-simple-top.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-simple-top.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-ssl.a
+lib/ocaml/site-lib/lwt/lwt-ssl.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-ssl.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-ssl.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax-log.a
+lib/ocaml/site-lib/lwt/lwt-syntax-log.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax-log.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax-log.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax.a
+lib/ocaml/site-lib/lwt/lwt-syntax.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax-options.a
+lib/ocaml/site-lib/lwt/lwt-syntax-options.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax-options.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-syntax-options.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt-unix.a
+lib/ocaml/site-lib/lwt/lwt-unix.cma
+${OPT}lib/ocaml/site-lib/lwt/lwt-unix.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt-unix.cmxs
+${OPT}lib/ocaml/site-lib/lwt/lwt.a
lib/ocaml/site-lib/lwt/lwt.cma
lib/ocaml/site-lib/lwt/lwt.cmi
+${OPT}lib/ocaml/site-lib/lwt/lwt.cmxa
+${OPT}lib/ocaml/site-lib/lwt/lwt.cmxs
lib/ocaml/site-lib/lwt/lwt.mli
+lib/ocaml/site-lib/lwt/lwt_bytes.cmi
+lib/ocaml/site-lib/lwt/lwt_bytes.mli
lib/ocaml/site-lib/lwt/lwt_chan.cmi
lib/ocaml/site-lib/lwt/lwt_chan.mli
-lib/ocaml/site-lib/lwt/lwt_extra.cma
+lib/ocaml/site-lib/lwt/lwt_condition.cmi
+lib/ocaml/site-lib/lwt/lwt_condition.mli
+lib/ocaml/site-lib/lwt/lwt_config.h
+lib/ocaml/site-lib/lwt/lwt_config.ml
+lib/ocaml/site-lib/lwt/lwt_daemon.cmi
+lib/ocaml/site-lib/lwt/lwt_daemon.mli
+lib/ocaml/site-lib/lwt/lwt_engine.cmi
+lib/ocaml/site-lib/lwt/lwt_engine.mli
+lib/ocaml/site-lib/lwt/lwt_event.cmi
+lib/ocaml/site-lib/lwt/lwt_event.mli
+lib/ocaml/site-lib/lwt/lwt_gc.cmi
+lib/ocaml/site-lib/lwt/lwt_gc.mli
+lib/ocaml/site-lib/lwt/lwt_io.cmi
+lib/ocaml/site-lib/lwt/lwt_io.mli
lib/ocaml/site-lib/lwt/lwt_lib.cmi
lib/ocaml/site-lib/lwt/lwt_lib.mli
+lib/ocaml/site-lib/lwt/lwt_list.cmi
+lib/ocaml/site-lib/lwt/lwt_list.mli
+lib/ocaml/site-lib/lwt/lwt_log.cmi
+lib/ocaml/site-lib/lwt/lwt_log.mli
+lib/ocaml/site-lib/lwt/lwt_main.cmi
+lib/ocaml/site-lib/lwt/lwt_main.mli
lib/ocaml/site-lib/lwt/lwt_mutex.cmi
lib/ocaml/site-lib/lwt/lwt_mutex.mli
+lib/ocaml/site-lib/lwt/lwt_mvar.cmi
+lib/ocaml/site-lib/lwt/lwt_mvar.mli
lib/ocaml/site-lib/lwt/lwt_pool.cmi
lib/ocaml/site-lib/lwt/lwt_pool.mli
-lib/ocaml/site-lib/lwt/lwt_preemptive.cma
+lib/ocaml/site-lib/lwt/lwt_pqueue.cmi
+lib/ocaml/site-lib/lwt/lwt_pqueue.mli
lib/ocaml/site-lib/lwt/lwt_preemptive.cmi
lib/ocaml/site-lib/lwt/lwt_preemptive.mli
-lib/ocaml/site-lib/lwt/lwt_ssl.cma
+lib/ocaml/site-lib/lwt/lwt_process.cmi
+lib/ocaml/site-lib/lwt/lwt_process.mli
+lib/ocaml/site-lib/lwt/lwt_react.cmi
+lib/ocaml/site-lib/lwt/lwt_react.mli
+lib/ocaml/site-lib/lwt/lwt_sequence.cmi
+lib/ocaml/site-lib/lwt/lwt_sequence.mli
+lib/ocaml/site-lib/lwt/lwt_signal.cmi
+lib/ocaml/site-lib/lwt/lwt_signal.mli
lib/ocaml/site-lib/lwt/lwt_ssl.cmi
lib/ocaml/site-lib/lwt/lwt_ssl.mli
+lib/ocaml/site-lib/lwt/lwt_stream.cmi
+lib/ocaml/site-lib/lwt/lwt_stream.mli
+lib/ocaml/site-lib/lwt/lwt_switch.cmi
+lib/ocaml/site-lib/lwt/lwt_switch.mli
+lib/ocaml/site-lib/lwt/lwt_sys.cmi
+lib/ocaml/site-lib/lwt/lwt_sys.mli
+lib/ocaml/site-lib/lwt/lwt_throttle.cmi
+lib/ocaml/site-lib/lwt/lwt_throttle.mli
lib/ocaml/site-lib/lwt/lwt_timeout.cmi
lib/ocaml/site-lib/lwt/lwt_timeout.mli
lib/ocaml/site-lib/lwt/lwt_unix.cmi
+lib/ocaml/site-lib/lwt/lwt_unix.h
lib/ocaml/site-lib/lwt/lwt_unix.mli
lib/ocaml/site-lib/lwt/lwt_util.cmi
lib/ocaml/site-lib/lwt/lwt_util.mli
-lib/ocaml/site-lib/lwt/pqueue.cmi
-lib/ocaml/site-lib/lwt/pqueue.mli
-share/doc/ocaml-lwt/Lwt.html
-share/doc/ocaml-lwt/Lwt_chan.html
-share/doc/ocaml-lwt/Lwt_lib.html
-share/doc/ocaml-lwt/Lwt_mutex.html
-share/doc/ocaml-lwt/Lwt_pool.html
-share/doc/ocaml-lwt/Lwt_preemptive.html
-share/doc/ocaml-lwt/Lwt_ssl.html
-share/doc/ocaml-lwt/Lwt_timeout.html
-share/doc/ocaml-lwt/Lwt_unix.html
-share/doc/ocaml-lwt/Lwt_util.html
-share/doc/ocaml-lwt/Pqueue.Make.html
-share/doc/ocaml-lwt/Pqueue.OrderedType.html
-share/doc/ocaml-lwt/Pqueue.S.html
-share/doc/ocaml-lwt/Pqueue.html
-share/doc/ocaml-lwt/html.stamp
-share/doc/ocaml-lwt/index.html
-share/doc/ocaml-lwt/index_attributes.html
-share/doc/ocaml-lwt/index_class_types.html
-share/doc/ocaml-lwt/index_classes.html
-share/doc/ocaml-lwt/index_exceptions.html
-share/doc/ocaml-lwt/index_methods.html
-share/doc/ocaml-lwt/index_module_types.html
-share/doc/ocaml-lwt/index_modules.html
-share/doc/ocaml-lwt/index_types.html
-share/doc/ocaml-lwt/index_values.html
-share/doc/ocaml-lwt/style.css
-share/doc/ocaml-lwt/type_Lwt.html
-share/doc/ocaml-lwt/type_Lwt_chan.html
-share/doc/ocaml-lwt/type_Lwt_lib.html
-share/doc/ocaml-lwt/type_Lwt_mutex.html
-share/doc/ocaml-lwt/type_Lwt_pool.html
-share/doc/ocaml-lwt/type_Lwt_preemptive.html
-share/doc/ocaml-lwt/type_Lwt_ssl.html
-share/doc/ocaml-lwt/type_Lwt_timeout.html
-share/doc/ocaml-lwt/type_Lwt_unix.html
-share/doc/ocaml-lwt/type_Lwt_util.html
-share/doc/ocaml-lwt/type_Pqueue.Make.html
-share/doc/ocaml-lwt/type_Pqueue.OrderedType.html
-share/doc/ocaml-lwt/type_Pqueue.S.html
-share/doc/ocaml-lwt/type_Pqueue.html
+lib/ocaml/site-lib/lwt/pa_lwt.cmi
+lib/ocaml/site-lib/lwt/pa_lwt.mli
+lib/ocaml/site-lib/lwt/pa_lwt_log.cmi
+lib/ocaml/site-lib/lwt/pa_lwt_log.mli
@exec %D/libexec/ocaml-findlib-register add %D/lib/ocaml/site-lib/lwt
diff --git a/devel/ocaml-lwt/PLIST.opt b/devel/ocaml-lwt/PLIST.opt
deleted file mode 100644
index 3f428b261fe..00000000000
--- a/devel/ocaml-lwt/PLIST.opt
+++ /dev/null
@@ -1,20 +0,0 @@
-@comment $NetBSD: PLIST.opt,v 1.1.1.1 2008/09/02 11:19:35 obache Exp $
-lib/ocaml/site-lib/lwt/lwt.a
-lib/ocaml/site-lib/lwt/lwt.cmx
-lib/ocaml/site-lib/lwt/lwt.cmxa
-lib/ocaml/site-lib/lwt/lwt_chan.cmx
-lib/ocaml/site-lib/lwt/lwt_extra.a
-lib/ocaml/site-lib/lwt/lwt_extra.cmxa
-lib/ocaml/site-lib/lwt/lwt_lib.cmx
-lib/ocaml/site-lib/lwt/lwt_mutex.cmx
-lib/ocaml/site-lib/lwt/lwt_pool.cmx
-lib/ocaml/site-lib/lwt/lwt_preemptive.a
-lib/ocaml/site-lib/lwt/lwt_preemptive.cmx
-lib/ocaml/site-lib/lwt/lwt_preemptive.cmxa
-lib/ocaml/site-lib/lwt/lwt_ssl.a
-lib/ocaml/site-lib/lwt/lwt_ssl.cmx
-lib/ocaml/site-lib/lwt/lwt_ssl.cmxa
-lib/ocaml/site-lib/lwt/lwt_timeout.cmx
-lib/ocaml/site-lib/lwt/lwt_unix.cmx
-lib/ocaml/site-lib/lwt/lwt_util.cmx
-lib/ocaml/site-lib/lwt/pqueue.cmx
diff --git a/devel/ocaml-lwt/buildlink3.mk b/devel/ocaml-lwt/buildlink3.mk
new file mode 100644
index 00000000000..367b51efa50
--- /dev/null
+++ b/devel/ocaml-lwt/buildlink3.mk
@@ -0,0 +1,14 @@
+# $NetBSD: buildlink3.mk,v 1.1 2012/05/30 13:40:59 wiz Exp $
+
+BUILDLINK_TREE+= ocamllwt
+
+.if !defined(OCAMLLWT_BUILDLINK3_MK)
+OCAMLLWT_BUILDLINK3_MK:=
+
+BUILDLINK_API_DEPENDS.ocamllwt+= ocaml-lwt>=2.0.0
+BUILDLINK_PKGSRCDIR.ocamllwt?= ../../devel/ocaml-lwt
+
+.include "../../devel/libev/buildlink3.mk"
+.endif # OCAMLLWT_BUILDLINK3_MK
+
+BUILDLINK_TREE+= -ocamllwt
diff --git a/devel/ocaml-lwt/distinfo b/devel/ocaml-lwt/distinfo
index 81542ce32a3..e581f587369 100644
--- a/devel/ocaml-lwt/distinfo
+++ b/devel/ocaml-lwt/distinfo
@@ -1,6 +1,7 @@
-$NetBSD: distinfo,v 1.2 2010/01/30 19:10:25 joerg Exp $
+$NetBSD: distinfo,v 1.3 2012/05/30 13:40:59 wiz Exp $
-SHA1 (lwt-1.1.0.tar.gz) = 838d99ce53accb4d0a393c4dd0f757d130a6bc2c
-RMD160 (lwt-1.1.0.tar.gz) = e7359a29af3c91ac006dfb3fc1150264aa27927b
-Size (lwt-1.1.0.tar.gz) = 32844 bytes
-SHA1 (patch-aa) = 69047b997d80e4d2177f62c581f19c4365326319
+SHA1 (lwt-2.3.2.tar.gz) = 5d1cb1a5180283708fb93d44e911acafdf6be850
+RMD160 (lwt-2.3.2.tar.gz) = 69243c2989493e90a043d7d541371e78c536fb44
+Size (lwt-2.3.2.tar.gz) = 474410 bytes
+SHA1 (patch-myocamlbuild.ml) = e61b63a9de55097efe6f557bb8346f4a155f9535
+SHA1 (patch-setup.ml) = 1fbb8e5cc4bdc2e6087c7300abe42b51a0eaba4d
diff --git a/devel/ocaml-lwt/options.mk b/devel/ocaml-lwt/options.mk
new file mode 100644
index 00000000000..8c7410a98c5
--- /dev/null
+++ b/devel/ocaml-lwt/options.mk
@@ -0,0 +1,19 @@
+# $NetBSD: options.mk,v 1.1 2012/05/30 13:40:59 wiz Exp $
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.ocaml-lwt
+PKG_SUPPORTED_OPTIONS= ssl
+PKG_SUGGESTED_OPTIONS= ssl
+
+.include "../../mk/bsd.prefs.mk"
+
+.include "../../mk/bsd.options.mk"
+
+###
+### SSL support
+###
+.if !empty(PKG_OPTIONS:Mssl)
+.include "../../security/ocaml-ssl/buildlink3.mk"
+CONFIGURE_ARGS+= --enable-ssl
+.else
+CONFIGURE_ARGS+= --disable-ssl
+.endif
diff --git a/devel/ocaml-lwt/patches/patch-aa b/devel/ocaml-lwt/patches/patch-aa
deleted file mode 100644
index 20d0fbb1112..00000000000
--- a/devel/ocaml-lwt/patches/patch-aa
+++ /dev/null
@@ -1,44 +0,0 @@
-$NetBSD: patch-aa,v 1.2 2010/01/30 19:10:25 joerg Exp $
-
---- Makefile.orig 2008-06-25 15:23:14.000000000 +0000
-+++ Makefile
-@@ -22,7 +22,7 @@
-
- OCAMLFIND := ocamlfind
- OCAMLBUILD := ocamlbuild
--DESTDIR := $(shell $(OCAMLFIND) printconf destdir)/$(NAME)
-+INSTALLDIR := ${DESTDIR}$(shell $(OCAMLFIND) printconf destdir)/$(NAME)
-
- NAME := lwt
- VERSION := $(shell head -n 1 VERSION)
-@@ -36,13 +36,13 @@ TOINSTALL = $(wildcard $(ARCHIVES_BYTE)
- all: META byte opt doc
-
- byte:
-- $(OCAMLBUILD) $(ARCHIVES_BYTE)
-+ $(OCAMLBUILD) -byte-plugin $(ARCHIVES_BYTE)
-
- opt:
- $(OCAMLBUILD) $(ARCHIVES_OPT)
-
- doc:
-- $(OCAMLBUILD) lwt.docdir/index.html
-+ $(OCAMLBUILD) -byte-plugin lwt.docdir/index.html
-
- examples:
- $(MAKE) -C examples
-@@ -54,11 +54,11 @@ dist:
- DARCS_REPO=$(PWD) darcs dist -d $(NAME)-$(VERSION)
-
- install:
-- mkdir -p "$(DESTDIR)"
-- $(OCAMLFIND) install $(NAME) -destdir "$(DESTDIR)" META $(TOINSTALL)
-+ mkdir -p "$(INSTALLDIR)"
-+ $(OCAMLFIND) install $(NAME) -destdir "$(INSTALLDIR)" META $(TOINSTALL)
-
- uninstall:
-- $(OCAMLFIND) remove $(NAME) -destdir "$(DESTDIR)"
-+ $(OCAMLFIND) remove $(NAME) -destdir "$(INSTALLDIR)"
-
- clean:
- $(OCAMLBUILD) -clean
diff --git a/devel/ocaml-lwt/patches/patch-myocamlbuild.ml b/devel/ocaml-lwt/patches/patch-myocamlbuild.ml
new file mode 100644
index 00000000000..73e3266c0cf
--- /dev/null
+++ b/devel/ocaml-lwt/patches/patch-myocamlbuild.ml
@@ -0,0 +1,201 @@
+$NetBSD: patch-myocamlbuild.ml,v 1.1 2012/05/30 13:40:59 wiz Exp $
+
+Patch the OASIS build system to work with NetBSD paths
+--- myocamlbuild.ml.orig 2011-12-12 12:52:35.000000000 +0000
++++ myocamlbuild.ml
+@@ -31,9 +31,9 @@ let search_paths = [
+ ]
+
+ (* OASIS_START *)
+-(* DO NOT EDIT (digest: 4c177063a31680580ca13639e7a11972) *)
++(* DO NOT EDIT (digest: 9b0df115f3f16175de7168e762f22e08) *)
+ module OASISGettext = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISGettext.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISGettext.ml"
+
+ let ns_ str =
+ str
+@@ -56,7 +56,7 @@ module OASISGettext = struct
+ end
+
+ module OASISExpr = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISExpr.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISExpr.ml"
+
+
+
+@@ -147,7 +147,7 @@ end
+
+
+ module BaseEnvLight = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseEnvLight.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseEnvLight.ml"
+
+ module MapString = Map.Make(String)
+
+@@ -244,7 +244,7 @@ end
+
+
+ module MyOCamlbuildFindlib = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml"
+
+ (** OCamlbuild extension, copied from
+ * http://brion.inria.fr/gallium/index.php/Using_ocamlfind_with_ocamlbuild
+@@ -352,7 +352,7 @@ module MyOCamlbuildFindlib = struct
+ end
+
+ module MyOCamlbuildBase = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml"
+
+ (** Base functions for writing myocamlbuild.ml
+ @author Sylvain Le Gall
+@@ -367,7 +367,7 @@ module MyOCamlbuildBase = struct
+ type name = string
+ type tag = string
+
+-# 55 "/home/chambart/bordel/oasis/oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml"
++# 55 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/ocamlbuild/MyOCamlbuildBase.ml"
+
+ type t =
+ {
+@@ -491,15 +491,15 @@ let package_default =
+ ("tests/test", ["tests"]);
+ ("src/text/lwt-text", ["src/text"]);
+ ("syntax/lwt-syntax", ["syntax"]);
+- ("src/top/lwt-top", ["src/top"]);
+ ("src/preemptive/lwt-preemptive", ["src/preemptive"]);
+- ("src/simple_top/lwt-simple-top", ["src/simple_top"]);
+- ("src/glib/lwt-glib", ["src/glib"]);
++ ("src/top/lwt-top", ["src/top"]);
+ ("syntax/lwt-syntax-log", ["syntax"]);
+ ("src/extra/lwt-extra", ["src/extra"]);
+ ("syntax/optcomp", ["syntax"]);
+ ("syntax/lwt-syntax-options", ["syntax"]);
+- ("src/ssl/lwt-ssl", ["src/ssl"])
++ ("src/ssl/lwt-ssl", ["src/ssl"]);
++ ("src/simple_top/lwt-simple-top", ["src/simple_top"]);
++ ("src/glib/lwt-glib", ["src/glib"])
+ ];
+ lib_c =
+ [
+@@ -514,19 +514,48 @@ let package_default =
+ (["oasis_library_lwt_unix_cclib"; "link"],
+ [
+ (OASISExpr.EBool true, S []);
+- (OASISExpr.EFlag "libev", S [A "-cclib"; A "-lev"]);
++ (OASISExpr.EFlag "libev",
++ S
++ [
++ A "-cclib";
++ A "-lev";
++ A "-cclib";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-cclib";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32")),
+ S [A "-cclib"; A "-lpthread"]);
+ (OASISExpr.EAnd
+ (OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32")),
+ OASISExpr.EFlag "libev"),
+- S [A "-cclib"; A "-lpthread"; A "-cclib"; A "-lev"]);
++ S
++ [
++ A "-cclib";
++ A "-lpthread";
++ A "-cclib";
++ A "-lev";
++ A "-cclib";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-cclib";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.ETest ("os_type", "Win32"),
+ S [A "-cclib"; A "ws2_32.lib"]);
+ (OASISExpr.EAnd
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.EFlag "libev"),
+- S [A "-cclib"; A "ws2_32.lib"; A "-cclib"; A "-lev"]);
++ S
++ [
++ A "-cclib";
++ A "ws2_32.lib";
++ A "-cclib";
++ A "-lev";
++ A "-cclib";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-cclib";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.EAnd
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
+@@ -543,24 +572,46 @@ let package_default =
+ A "-cclib";
+ A "-lpthread";
+ A "-cclib";
+- A "-lev"
++ A "-lev";
++ A "-cclib";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-cclib";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
+ ])
+ ]);
+ (["oasis_library_lwt_unix_cclib"; "ocamlmklib"; "c"],
+ [
+ (OASISExpr.EBool true, S []);
+- (OASISExpr.EFlag "libev", S [A "-lev"]);
++ (OASISExpr.EFlag "libev",
++ S
++ [
++ A "-lev";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32")),
+ S [A "-lpthread"]);
+ (OASISExpr.EAnd
+ (OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32")),
+ OASISExpr.EFlag "libev"),
+- S [A "-lpthread"; A "-lev"]);
++ S
++ [
++ A "-lpthread";
++ A "-lev";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.ETest ("os_type", "Win32"), S [A "ws2_32.lib"]);
+ (OASISExpr.EAnd
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.EFlag "libev"),
+- S [A "ws2_32.lib"; A "-lev"]);
++ S
++ [
++ A "ws2_32.lib";
++ A "-lev";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.EAnd
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
+@@ -570,7 +621,14 @@ let package_default =
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
+ OASISExpr.EFlag "libev"),
+- S [A "ws2_32.lib"; A "-lpthread"; A "-lev"])
++ S
++ [
++ A "ws2_32.lib";
++ A "-lpthread";
++ A "-lev";
++ A "-L${LOCALBASE}/lib/ev";
++ A "-Wl,-R${LOCALBASE}/lib/ev"
++ ])
+ ])
+ ];
+ }
diff --git a/devel/ocaml-lwt/patches/patch-setup.ml b/devel/ocaml-lwt/patches/patch-setup.ml
new file mode 100644
index 00000000000..ffd54746ebc
--- /dev/null
+++ b/devel/ocaml-lwt/patches/patch-setup.ml
@@ -0,0 +1,1658 @@
+$NetBSD: patch-setup.ml,v 1.1 2012/05/30 13:40:59 wiz Exp $
+
+Patch the OASIS build system to work with NetBSD paths
+--- ./setup.ml.orig 2011-11-04 16:49:08.000000000 +0000
++++ ./setup.ml
+@@ -8,14 +8,14 @@
+ *)
+
+ (* OASIS_START *)
+-(* DO NOT EDIT (digest: 91ec49eb394436f650011e25724ddc84) *)
++(* DO NOT EDIT (digest: 67254d8a270274ae12f65dbd0230134d) *)
+ (*
+ Regenerated by OASIS v0.2.0
+ Visit http://oasis.forge.ocamlcore.org for more information and
+ documentation about functions used in this file.
+ *)
+ module OASISGettext = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISGettext.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISGettext.ml"
+
+ let ns_ str =
+ str
+@@ -38,7 +38,7 @@ module OASISGettext = struct
+ end
+
+ module OASISContext = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISContext.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISContext.ml"
+
+ open OASISGettext
+
+@@ -97,7 +97,7 @@ module OASISContext = struct
+ end
+
+ module OASISUtils = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISUtils.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISUtils.ml"
+
+ module MapString = Map.Make(String)
+
+@@ -249,7 +249,7 @@ module OASISUtils = struct
+ end
+
+ module PropList = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/PropList.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/PropList.ml"
+
+ open OASISGettext
+
+@@ -284,7 +284,7 @@ module PropList = struct
+ let clear t =
+ Hashtbl.clear t
+
+-# 59 "/home/chambart/bordel/oasis/oasis/src/oasis/PropList.ml"
++# 66 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/PropList.ml"
+ end
+
+ module Schema =
+@@ -525,7 +525,7 @@ module PropList = struct
+ end
+
+ module OASISMessage = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISMessage.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISMessage.ml"
+
+
+ open OASISGettext
+@@ -574,7 +574,7 @@ module OASISMessage = struct
+ end
+
+ module OASISVersion = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISVersion.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISVersion.ml"
+
+ open OASISGettext
+
+@@ -758,7 +758,7 @@ module OASISVersion = struct
+ end
+
+ module OASISLicense = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISLicense.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISLicense.ml"
+
+ (** License for _oasis fields
+ @author Sylvain Le Gall
+@@ -791,7 +791,7 @@ module OASISLicense = struct
+ end
+
+ module OASISExpr = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISExpr.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISExpr.ml"
+
+
+
+@@ -881,7 +881,7 @@ module OASISExpr = struct
+ end
+
+ module OASISTypes = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISTypes.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISTypes.ml"
+
+
+
+@@ -958,7 +958,7 @@ module OASISTypes = struct
+
+ type plugin_data = (all_plugin * plugin_data_purpose * (unit -> unit)) list
+
+-# 102 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISTypes.ml"
++# 102 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISTypes.ml"
+
+ type 'a conditional = 'a OASISExpr.choices
+
+@@ -1072,6 +1072,9 @@ module OASISTypes = struct
+ | Doc of common_section * doc
+
+
++ type section_kind =
++ [ `Library | `Executable | `Flag | `SrcRepo | `Test | `Doc ]
++
+ type package =
+ {
+ oasis_version: OASISVersion.t;
+@@ -1112,7 +1115,7 @@ module OASISTypes = struct
+ end
+
+ module OASISUnixPath = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISUnixPath.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISUnixPath.ml"
+
+ type unix_filename = string
+ type unix_dirname = string
+@@ -1191,44 +1194,36 @@ module OASISUnixPath = struct
+ end
+
+ module OASISSection = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISSection.ml"
+-
+- (** Manipulate section
+- @author Sylvain Le Gall
+- *)
+-
++# 1 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISSection.ml"
+ open OASISTypes
+
+- type section_kind =
+- | KLibrary
+- | KExecutable
+- | KFlag
+- | KSrcRepo
+- | KTest
+- | KDoc
+-
+- (** Extract generic information
+- *)
+ let section_kind_common =
+ function
+ | Library (cs, _, _) ->
+- KLibrary, cs
++ `Library, cs
+ | Executable (cs, _, _) ->
+- KExecutable, cs
++ `Executable, cs
+ | Flag (cs, _) ->
+- KFlag, cs
++ `Flag, cs
+ | SrcRepo (cs, _) ->
+- KSrcRepo, cs
++ `SrcRepo, cs
+ | Test (cs, _) ->
+- KTest, cs
++ `Test, cs
+ | Doc (cs, _) ->
+- KDoc, cs
++ `Doc, cs
+
+- (** Common section of a section
+- *)
+ let section_common sct =
+ snd (section_kind_common sct)
+
++ let section_common_set cs =
++ function
++ | Library (_, bs, lib) -> Library (cs, bs, lib)
++ | Executable (_, bs, exec) -> Executable (cs, bs, exec)
++ | Flag (_, flg) -> Flag (cs, flg)
++ | SrcRepo (_, src_repo) -> SrcRepo (cs, src_repo)
++ | Test (_, tst) -> Test (cs, tst)
++ | Doc (_, doc) -> Doc (cs, doc)
++
+ (** Key used to identify section
+ *)
+ let section_id sct =
+@@ -1242,23 +1237,23 @@ module OASISSection = struct
+ section_id sct
+ in
+ (match k with
+- | KLibrary -> "library"
+- | KExecutable -> "executable"
+- | KFlag -> "flag"
+- | KSrcRepo -> "src repository"
+- | KTest -> "test"
+- | KDoc -> "doc")
++ | `Library -> "library"
++ | `Executable -> "executable"
++ | `Flag -> "flag"
++ | `SrcRepo -> "src repository"
++ | `Test -> "test"
++ | `Doc -> "doc")
+ ^" "^nm
+
+ end
+
+ module OASISBuildSection = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISBuildSection.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISBuildSection.ml"
+
+ end
+
+ module OASISExecutable = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISExecutable.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISExecutable.ml"
+
+ open OASISTypes
+
+@@ -1289,7 +1284,7 @@ module OASISExecutable = struct
+ end
+
+ module OASISLibrary = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISLibrary.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISLibrary.ml"
+
+ open OASISTypes
+ open OASISUtils
+@@ -1580,33 +1575,33 @@ module OASISLibrary = struct
+ end
+
+ module OASISFlag = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISFlag.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISFlag.ml"
+
+ end
+
+ module OASISPackage = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISPackage.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISPackage.ml"
+
+ end
+
+ module OASISSourceRepository = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISSourceRepository.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISSourceRepository.ml"
+
+ end
+
+ module OASISTest = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISTest.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISTest.ml"
+
+ end
+
+ module OASISDocument = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/oasis/OASISDocument.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/oasis/OASISDocument.ml"
+
+ end
+
+
+ module BaseEnvLight = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseEnvLight.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseEnvLight.ml"
+
+ module MapString = Map.Make(String)
+
+@@ -1703,7 +1698,7 @@ end
+
+
+ module BaseContext = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseContext.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseContext.ml"
+
+ open OASISContext
+
+@@ -1714,7 +1709,7 @@ module BaseContext = struct
+ end
+
+ module BaseMessage = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseMessage.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseMessage.ml"
+
+ (** Message to user, overrid for Base
+ @author Sylvain Le Gall
+@@ -1735,7 +1730,7 @@ module BaseMessage = struct
+ end
+
+ module BaseFilePath = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseFilePath.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseFilePath.ml"
+
+
+ open Filename
+@@ -1767,7 +1762,7 @@ module BaseFilePath = struct
+ end
+
+ module BaseEnv = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseEnv.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseEnv.ml"
+
+ open OASISTypes
+ open OASISGettext
+@@ -2226,7 +2221,7 @@ module BaseEnv = struct
+ end
+
+ module BaseExec = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseExec.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseExec.ml"
+
+ open OASISGettext
+ open OASISUtils
+@@ -2286,7 +2281,7 @@ module BaseExec = struct
+ end
+
+ module BaseFileUtil = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseFileUtil.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseFileUtil.ml"
+
+ open OASISGettext
+
+@@ -2464,7 +2459,7 @@ module BaseFileUtil = struct
+ end
+
+ module BaseArgExt = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseArgExt.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseArgExt.ml"
+
+ open OASISUtils
+ open OASISGettext
+@@ -2492,7 +2487,7 @@ module BaseArgExt = struct
+ end
+
+ module BaseCheck = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseCheck.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseCheck.ml"
+
+ open BaseEnv
+ open BaseMessage
+@@ -2618,7 +2613,7 @@ module BaseCheck = struct
+ end
+
+ module BaseOCamlcConfig = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseOCamlcConfig.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseOCamlcConfig.ml"
+
+
+ open BaseEnv
+@@ -2720,7 +2715,7 @@ module BaseOCamlcConfig = struct
+ end
+
+ module BaseStandardVar = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseStandardVar.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseStandardVar.ml"
+
+
+ open OASISGettext
+@@ -2980,7 +2975,7 @@ module BaseStandardVar = struct
+ end
+
+ module BaseFileAB = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseFileAB.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseFileAB.ml"
+
+ open BaseEnv
+ open OASISGettext
+@@ -3028,7 +3023,7 @@ module BaseFileAB = struct
+ end
+
+ module BaseLog = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseLog.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseLog.ml"
+
+ open OASISUtils
+
+@@ -3147,7 +3142,7 @@ module BaseLog = struct
+ end
+
+ module BaseBuilt = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseBuilt.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseBuilt.ml"
+
+ open OASISTypes
+ open OASISGettext
+@@ -3294,7 +3289,7 @@ module BaseBuilt = struct
+ end
+
+ module BaseCustom = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseCustom.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseCustom.ml"
+
+ open BaseEnv
+ open BaseMessage
+@@ -3344,7 +3339,7 @@ module BaseCustom = struct
+ end
+
+ module BaseDynVar = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseDynVar.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseDynVar.ml"
+
+
+ open OASISTypes
+@@ -3388,7 +3383,7 @@ module BaseDynVar = struct
+ end
+
+ module BaseTest = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseTest.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseTest.ml"
+
+ open BaseEnv
+ open BaseMessage
+@@ -3470,7 +3465,7 @@ module BaseTest = struct
+ end
+
+ module BaseDoc = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseDoc.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseDoc.ml"
+
+ open BaseEnv
+ open BaseMessage
+@@ -3500,7 +3495,7 @@ module BaseDoc = struct
+ end
+
+ module BaseSetup = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseSetup.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseSetup.ml"
+
+ open BaseEnv
+ open BaseMessage
+@@ -3918,7 +3913,7 @@ module BaseSetup = struct
+ end
+
+ module BaseDev = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/base/BaseDev.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/base/BaseDev.ml"
+
+
+
+@@ -3976,7 +3971,7 @@ end
+
+
+ module InternalConfigurePlugin = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/internal/InternalConfigurePlugin.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/internal/InternalConfigurePlugin.ml"
+
+ (** Configure using internal scheme
+ @author Sylvain Le Gall
+@@ -4192,7 +4187,7 @@ module InternalConfigurePlugin = struct
+ end
+
+ module InternalInstallPlugin = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/internal/InternalInstallPlugin.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/internal/InternalInstallPlugin.ml"
+
+ (** Install using internal scheme
+ @author Sylvain Le Gall
+@@ -4591,7 +4586,7 @@ end
+
+
+ module OCamlbuildCommon = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/ocamlbuild/OCamlbuildCommon.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/ocamlbuild/OCamlbuildCommon.ml"
+
+ (** Functions common to OCamlbuild build and doc plugin
+ *)
+@@ -4691,7 +4686,7 @@ module OCamlbuildCommon = struct
+ end
+
+ module OCamlbuildPlugin = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/ocamlbuild/OCamlbuildPlugin.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/ocamlbuild/OCamlbuildPlugin.ml"
+
+ (** Build using ocamlbuild
+ @author Sylvain Le Gall
+@@ -4935,7 +4930,7 @@ module OCamlbuildPlugin = struct
+ end
+
+ module OCamlbuildDocPlugin = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/ocamlbuild/OCamlbuildDocPlugin.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/ocamlbuild/OCamlbuildDocPlugin.ml"
+
+ (* Create documentation using ocamlbuild .odocl files
+ @author Sylvain Le Gall
+@@ -4984,7 +4979,7 @@ end
+
+
+ module CustomPlugin = struct
+-# 21 "/home/chambart/bordel/oasis/oasis/src/plugins/custom/CustomPlugin.ml"
++# 21 "/home/jaapb/progs/ocsigen-repos/oasis/src/plugins/custom/CustomPlugin.ml"
+
+ (** Generate custom configure/build/doc/test/install system
+ @author
+@@ -5126,11 +5121,11 @@ let setup_t =
+ build = OCamlbuildPlugin.build;
+ test =
+ [
+- ("unix",
++ ("core",
+ CustomPlugin.Test.main
+ {
+ CustomPlugin.cmd_main =
+- [(OASISExpr.EBool true, ("$test_unix", []))];
++ [(OASISExpr.EBool true, ("$test_core", []))];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ });
+@@ -5142,18 +5137,17 @@ let setup_t =
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ });
+- ("core",
++ ("unix",
+ CustomPlugin.Test.main
+ {
+ CustomPlugin.cmd_main =
+- [(OASISExpr.EBool true, ("$test_core", []))];
++ [(OASISExpr.EBool true, ("$test_unix", []))];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ })
+ ];
+ doc =
+ [
+- ("lwt-api", OCamlbuildDocPlugin.doc_build "./");
+ ("lwt-manual",
+ CustomPlugin.Doc.main
+ {
+@@ -5164,18 +5158,19 @@ let setup_t =
+ ];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+- })
++ });
++ ("lwt-api", OCamlbuildDocPlugin.doc_build "./")
+ ];
+ install = InternalInstallPlugin.install;
+ uninstall = InternalInstallPlugin.uninstall;
+ clean = [OCamlbuildPlugin.clean];
+ clean_test =
+ [
+- ("unix",
++ ("core",
+ CustomPlugin.Test.clean
+ {
+ CustomPlugin.cmd_main =
+- [(OASISExpr.EBool true, ("$test_unix", []))];
++ [(OASISExpr.EBool true, ("$test_core", []))];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ });
+@@ -5187,18 +5182,17 @@ let setup_t =
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ });
+- ("core",
++ ("unix",
+ CustomPlugin.Test.clean
+ {
+ CustomPlugin.cmd_main =
+- [(OASISExpr.EBool true, ("$test_core", []))];
++ [(OASISExpr.EBool true, ("$test_unix", []))];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ })
+ ];
+ clean_doc =
+ [
+- ("lwt-api", OCamlbuildDocPlugin.doc_clean "./");
+ ("lwt-manual",
+ CustomPlugin.Doc.clean
+ {
+@@ -5209,16 +5203,17 @@ let setup_t =
+ ];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+- })
++ });
++ ("lwt-api", OCamlbuildDocPlugin.doc_clean "./")
+ ];
+ distclean = [];
+ distclean_test =
+ [
+- ("unix",
++ ("core",
+ CustomPlugin.Test.distclean
+ {
+ CustomPlugin.cmd_main =
+- [(OASISExpr.EBool true, ("$test_unix", []))];
++ [(OASISExpr.EBool true, ("$test_core", []))];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ });
+@@ -5230,11 +5225,11 @@ let setup_t =
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ });
+- ("core",
++ ("unix",
+ CustomPlugin.Test.distclean
+ {
+ CustomPlugin.cmd_main =
+- [(OASISExpr.EBool true, ("$test_core", []))];
++ [(OASISExpr.EBool true, ("$test_unix", []))];
+ cmd_clean = [(OASISExpr.EBool true, None)];
+ cmd_distclean = [(OASISExpr.EBool true, None)];
+ })
+@@ -5433,7 +5428,12 @@ let setup_t =
+ bs_cclib =
+ [
+ (OASISExpr.EBool true, []);
+- (OASISExpr.EFlag "libev", ["-lev"]);
++ (OASISExpr.EFlag "libev",
++ [
++ "-lev";
++ "-L${LOCALBASE}/lib/ev";
++ "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.ENot
+ (OASISExpr.ETest ("os_type", "Win32")),
+ ["-lpthread"]);
+@@ -5441,13 +5441,23 @@ let setup_t =
+ (OASISExpr.ENot
+ (OASISExpr.ETest ("os_type", "Win32")),
+ OASISExpr.EFlag "libev"),
+- ["-lpthread"; "-lev"]);
++ [
++ "-lpthread";
++ "-lev";
++ "-L${LOCALBASE}/lib/ev";
++ "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.ETest ("os_type", "Win32"),
+ ["ws2_32.lib"]);
+ (OASISExpr.EAnd
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.EFlag "libev"),
+- ["ws2_32.lib"; "-lev"]);
++ [
++ "ws2_32.lib";
++ "-lev";
++ "-L${LOCALBASE}/lib/ev";
++ "-Wl,-R${LOCALBASE}/lib/ev"
++ ]);
+ (OASISExpr.EAnd
+ (OASISExpr.ETest ("os_type", "Win32"),
+ OASISExpr.ENot
+@@ -5459,7 +5469,13 @@ let setup_t =
+ OASISExpr.ENot
+ (OASISExpr.ETest ("os_type", "Win32"))),
+ OASISExpr.EFlag "libev"),
+- ["ws2_32.lib"; "-lpthread"; "-lev"])
++ [
++ "ws2_32.lib";
++ "-lpthread";
++ "-lev";
++ "-L${LOCALBASE}/lib/ev";
++ "-Wl,-R${LOCALBASE}/lib/ev"
++ ])
+ ];
+ bs_dlllib = [(OASISExpr.EBool true, [])];
+ bs_dllpath = [(OASISExpr.EBool true, [])];
+@@ -5618,9 +5634,43 @@ let setup_t =
+ lib_findlib_name = Some "text";
+ lib_findlib_containers = [];
+ });
++ Library
++ ({
++ cs_name = "lwt-syntax";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ bs_build = [(OASISExpr.EBool true, true)];
++ bs_install = [(OASISExpr.EBool true, true)];
++ bs_path = "syntax";
++ bs_compiled_object = Best;
++ bs_build_depends =
++ [
++ FindlibPackage ("camlp4.lib", None);
++ FindlibPackage ("camlp4.quotations.o", None);
++ FindlibPackage ("camlp4.extend", None)
++ ];
++ bs_build_tools = [ExternalTool "ocamlbuild"];
++ bs_c_sources = [];
++ bs_data_files = [];
++ bs_ccopt = [(OASISExpr.EBool true, [])];
++ bs_cclib = [(OASISExpr.EBool true, [])];
++ bs_dlllib = [(OASISExpr.EBool true, [])];
++ bs_dllpath = [(OASISExpr.EBool true, [])];
++ bs_byteopt = [(OASISExpr.EBool true, [])];
++ bs_nativeopt = [(OASISExpr.EBool true, [])];
++ },
++ {
++ lib_modules = ["Pa_lwt"];
++ lib_internal_modules = [];
++ lib_findlib_parent = Some "lwt";
++ lib_findlib_name = Some "syntax";
++ lib_findlib_containers = [];
++ });
+ Executable
+ ({
+- cs_name = "test_unix";
++ cs_name = "test_core";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+@@ -5633,7 +5683,7 @@ let setup_t =
+ true)
+ ];
+ bs_install = [(OASISExpr.EBool true, false)];
+- bs_path = "tests/unix";
++ bs_path = "tests/core";
+ bs_compiled_object = Best;
+ bs_build_depends =
+ [
+@@ -5653,22 +5703,34 @@ let setup_t =
+ bs_nativeopt = [(OASISExpr.EBool true, [])];
+ },
+ {exec_custom = false; exec_main_is = "main.ml"; });
+- Library
++ Executable
+ ({
+- cs_name = "lwt-syntax";
++ cs_name = "test_react";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- bs_build = [(OASISExpr.EBool true, true)];
+- bs_install = [(OASISExpr.EBool true, true)];
+- bs_path = "syntax";
++ bs_build =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EAnd
++ (OASISExpr.EFlag "unix",
++ OASISExpr.EFlag "react"),
++ OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_install = [(OASISExpr.EBool true, false)];
++ bs_path = "tests/react";
+ bs_compiled_object = Best;
+ bs_build_depends =
+ [
+- FindlibPackage ("camlp4.lib", None);
+- FindlibPackage ("camlp4.quotations.o", None);
+- FindlibPackage ("camlp4.extend", None)
++ InternalLibrary "test";
++ InternalLibrary "lwt";
++ FindlibPackage ("unix", None);
++ InternalLibrary "lwt-unix";
++ FindlibPackage ("react", None);
++ InternalLibrary "lwt-react"
+ ];
+ bs_build_tools = [ExternalTool "ocamlbuild"];
+ bs_c_sources = [];
+@@ -5680,16 +5742,10 @@ let setup_t =
+ bs_byteopt = [(OASISExpr.EBool true, [])];
+ bs_nativeopt = [(OASISExpr.EBool true, [])];
+ },
+- {
+- lib_modules = ["Pa_lwt"];
+- lib_internal_modules = [];
+- lib_findlib_parent = Some "lwt";
+- lib_findlib_name = Some "syntax";
+- lib_findlib_containers = [];
+- });
+- Executable
++ {exec_custom = false; exec_main_is = "main.ml"; });
++ Library
+ ({
+- cs_name = "test_react";
++ cs_name = "lwt-preemptive";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+@@ -5698,23 +5754,25 @@ let setup_t =
+ [
+ (OASISExpr.EBool true, false);
+ (OASISExpr.EOr
+- (OASISExpr.EAnd
+- (OASISExpr.EFlag "unix",
+- OASISExpr.EFlag "react"),
++ (OASISExpr.EFlag "preemptive",
+ OASISExpr.EFlag "all"),
+ true)
+ ];
+- bs_install = [(OASISExpr.EBool true, false)];
+- bs_path = "tests/react";
++ bs_install =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "preemptive",
++ OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_path = "src/preemptive";
+ bs_compiled_object = Best;
+ bs_build_depends =
+ [
+- InternalLibrary "test";
+ InternalLibrary "lwt";
+- FindlibPackage ("unix", None);
+ InternalLibrary "lwt-unix";
+- FindlibPackage ("react", None);
+- InternalLibrary "lwt-react"
++ FindlibPackage ("threads", None)
+ ];
+ bs_build_tools = [ExternalTool "ocamlbuild"];
+ bs_c_sources = [];
+@@ -5726,10 +5784,16 @@ let setup_t =
+ bs_byteopt = [(OASISExpr.EBool true, [])];
+ bs_nativeopt = [(OASISExpr.EBool true, [])];
+ },
+- {exec_custom = false; exec_main_is = "main.ml"; });
++ {
++ lib_modules = ["Lwt_preemptive"];
++ lib_internal_modules = [];
++ lib_findlib_parent = Some "lwt";
++ lib_findlib_name = Some "preemptive";
++ lib_findlib_containers = [];
++ });
+ Executable
+ ({
+- cs_name = "test_core";
++ cs_name = "test_unix";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+@@ -5742,7 +5806,7 @@ let setup_t =
+ true)
+ ];
+ bs_install = [(OASISExpr.EBool true, false)];
+- bs_path = "tests/core";
++ bs_path = "tests/unix";
+ bs_compiled_object = Best;
+ bs_build_depends =
+ [
+@@ -5808,9 +5872,9 @@ let setup_t =
+ lib_findlib_name = Some "top";
+ lib_findlib_containers = [];
+ });
+- Library
++ Executable
+ ({
+- cs_name = "lwt-preemptive";
++ cs_name = "parallelize";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+@@ -5818,26 +5882,15 @@ let setup_t =
+ bs_build =
+ [
+ (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "preemptive",
+- OASISExpr.EFlag "all"),
+- true)
+- ];
+- bs_install =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "preemptive",
+- OASISExpr.EFlag "all"),
+- true)
++ (OASISExpr.EFlag "unix", true)
+ ];
+- bs_path = "src/preemptive";
++ bs_install = [(OASISExpr.EBool true, false)];
++ bs_path = "examples/unix";
+ bs_compiled_object = Best;
+ bs_build_depends =
+ [
+- InternalLibrary "lwt";
+ InternalLibrary "lwt-unix";
+- FindlibPackage ("threads", None)
++ InternalLibrary "lwt-syntax"
+ ];
+ bs_build_tools = [ExternalTool "ocamlbuild"];
+ bs_c_sources = [];
+@@ -5849,23 +5902,7 @@ let setup_t =
+ bs_byteopt = [(OASISExpr.EBool true, [])];
+ bs_nativeopt = [(OASISExpr.EBool true, [])];
+ },
+- {
+- lib_modules = ["Lwt_preemptive"];
+- lib_internal_modules = [];
+- lib_findlib_parent = Some "lwt";
+- lib_findlib_name = Some "preemptive";
+- lib_findlib_containers = [];
+- });
+- Flag
+- ({
+- cs_name = "extra";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- flag_description = Some "Asynchronous unix functions";
+- flag_default = [(OASISExpr.EBool true, true)];
+- });
++ {exec_custom = false; exec_main_is = "parallelize.ml"; });
+ SrcRepo
+ ({
+ cs_name = "head";
+@@ -5882,41 +5919,51 @@ let setup_t =
+ src_repo_tag = None;
+ src_repo_subdir = None;
+ });
+- Flag
+- ({
+- cs_name = "preemptive";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- flag_description = Some "Preemptive threads support";
+- flag_default = [(OASISExpr.EBool true, true)];
+- });
+- Library
++ Test
+ ({
+- cs_name = "lwt-simple-top";
++ cs_name = "core";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- bs_build =
++ test_type = (`Test, "custom", Some "0.2");
++ test_command =
++ [(OASISExpr.EBool true, ("$test_core", []))];
++ test_custom =
++ {
++ pre_command = [(OASISExpr.EBool true, None)];
++ post_command = [(OASISExpr.EBool true, None)];
++ };
++ test_working_directory = None;
++ test_run =
+ [
+ (OASISExpr.EBool true, false);
+ (OASISExpr.EOr
+ (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
+ true)
+ ];
+- bs_install =
++ test_tools =
+ [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
+- true)
++ ExternalTool "ocamlbuild";
++ InternalExecutable "test_core"
+ ];
+- bs_path = "src/simple_top";
++ });
++ Library
++ ({
++ cs_name = "lwt-syntax-log";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ bs_build = [(OASISExpr.EBool true, true)];
++ bs_install = [(OASISExpr.EBool true, true)];
++ bs_path = "syntax";
+ bs_compiled_object = Best;
+ bs_build_depends =
+- [InternalLibrary "lwt"; InternalLibrary "lwt-unix"];
++ [
++ FindlibPackage ("camlp4.lib", None);
++ FindlibPackage ("camlp4.quotations.o", None)
++ ];
+ bs_build_tools = [ExternalTool "ocamlbuild"];
+ bs_c_sources = [];
+ bs_data_files = [];
+@@ -5928,79 +5975,20 @@ let setup_t =
+ bs_nativeopt = [(OASISExpr.EBool true, [])];
+ },
+ {
+- lib_modules = [];
+- lib_internal_modules = ["Lwt_simple_top"];
+- lib_findlib_parent = Some "lwt";
+- lib_findlib_name = Some "simple-top";
++ lib_modules = ["Pa_lwt_log"];
++ lib_internal_modules = [];
++ lib_findlib_parent = Some "lwt-syntax";
++ lib_findlib_name = Some "log";
+ lib_findlib_containers = [];
+ });
+- Flag
++ Doc
+ ({
+- cs_name = "glib";
++ cs_name = "lwt-manual";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- flag_description = Some "Glib integration";
+- flag_default = [(OASISExpr.EBool true, false)];
+- });
+- Test
+- ({
+- cs_name = "unix";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- test_type = (`Test, "custom", Some "0.2");
+- test_command =
+- [(OASISExpr.EBool true, ("$test_unix", []))];
+- test_custom =
+- {
+- pre_command = [(OASISExpr.EBool true, None)];
+- post_command = [(OASISExpr.EBool true, None)];
+- };
+- test_working_directory = None;
+- test_run =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
+- true)
+- ];
+- test_tools =
+- [
+- ExternalTool "ocamlbuild";
+- InternalExecutable "test_unix"
+- ];
+- });
+- Flag
+- ({
+- cs_name = "unix";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- flag_description = Some "Unix support";
+- flag_default = [(OASISExpr.EBool true, true)];
+- });
+- Flag
+- ({
+- cs_name = "text";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- flag_description = Some "Text mode utilities";
+- flag_default = [(OASISExpr.EBool true, false)];
+- });
+- Doc
+- ({
+- cs_name = "lwt-api";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- doc_type = (`Doc, "ocamlbuild", Some "0.2");
++ doc_type = (`Doc, "custom", Some "0.2");
+ doc_custom =
+ {
+ pre_command = [(OASISExpr.EBool true, None)];
+@@ -6008,129 +5996,40 @@ let setup_t =
+ };
+ doc_build = [(OASISExpr.EBool true, true)];
+ doc_install = [(OASISExpr.EBool true, true)];
+- doc_install_dir = "$htmldir/api";
+- doc_title = "API reference for Lwt";
++ doc_install_dir = "$pdfdir";
++ doc_title = "Lwt user manual";
+ doc_authors = [];
+ doc_abstract = None;
+ doc_format = OtherDoc;
+- doc_data_files = [("utils/style.css", None)];
+- doc_build_tools =
+- [ExternalTool "ocamlbuild"; ExternalTool "ocamldoc"];
++ doc_data_files = [("manual/manual.pdf", None)];
++ doc_build_tools = [ExternalTool "ocamlbuild"];
+ });
+- Library
++ Flag
+ ({
+- cs_name = "lwt-glib";
++ cs_name = "libev";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- bs_build =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "glib", OASISExpr.EFlag "all"),
+- true)
+- ];
+- bs_install =
++ flag_description = Some "Compile with libev support";
++ flag_default =
+ [
+ (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "glib", OASISExpr.EFlag "all"),
++ (OASISExpr.ENot
++ (OASISExpr.ETest ("os_type", "Win32")),
+ true)
+ ];
+- bs_path = "src/glib";
+- bs_compiled_object = Best;
+- bs_build_depends =
+- [InternalLibrary "lwt"; InternalLibrary "lwt-unix"];
+- bs_build_tools = [ExternalTool "ocamlbuild"];
+- bs_c_sources = ["lwt_glib_stubs.c"];
+- bs_data_files = [];
+- bs_ccopt = [(OASISExpr.EBool true, [])];
+- bs_cclib = [(OASISExpr.EBool true, [])];
+- bs_dlllib = [(OASISExpr.EBool true, [])];
+- bs_dllpath = [(OASISExpr.EBool true, [])];
+- bs_byteopt = [(OASISExpr.EBool true, [])];
+- bs_nativeopt = [(OASISExpr.EBool true, [])];
+- },
+- {
+- lib_modules = ["Lwt_glib"];
+- lib_internal_modules = [];
+- lib_findlib_parent = Some "lwt";
+- lib_findlib_name = Some "glib";
+- lib_findlib_containers = [];
+ });
+ Flag
+ ({
+- cs_name = "all";
++ cs_name = "extra";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- flag_description = Some "build and install everything";
+- flag_default = [(OASISExpr.EBool true, false)];
++ flag_description = Some "Asynchronous unix functions";
++ flag_default = [(OASISExpr.EBool true, true)];
+ });
+- Executable
+- ({
+- cs_name = "relay";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- bs_build =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EFlag "unix", true)
+- ];
+- bs_install = [(OASISExpr.EBool true, false)];
+- bs_path = "examples/unix";
+- bs_compiled_object = Best;
+- bs_build_depends =
+- [
+- InternalLibrary "lwt-unix";
+- InternalLibrary "lwt-syntax"
+- ];
+- bs_build_tools = [ExternalTool "ocamlbuild"];
+- bs_c_sources = [];
+- bs_data_files = [];
+- bs_ccopt = [(OASISExpr.EBool true, [])];
+- bs_cclib = [(OASISExpr.EBool true, [])];
+- bs_dlllib = [(OASISExpr.EBool true, [])];
+- bs_dllpath = [(OASISExpr.EBool true, [])];
+- bs_byteopt = [(OASISExpr.EBool true, [])];
+- bs_nativeopt = [(OASISExpr.EBool true, [])];
+- },
+- {exec_custom = false; exec_main_is = "relay.ml"; });
+- Executable
+- ({
+- cs_name = "logging";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- bs_build =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EFlag "unix", true)
+- ];
+- bs_install = [(OASISExpr.EBool true, false)];
+- bs_path = "examples/unix";
+- bs_compiled_object = Best;
+- bs_build_depends =
+- [
+- InternalLibrary "lwt-unix";
+- InternalLibrary "lwt-syntax"
+- ];
+- bs_build_tools = [ExternalTool "ocamlbuild"];
+- bs_c_sources = [];
+- bs_data_files = [];
+- bs_ccopt = [(OASISExpr.EBool true, [])];
+- bs_cclib = [(OASISExpr.EBool true, [])];
+- bs_dlllib = [(OASISExpr.EBool true, [])];
+- bs_dllpath = [(OASISExpr.EBool true, [])];
+- bs_byteopt = [(OASISExpr.EBool true, [])];
+- bs_nativeopt = [(OASISExpr.EBool true, [])];
+- },
+- {exec_custom = false; exec_main_is = "logging.ml"; });
+ Test
+ ({
+ cs_name = "react";
+@@ -6163,49 +6062,6 @@ let setup_t =
+ InternalExecutable "test_react"
+ ];
+ });
+- Library
+- ({
+- cs_name = "lwt-syntax-log";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- bs_build = [(OASISExpr.EBool true, true)];
+- bs_install = [(OASISExpr.EBool true, true)];
+- bs_path = "syntax";
+- bs_compiled_object = Best;
+- bs_build_depends =
+- [
+- FindlibPackage ("camlp4.lib", None);
+- FindlibPackage ("camlp4.quotations.o", None)
+- ];
+- bs_build_tools = [ExternalTool "ocamlbuild"];
+- bs_c_sources = [];
+- bs_data_files = [];
+- bs_ccopt = [(OASISExpr.EBool true, [])];
+- bs_cclib = [(OASISExpr.EBool true, [])];
+- bs_dlllib = [(OASISExpr.EBool true, [])];
+- bs_dllpath = [(OASISExpr.EBool true, [])];
+- bs_byteopt = [(OASISExpr.EBool true, [])];
+- bs_nativeopt = [(OASISExpr.EBool true, [])];
+- },
+- {
+- lib_modules = ["Pa_lwt_log"];
+- lib_internal_modules = [];
+- lib_findlib_parent = Some "lwt-syntax";
+- lib_findlib_name = Some "log";
+- lib_findlib_containers = [];
+- });
+- Flag
+- ({
+- cs_name = "react";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- flag_description = Some "React helpers";
+- flag_default = [(OASISExpr.EBool true, false)];
+- });
+ Flag
+ ({
+ cs_name = "ssl";
+@@ -6216,94 +6072,29 @@ let setup_t =
+ flag_description = Some "SSL support";
+ flag_default = [(OASISExpr.EBool true, false)];
+ });
+- Test
++ Flag
+ ({
+- cs_name = "core";
++ cs_name = "toplevel";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- test_type = (`Test, "custom", Some "0.2");
+- test_command =
+- [(OASISExpr.EBool true, ("$test_core", []))];
+- test_custom =
+- {
+- pre_command = [(OASISExpr.EBool true, None)];
+- post_command = [(OASISExpr.EBool true, None)];
+- };
+- test_working_directory = None;
+- test_run =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
+- true)
+- ];
+- test_tools =
+- [
+- ExternalTool "ocamlbuild";
+- InternalExecutable "test_core"
+- ];
++ flag_description = Some "Enhanced toplevel";
++ flag_default = [(OASISExpr.EBool true, false)];
+ });
+- Executable
+- ({
+- cs_name = "lwt-toplevel";
+- cs_data = PropList.Data.create ();
+- cs_plugin_data = [];
+- },
+- {
+- bs_build =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "toplevel",
+- OASISExpr.EFlag "all"),
+- true)
+- ];
+- bs_install =
+- [
+- (OASISExpr.EBool true, false);
+- (OASISExpr.EOr
+- (OASISExpr.EFlag "toplevel",
+- OASISExpr.EFlag "all"),
+- true)
+- ];
+- bs_path = "src/top";
+- bs_compiled_object = Byte;
+- bs_build_depends =
+- [
+- InternalLibrary "lwt";
+- InternalLibrary "lwt-top";
+- InternalLibrary "lwt-text";
+- InternalLibrary "lwt-react";
+- FindlibPackage ("text", None);
+- FindlibPackage ("findlib", None);
+- FindlibPackage ("unix", None)
+- ];
+- bs_build_tools = [ExternalTool "ocamlbuild"];
+- bs_c_sources = [];
+- bs_data_files = [];
+- bs_ccopt = [(OASISExpr.EBool true, [])];
+- bs_cclib = [(OASISExpr.EBool true, [])];
+- bs_dlllib = [(OASISExpr.EBool true, [])];
+- bs_dllpath = [(OASISExpr.EBool true, [])];
+- bs_byteopt = [(OASISExpr.EBool true, [])];
+- bs_nativeopt = [(OASISExpr.EBool true, [])];
+- },
+- {exec_custom = false; exec_main_is = "lwt_toplevel.ml"; });
+ Flag
+ ({
+- cs_name = "toplevel";
++ cs_name = "preemptive";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- flag_description = Some "Enhanced toplevel";
+- flag_default = [(OASISExpr.EBool true, false)];
++ flag_description = Some "Preemptive threads support";
++ flag_default = [(OASISExpr.EBool true, true)];
+ });
+ Executable
+ ({
+- cs_name = "parallelize";
++ cs_name = "logging";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+@@ -6331,7 +6122,7 @@ let setup_t =
+ bs_byteopt = [(OASISExpr.EBool true, [])];
+ bs_nativeopt = [(OASISExpr.EBool true, [])];
+ },
+- {exec_custom = false; exec_main_is = "parallelize.ml"; });
++ {exec_custom = false; exec_main_is = "logging.ml"; });
+ Library
+ ({
+ cs_name = "lwt-extra";
+@@ -6489,12 +6280,12 @@ let setup_t =
+ });
+ Doc
+ ({
+- cs_name = "lwt-manual";
++ cs_name = "lwt-api";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- doc_type = (`Doc, "custom", Some "0.2");
++ doc_type = (`Doc, "ocamlbuild", Some "0.2");
+ doc_custom =
+ {
+ pre_command = [(OASISExpr.EBool true, None)];
+@@ -6502,29 +6293,254 @@ let setup_t =
+ };
+ doc_build = [(OASISExpr.EBool true, true)];
+ doc_install = [(OASISExpr.EBool true, true)];
+- doc_install_dir = "$pdfdir";
+- doc_title = "Lwt user manual";
++ doc_install_dir = "$htmldir/api";
++ doc_title = "API reference for Lwt";
+ doc_authors = [];
+ doc_abstract = None;
+ doc_format = OtherDoc;
+- doc_data_files = [("manual/manual.pdf", None)];
+- doc_build_tools = [ExternalTool "ocamlbuild"];
++ doc_data_files = [("utils/style.css", None)];
++ doc_build_tools =
++ [ExternalTool "ocamlbuild"; ExternalTool "ocamldoc"];
+ });
++ Executable
++ ({
++ cs_name = "relay";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ bs_build =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EFlag "unix", true)
++ ];
++ bs_install = [(OASISExpr.EBool true, false)];
++ bs_path = "examples/unix";
++ bs_compiled_object = Best;
++ bs_build_depends =
++ [
++ InternalLibrary "lwt-unix";
++ InternalLibrary "lwt-syntax"
++ ];
++ bs_build_tools = [ExternalTool "ocamlbuild"];
++ bs_c_sources = [];
++ bs_data_files = [];
++ bs_ccopt = [(OASISExpr.EBool true, [])];
++ bs_cclib = [(OASISExpr.EBool true, [])];
++ bs_dlllib = [(OASISExpr.EBool true, [])];
++ bs_dllpath = [(OASISExpr.EBool true, [])];
++ bs_byteopt = [(OASISExpr.EBool true, [])];
++ bs_nativeopt = [(OASISExpr.EBool true, [])];
++ },
++ {exec_custom = false; exec_main_is = "relay.ml"; });
+ Flag
+ ({
+- cs_name = "libev";
++ cs_name = "all";
+ cs_data = PropList.Data.create ();
+ cs_plugin_data = [];
+ },
+ {
+- flag_description = Some "Compile with libev support";
+- flag_default =
++ flag_description = Some "build and install everything";
++ flag_default = [(OASISExpr.EBool true, false)];
++ });
++ Library
++ ({
++ cs_name = "lwt-simple-top";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ bs_build =
+ [
+ (OASISExpr.EBool true, false);
+- (OASISExpr.ENot
+- (OASISExpr.ETest ("os_type", "Win32")),
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_install =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_path = "src/simple_top";
++ bs_compiled_object = Best;
++ bs_build_depends =
++ [InternalLibrary "lwt"; InternalLibrary "lwt-unix"];
++ bs_build_tools = [ExternalTool "ocamlbuild"];
++ bs_c_sources = [];
++ bs_data_files = [];
++ bs_ccopt = [(OASISExpr.EBool true, [])];
++ bs_cclib = [(OASISExpr.EBool true, [])];
++ bs_dlllib = [(OASISExpr.EBool true, [])];
++ bs_dllpath = [(OASISExpr.EBool true, [])];
++ bs_byteopt = [(OASISExpr.EBool true, [])];
++ bs_nativeopt = [(OASISExpr.EBool true, [])];
++ },
++ {
++ lib_modules = [];
++ lib_internal_modules = ["Lwt_simple_top"];
++ lib_findlib_parent = Some "lwt";
++ lib_findlib_name = Some "simple-top";
++ lib_findlib_containers = [];
++ });
++ Flag
++ ({
++ cs_name = "glib";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ flag_description = Some "Glib integration";
++ flag_default = [(OASISExpr.EBool true, false)];
++ });
++ Flag
++ ({
++ cs_name = "unix";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ flag_description = Some "Unix support";
++ flag_default = [(OASISExpr.EBool true, true)];
++ });
++ Flag
++ ({
++ cs_name = "text";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ flag_description = Some "Text mode utilities";
++ flag_default = [(OASISExpr.EBool true, false)];
++ });
++ Flag
++ ({
++ cs_name = "react";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ flag_description = Some "React helpers";
++ flag_default = [(OASISExpr.EBool true, false)];
++ });
++ Test
++ ({
++ cs_name = "unix";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ test_type = (`Test, "custom", Some "0.2");
++ test_command =
++ [(OASISExpr.EBool true, ("$test_unix", []))];
++ test_custom =
++ {
++ pre_command = [(OASISExpr.EBool true, None)];
++ post_command = [(OASISExpr.EBool true, None)];
++ };
++ test_working_directory = None;
++ test_run =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "unix", OASISExpr.EFlag "all"),
++ true)
++ ];
++ test_tools =
++ [
++ ExternalTool "ocamlbuild";
++ InternalExecutable "test_unix"
++ ];
++ });
++ Executable
++ ({
++ cs_name = "lwt-toplevel";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ bs_build =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "toplevel",
++ OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_install =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "toplevel",
++ OASISExpr.EFlag "all"),
+ true)
+ ];
++ bs_path = "src/top";
++ bs_compiled_object = Byte;
++ bs_build_depends =
++ [
++ InternalLibrary "lwt";
++ InternalLibrary "lwt-top";
++ InternalLibrary "lwt-text";
++ InternalLibrary "lwt-react";
++ FindlibPackage ("text", None);
++ FindlibPackage ("findlib", None);
++ FindlibPackage ("unix", None)
++ ];
++ bs_build_tools = [ExternalTool "ocamlbuild"];
++ bs_c_sources = [];
++ bs_data_files = [];
++ bs_ccopt = [(OASISExpr.EBool true, [])];
++ bs_cclib = [(OASISExpr.EBool true, [])];
++ bs_dlllib = [(OASISExpr.EBool true, [])];
++ bs_dllpath = [(OASISExpr.EBool true, [])];
++ bs_byteopt = [(OASISExpr.EBool true, [])];
++ bs_nativeopt = [(OASISExpr.EBool true, [])];
++ },
++ {exec_custom = false; exec_main_is = "lwt_toplevel.ml"; });
++ Library
++ ({
++ cs_name = "lwt-glib";
++ cs_data = PropList.Data.create ();
++ cs_plugin_data = [];
++ },
++ {
++ bs_build =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "glib", OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_install =
++ [
++ (OASISExpr.EBool true, false);
++ (OASISExpr.EOr
++ (OASISExpr.EFlag "glib", OASISExpr.EFlag "all"),
++ true)
++ ];
++ bs_path = "src/glib";
++ bs_compiled_object = Best;
++ bs_build_depends =
++ [InternalLibrary "lwt"; InternalLibrary "lwt-unix"];
++ bs_build_tools = [ExternalTool "ocamlbuild"];
++ bs_c_sources = ["lwt_glib_stubs.c"];
++ bs_data_files = [];
++ bs_ccopt = [(OASISExpr.EBool true, [])];
++ bs_cclib = [(OASISExpr.EBool true, [])];
++ bs_dlllib = [(OASISExpr.EBool true, [])];
++ bs_dllpath = [(OASISExpr.EBool true, [])];
++ bs_byteopt = [(OASISExpr.EBool true, [])];
++ bs_nativeopt = [(OASISExpr.EBool true, [])];
++ },
++ {
++ lib_modules = ["Lwt_glib"];
++ lib_internal_modules = [];
++ lib_findlib_parent = Some "lwt";
++ lib_findlib_name = Some "glib";
++ lib_findlib_containers = [];
+ })
+ ];
+ plugins =