Commits

camlspotter committed ecd19ef

added the file

  • Participants
  • Parent commits 2b76251
  • Branches opam

Comments (0)

Files changed (21)

File extlib/OMakefile

-SOURCES[]=
-	extlib-1.5.2.tar.gz
-OCamlExternalPack2(extlib)
-

File extlib/install.sh

-#!/bin/sh
-set -e
-
-tar zxvf ../sources/extlib-1.5.2.tar.gz
-cd extlib-1.5.2
-make all opt 
-make install
-

File extlib/sources/extlib-1.5.2.tar.gz

Binary file removed.

File lwt/lwt-2.3.2/_oasis

-# +-------------------------------------------------------------------+
-# | Package parameters                                                |
-# +-------------------------------------------------------------------+
-
-OASISFormat: 0.1
-OCamlVersion: >= 3.12
-Name: lwt
-Version: 2.3.2
-LicenseFile: COPYING
-License: LGPL-2.1 with OCaml linking exception
-Authors:
-  Jérôme Vouillon,
-  Vincent Balat,
-  Nataliya Guts,
-  Pierre Clairambault,
-  Stéphane Glondu,
-  Jérémie Dimino,
-  Warren Harris,
-  Pierre Chambart,
-  Mauricio Fernandez
-Homepage: http://ocsigen.org/lwt/
-BuildTools: ocamlbuild
-Plugins: DevFiles (0.2), META (0.2)
-PostConfCommand: ocaml discover.ml -ocamlc $ocamlc -ext-obj $ext_obj -exec-name $default_executable_name -use-libev $libev -os-type $os_type
-PostDistCleanCommand: $rm src/unix/lwt_config.h src/unix/lwt_config.ml
-
-Synopsis: Lightweight thread library for Objective Caml
-Description:
-  Lwt is a library of cooperative threads implemented in monadic
-  style. With respect to preemptive threads, cooperative threads are
-  not using a scheduler to distribute processor time between
-  threads. Instead of this, each thread must tell the others that he
-  wants to let them work.
-
-# +-------------------------------------------------------------------+
-# | Flags                                                             |
-# +-------------------------------------------------------------------+
-
-Flag all
-  Description: build and install everything
-  Default: false
-
-Flag unix
-  Description: Unix support
-  Default: true
-
-Flag react
-  Description: React helpers
-  Default: false
-
-Flag glib
-  Description: Glib integration
-  Default: false
-
-Flag ssl
-  Description: SSL support
-  Default: false
-
-Flag text
-  Description: Text mode utilities
-  Default: false
-
-Flag preemptive
-  Description: Preemptive threads support
-  Default: true
-
-Flag extra
-  Description: Asynchronous unix functions
-  Default: true
-
-Flag toplevel
-  Description: Enhanced toplevel
-  Default: false
-
-Flag libev
-  Description: Compile with libev support
-  Default$: !os_type(Win32)
-
-# +-------------------------------------------------------------------+
-# | Libraries                                                         |
-# +-------------------------------------------------------------------+
-
-Library "optcomp"
-  Install: false
-  Path: syntax
-  Modules: Pa_optcomp
-  BuildDepends: camlp4.lib, camlp4.quotations.o
-
-Library "lwt"
-  Path: src/core
-  Modules:
-    Lwt_condition,
-    Lwt_list,
-    Lwt,
-    Lwt_mutex,
-    Lwt_mvar,
-    Lwt_pool,
-    Lwt_sequence,
-    Lwt_stream,
-    Lwt_switch,
-    Lwt_util,
-    Lwt_pqueue
-  XMETADescription: Lightweight thread library for OCaml (core library)
-
-Library "lwt-unix"
-  Build$: flag(unix) || flag(all)
-  Install$: flag(unix) || flag(all)
-  FindlibName: unix
-  FindlibParent: lwt
-  Path: src/unix
-  Modules:
-    Lwt_chan,
-    Lwt_daemon,
-    Lwt_gc,
-    Lwt_io,
-    Lwt_log,
-    Lwt_main,
-    Lwt_process,
-    Lwt_throttle,
-    Lwt_timeout,
-    Lwt_unix,
-    Lwt_sys,
-    Lwt_engine,
-    Lwt_bytes
-  InternalModules:
-    Lwt_log_rules
-  BuildDepends: lwt, unix, bigarray
-  XMETADescription: Unix support for lwt
-  CSources:
-    lwt_config.h,
-    lwt_unix.h,
-    lwt_unix_stubs.c,
-    lwt_libev_stubs.c
-  if os_type(Win32)
-    CCLib+: ws2_32.lib
-  else
-    CCLib+: -lpthread
-  if flag(libev)
-    CCLib+: -lev
-
-Library "lwt-simple-top"
-  Build$: flag(unix) || flag(all)
-  Install$: flag(unix) || flag(all)
-  FindlibName: simple-top
-  FindlibParent: lwt
-  Path: src/simple_top
-  InternalModules: Lwt_simple_top
-  BuildDepends: lwt, lwt.unix, compiler-libs
-  XMETADescription: Unix support for lwt
-
-Library "lwt-react"
-  Build$: flag(react) || flag(all)
-  Install$: flag(react) || flag(all)
-  FindlibName: react
-  FindlibParent: lwt
-  Path: src/react
-  Modules: Lwt_event, Lwt_signal, Lwt_react
-  BuildDepends: lwt, react
-  XMETADescription: Reactive programming helpers
-
-Library "lwt-preemptive"
-  Build$: flag(preemptive) || flag(all)
-  Install$: flag(preemptive) || flag(all)
-  FindlibName: preemptive
-  FindlibParent: lwt
-  Path: src/preemptive
-  Modules: Lwt_preemptive
-  BuildDepends: lwt, lwt.unix, threads
-  XMETADescription: Preemptive threads support for Lwt
-
-Library "lwt-extra"
-  Build$: flag(extra) || flag(all)
-  Install$: flag(extra) || flag(all)
-  FindlibName: extra
-  FindlibParent: lwt
-  Path: src/extra
-  Modules: Lwt_lib
-  BuildDepends: lwt, lwt.preemptive
-  XMETADescription: Unix functions for Lwt using Lwt_preemptive
-
-Library "lwt-glib"
-  Build$: flag(glib) || flag(all)
-  Install$: flag(glib) || flag(all)
-  FindlibName: glib
-  FindlibParent: lwt
-  Path: src/glib
-  Modules: Lwt_glib
-  CSources: lwt_glib_stubs.c
-  BuildDepends: lwt, lwt.unix
-  XMETADescription: Glib integration
-
-Library "lwt-ssl"
-  Build$: flag(ssl) || flag(all)
-  Install$: flag(ssl) || flag(all)
-  FindlibName: ssl
-  FindlibParent: lwt
-  Path: src/ssl
-  Modules: Lwt_ssl
-  BuildDepends: ssl, lwt.unix
-  XMETADescription: SSL support for Lwt
-
-Library "lwt-text"
-  Build$: flag(text) || flag(all)
-  Install$: flag(text) || flag(all)
-  FindlibName: text
-  FindlibParent: lwt
-  Path: src/text
-  Modules: Lwt_text, Lwt_term, Lwt_read_line
-  BuildDepends: lwt, lwt.unix, lwt.react, text, text.bigarray
-  XMETADescription: Text mode utilities
-  CSources: lwt_text_stubs.c
-
-Library "lwt-top"
-  Build$: flag(text) || flag(all)
-  Install$: flag(text) || flag(all)
-  FindlibName: top
-  FindlibParent: lwt
-  Path: src/top
-  Modules: Lwt_top
-  InternalModules: Lwt_ocaml_completion
-  BuildDepends: lwt, lwt.text, findlib
-  XMETADescription: Line-editing in the toplevel
-
-Library "lwt-syntax"
-  FindlibName: syntax
-  FindlibParent: lwt
-  Path: syntax
-  Modules: Pa_lwt
-  BuildDepends: camlp4.lib, camlp4.quotations.o, camlp4.extend
-  XMETAType: syntax
-  XMETADescription: Syntactic sugars for Lwt
-  XMETARequires: camlp4, lwt.syntax.options
-
-Library "lwt-syntax-options"
-  FindlibName: options
-  FindlibParent: lwt-syntax
-  Path: syntax
-  InternalModules: Pa_lwt_options
-  BuildDepends: camlp4.lib
-  XMETAType: syntax
-  XMETADescription: Options for syntax extensions
-  XMETARequires: camlp4
-
-Library "lwt-syntax-log"
-  FindlibName: log
-  FindlibParent: lwt-syntax
-  Path: syntax
-  Modules: Pa_lwt_log
-  BuildDepends: camlp4.lib, camlp4.quotations.o
-  XMETAType: syntax
-  XMETADescription: Syntactic sugars for logging
-  XMETARequires: camlp4, lwt.syntax.options
-
-# +-------------------------------------------------------------------+
-# | Toplevel                                                          |
-# +-------------------------------------------------------------------+
-
-Executable "lwt-toplevel"
-  Build$: flag(toplevel) || flag(all)
-  Install$: flag(toplevel) || flag(all)
-  Path: src/top
-  CompiledObject: byte
-  MainIs: lwt_toplevel.ml
-  BuildDepends: lwt, lwt.top, lwt.text, lwt.react, text, findlib, unix
-
-# +-------------------------------------------------------------------+
-# | Doc                                                               |
-# +-------------------------------------------------------------------+
-
-Document "lwt-manual"
-  Title: Lwt user manual
-  Type: custom (0.2)
-  Install: true
-  XCustom: make -C manual manual.pdf
-  DataFiles: manual/manual.pdf
-  InstallDir: $pdfdir
-
-Document "lwt-api"
-  Title: API reference for Lwt
-  Type: ocamlbuild (0.2)
-  Install: true
-  InstallDir: $htmldir/api
-  DataFiles: utils/style.css
-  BuildTools: ocamldoc
-  XOCamlbuildPath: ./
-  XOCamlbuildLibraries:
-    lwt,
-    lwt.extra,
-    lwt.glib,
-    lwt.preemptive,
-    lwt.react,
-    lwt.ssl,
-    lwt.text,
-    lwt.top,
-    lwt.unix,
-    lwt.syntax,
-    lwt.syntax.log
-
-# +-------------------------------------------------------------------+
-# | Examples                                                          |
-# +-------------------------------------------------------------------+
-
-Executable logging
-  Path: examples/unix
-  Build$: flag(unix)
-  Install: false
-  MainIs: logging.ml
-  BuildDepends: lwt.unix, lwt.syntax
-  CompiledObject: best
-
-Executable relay
-  Path: examples/unix
-  Build$: flag(unix)
-  Install: false
-  MainIs: relay.ml
-  BuildDepends: lwt.unix, lwt.syntax
-  CompiledObject: best
-
-Executable parallelize
-  Path: examples/unix
-  Build$: flag(unix)
-  Install: false
-  MainIs: parallelize.ml
-  BuildDepends: lwt.unix, lwt.syntax
-  CompiledObject: best
-
-# # +-------------------------------------------------------------------+
-# # | Tests                                                             |
-# # +-------------------------------------------------------------------+
-# 
-# Library test
-#   Path: tests
-#   Modules: Test
-#   Install: false
-#   Build$: flag(unix) || flag(all)
-# 
-# Executable test_core
-#   Path: tests/core
-#   Build$: flag(unix) || flag(all)
-#   Install: false
-#   CompiledObject: best
-#   MainIs: main.ml
-#   BuildDepends: test, lwt, unix, lwt.unix
-# 
-# Executable test_unix
-#   Path: tests/unix
-#   Build$: flag(unix) || flag(all)
-#   Install: false
-#   CompiledObject: best
-#   MainIs: main.ml
-#   BuildDepends: test, lwt, unix, lwt.unix
-# 
-# Executable test_react
-#   Path: tests/react
-#   Build$: (flag(unix) && flag(react)) || flag(all)
-#   Install: false
-#   CompiledObject: best
-#   MainIs: main.ml
-#   BuildDepends: test, lwt, unix, lwt.unix, react, lwt.react
-# 
-# Test core
-#   Command: $test_core
-#   TestTools: test_core
-#   Run$: flag(unix) || flag(all)
-# 
-# Test unix
-#   Command: $test_unix
-#   TestTools: test_unix
-#   Run$: flag(unix) || flag(all)
-# 
-# Test react
-#   Command: $test_react
-#   TestTools: test_react
-#   Run$: (flag(unix) && flag(react)) || flag(all)
-
-# +-------------------------------------------------------------------+
-# | Misc                                                              |
-# +-------------------------------------------------------------------+
-
-SourceRepository head
-  Type: darcs
-  Location: http://ocsigen.org/darcs/lwt
-  Browser: http://ocsigen.org/darcsweb/?r=lwt;a=summary

File lwt/lwt-2.3.2/_tags

-# -*- conf -*-
-
-<**/*.ml>: syntax_camlp4o, pkg_camlp4
-<**/*.ml>: pa_lwt_options, pa_lwt, pa_lwt_log, pa_optcomp
-<syntax/*.ml>: -pa_lwt_options, -pa_lwt, -pa_lwt_log, -pa_optcomp
-
-<src/top/{lwt_toplevel.*,toplevel.*,toplevel_temp.*}>: use_compiler_libs, pkg_text, pkg_text.bigarray, pkg_findlib, pkg_react, pkg_unix, pkg_bigarray
-
-<src/{unix,glib,text}/*>: use_stubs
-
-"src/unix/lwt_io.mli": syntax_camlp4o, pkg_camlp4, pa_optcomp
-
-# GLib bindings:
-<src/glib/lwt-glib.*>: use_C_glib
-<src/glib/liblwt-glib.*>: use_C_glib
-<src/glib/lwt_glib_stubs.*>: use_C_glib
-
-# OASIS_START
-# DO NOT EDIT (digest: 40460bacf4c36468b9134ee51c328b03)
-# 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 optcomp
-"syntax/optcomp.cmxs": use_optcomp
-# Library lwt
-"src/core/lwt.cmxs": use_lwt
-# Library lwt-unix
-"src/unix/lwt-unix.cmxs": use_lwt-unix
-<src/unix/lwt-unix.{cma,cmxa}>: oasis_library_lwt_unix_cclib
-"src/unix/liblwt-unix_stubs.lib": oasis_library_lwt_unix_cclib
-"src/unix/dlllwt-unix_stubs.dll": oasis_library_lwt_unix_cclib
-"src/unix/liblwt-unix_stubs.a": oasis_library_lwt_unix_cclib
-"src/unix/dlllwt-unix_stubs.so": oasis_library_lwt_unix_cclib
-<src/unix/lwt-unix.{cma,cmxa}>: use_liblwt-unix_stubs
-<src/unix/*.ml{,i}>: use_lwt
-<src/unix/*.ml{,i}>: pkg_unix
-<src/unix/*.ml{,i}>: pkg_bigarray
-"src/unix/lwt_unix_stubs.c": use_lwt
-"src/unix/lwt_unix_stubs.c": pkg_unix
-"src/unix/lwt_unix_stubs.c": pkg_bigarray
-"src/unix/lwt_libev_stubs.c": use_lwt
-"src/unix/lwt_libev_stubs.c": pkg_unix
-"src/unix/lwt_libev_stubs.c": pkg_bigarray
-# Library lwt-simple-top
-"src/simple_top/lwt-simple-top.cmxs": use_lwt-simple-top
-<src/simple_top/*.ml{,i}>: use_lwt-unix
-<src/simple_top/*.ml{,i}>: use_lwt
-<src/simple_top/*.ml{,i}>: pkg_unix
-<src/simple_top/*.ml{,i}>: pkg_compiler-libs
-<src/simple_top/*.ml{,i}>: pkg_bigarray
-# Library lwt-react
-"src/react/lwt-react.cmxs": use_lwt-react
-<src/react/*.ml{,i}>: use_lwt
-<src/react/*.ml{,i}>: pkg_react
-# Library lwt-preemptive
-"src/preemptive/lwt-preemptive.cmxs": use_lwt-preemptive
-<src/preemptive/*.ml{,i}>: use_lwt-unix
-<src/preemptive/*.ml{,i}>: use_lwt
-<src/preemptive/*.ml{,i}>: pkg_unix
-<src/preemptive/*.ml{,i}>: pkg_threads
-<src/preemptive/*.ml{,i}>: pkg_bigarray
-# Library lwt-extra
-"src/extra/lwt-extra.cmxs": use_lwt-extra
-<src/extra/*.ml{,i}>: use_lwt-preemptive
-<src/extra/*.ml{,i}>: use_lwt-unix
-<src/extra/*.ml{,i}>: use_lwt
-<src/extra/*.ml{,i}>: pkg_unix
-<src/extra/*.ml{,i}>: pkg_threads
-<src/extra/*.ml{,i}>: pkg_bigarray
-# Library lwt-glib
-"src/glib/lwt-glib.cmxs": use_lwt-glib
-<src/glib/lwt-glib.{cma,cmxa}>: use_liblwt-glib_stubs
-<src/glib/*.ml{,i}>: use_lwt-unix
-<src/glib/*.ml{,i}>: use_lwt
-<src/glib/*.ml{,i}>: pkg_unix
-<src/glib/*.ml{,i}>: pkg_bigarray
-"src/glib/lwt_glib_stubs.c": use_lwt-unix
-"src/glib/lwt_glib_stubs.c": use_lwt
-"src/glib/lwt_glib_stubs.c": pkg_unix
-"src/glib/lwt_glib_stubs.c": pkg_bigarray
-# Library lwt-ssl
-"src/ssl/lwt-ssl.cmxs": use_lwt-ssl
-<src/ssl/*.ml{,i}>: use_lwt-unix
-<src/ssl/*.ml{,i}>: use_lwt
-<src/ssl/*.ml{,i}>: pkg_unix
-<src/ssl/*.ml{,i}>: pkg_ssl
-<src/ssl/*.ml{,i}>: pkg_bigarray
-# Library lwt-text
-"src/text/lwt-text.cmxs": use_lwt-text
-<src/text/lwt-text.{cma,cmxa}>: use_liblwt-text_stubs
-<src/text/*.ml{,i}>: use_lwt-react
-<src/text/*.ml{,i}>: use_lwt-unix
-<src/text/*.ml{,i}>: use_lwt
-<src/text/*.ml{,i}>: pkg_text
-<src/text/*.ml{,i}>: pkg_unix
-<src/text/*.ml{,i}>: pkg_text.bigarray
-<src/text/*.ml{,i}>: pkg_react
-<src/text/*.ml{,i}>: pkg_bigarray
-"src/text/lwt_text_stubs.c": use_lwt-react
-"src/text/lwt_text_stubs.c": use_lwt-unix
-"src/text/lwt_text_stubs.c": use_lwt
-"src/text/lwt_text_stubs.c": pkg_text
-"src/text/lwt_text_stubs.c": pkg_unix
-"src/text/lwt_text_stubs.c": pkg_text.bigarray
-"src/text/lwt_text_stubs.c": pkg_react
-"src/text/lwt_text_stubs.c": pkg_bigarray
-# Library lwt-top
-"src/top/lwt-top.cmxs": use_lwt-top
-# Library lwt-syntax
-"syntax/lwt-syntax.cmxs": use_lwt-syntax
-<syntax/*.ml{,i}>: pkg_camlp4.extend
-# Library lwt-syntax-options
-"syntax/lwt-syntax-options.cmxs": use_lwt-syntax-options
-# Library lwt-syntax-log
-"syntax/lwt-syntax-log.cmxs": use_lwt-syntax-log
-<syntax/*.ml{,i}>: pkg_camlp4.lib
-<syntax/*.ml{,i}>: pkg_camlp4.quotations.o
-# Executable lwt-toplevel
-"src/top/lwt_toplevel.byte": use_lwt-top
-"src/top/lwt_toplevel.byte": use_lwt-text
-"src/top/lwt_toplevel.byte": use_lwt-react
-"src/top/lwt_toplevel.byte": use_lwt-unix
-"src/top/lwt_toplevel.byte": use_lwt
-"src/top/lwt_toplevel.byte": pkg_text
-"src/top/lwt_toplevel.byte": pkg_findlib
-"src/top/lwt_toplevel.byte": pkg_unix
-"src/top/lwt_toplevel.byte": pkg_text.bigarray
-"src/top/lwt_toplevel.byte": pkg_react
-"src/top/lwt_toplevel.byte": pkg_bigarray
-<src/top/*.ml{,i}>: use_lwt-top
-<src/top/*.ml{,i}>: use_lwt-text
-<src/top/*.ml{,i}>: use_lwt-react
-<src/top/*.ml{,i}>: use_lwt-unix
-<src/top/*.ml{,i}>: use_lwt
-<src/top/*.ml{,i}>: pkg_text
-<src/top/*.ml{,i}>: pkg_findlib
-<src/top/*.ml{,i}>: pkg_unix
-<src/top/*.ml{,i}>: pkg_text.bigarray
-<src/top/*.ml{,i}>: pkg_react
-<src/top/*.ml{,i}>: pkg_bigarray
-# Executable logging
-<examples/unix/logging.{native,byte}>: use_lwt-unix
-<examples/unix/logging.{native,byte}>: use_lwt
-<examples/unix/logging.{native,byte}>: use_lwt-syntax
-<examples/unix/logging.{native,byte}>: pkg_unix
-<examples/unix/logging.{native,byte}>: pkg_camlp4.lib
-<examples/unix/logging.{native,byte}>: pkg_camlp4.quotations.o
-<examples/unix/logging.{native,byte}>: pkg_camlp4.extend
-<examples/unix/logging.{native,byte}>: pkg_bigarray
-# Executable relay
-<examples/unix/relay.{native,byte}>: use_lwt-unix
-<examples/unix/relay.{native,byte}>: use_lwt
-<examples/unix/relay.{native,byte}>: use_lwt-syntax
-<examples/unix/relay.{native,byte}>: pkg_unix
-<examples/unix/relay.{native,byte}>: pkg_camlp4.lib
-<examples/unix/relay.{native,byte}>: pkg_camlp4.quotations.o
-<examples/unix/relay.{native,byte}>: pkg_camlp4.extend
-<examples/unix/relay.{native,byte}>: pkg_bigarray
-# Executable parallelize
-<examples/unix/parallelize.{native,byte}>: use_lwt-unix
-<examples/unix/parallelize.{native,byte}>: use_lwt
-<examples/unix/parallelize.{native,byte}>: use_lwt-syntax
-<examples/unix/parallelize.{native,byte}>: pkg_unix
-<examples/unix/parallelize.{native,byte}>: pkg_camlp4.lib
-<examples/unix/parallelize.{native,byte}>: pkg_camlp4.quotations.o
-<examples/unix/parallelize.{native,byte}>: pkg_camlp4.extend
-<examples/unix/parallelize.{native,byte}>: pkg_bigarray
-<examples/unix/*.ml{,i}>: use_lwt-unix
-<examples/unix/*.ml{,i}>: use_lwt
-<examples/unix/*.ml{,i}>: use_lwt-syntax
-<examples/unix/*.ml{,i}>: pkg_unix
-<examples/unix/*.ml{,i}>: pkg_camlp4.lib
-<examples/unix/*.ml{,i}>: pkg_camlp4.quotations.o
-<examples/unix/*.ml{,i}>: pkg_camlp4.extend
-<examples/unix/*.ml{,i}>: pkg_bigarray
-# OASIS_STOP

File lwt/lwt-2.3.2/configure

-#!/bin/sh
-
-# OASIS_START
-# DO NOT EDIT (digest: 425187ed8bfdbdd207fd76392dd243a7)
-set -e
-
-FST=true
-for i in "$@"; do 
-  if $FST; then
-    set --
-    FST=false
-  fi
-
-  case $i in
-    --*=*)
-      ARG=${i%%=*}
-      VAL=${i##*=}
-      set -- "$@" "$ARG" "$VAL"
-      ;;
-    *)
-      set -- "$@" "$i"
-      ;;
-  esac
-done
-
-ocaml setup.ml -configure "$@"
-# OASIS_STOP

File lwt/lwt-2.3.2/myocamlbuild.ml

-(* Lightweight thread library for Objective Caml
- * http://www.ocsigen.org/lwt
- * Module Myocamlbuild
- * Copyright (C) 2010 Jérémie Dimino
- *
- * This program 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, with linking exceptions;
- * either version 2.1 of the License, or (at your option) any later
- * version. See COPYING file for details.
- *
- * This program 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 GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- * 02111-1307, USA.
- *)
-
-(* Keep that in sync with the list in discover.ml *)
-let search_paths = [
-  "/usr";
-  "/usr/local";
-  "/opt";
-  "/opt/local";
-  "/sw";
-  "/mingw";
-]
-
-(* OASIS_START *)
-(* DO NOT EDIT (digest: b5bfc78fa79898e7b95e0fb86bb6881d) *)
-module OASISGettext = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISGettext.ml"
-
-  let ns_ str =
-    str
-
-  let s_ str =
-    str
-
-  let f_ (str : ('a, 'b, 'c, 'd) format4) =
-    str
-
-  let fn_ fmt1 fmt2 n =
-    if n = 1 then
-      fmt1^^""
-    else
-      fmt2^^""
-
-  let init =
-    []
-
-end
-
-module OASISExpr = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISExpr.ml"
-
-
-
-  open OASISGettext
-
-  type test = string 
-
-  type flag = string 
-
-  type t =
-    | EBool of bool
-    | ENot of t
-    | EAnd of t * t
-    | EOr of t * t
-    | EFlag of flag
-    | ETest of test * string
-    
-
-  type 'a choices = (t * 'a) list 
-
-  let eval var_get t =
-    let rec eval' =
-      function
-        | EBool b ->
-            b
-
-        | ENot e ->
-            not (eval' e)
-
-        | EAnd (e1, e2) ->
-            (eval' e1) && (eval' e2)
-
-        | EOr (e1, e2) ->
-            (eval' e1) || (eval' e2)
-
-        | EFlag nm ->
-            let v =
-              var_get nm
-            in
-              assert(v = "true" || v = "false");
-              (v = "true")
-
-        | ETest (nm, vl) ->
-            let v =
-              var_get nm
-            in
-              (v = vl)
-    in
-      eval' t
-
-  let choose ?printer ?name var_get lst =
-    let rec choose_aux =
-      function
-        | (cond, vl) :: tl ->
-            if eval var_get cond then
-              vl
-            else
-              choose_aux tl
-        | [] ->
-            let str_lst =
-              if lst = [] then
-                s_ "<empty>"
-              else
-                String.concat
-                  (s_ ", ")
-                  (List.map
-                     (fun (cond, vl) ->
-                        match printer with
-                          | Some p -> p vl
-                          | None -> s_ "<no printer>")
-                     lst)
-            in
-              match name with
-                | Some nm ->
-                    failwith
-                      (Printf.sprintf
-                         (f_ "No result for the choice list '%s': %s")
-                         nm str_lst)
-                | None ->
-                    failwith
-                      (Printf.sprintf
-                         (f_ "No result for a choice list: %s")
-                         str_lst)
-    in
-      choose_aux (List.rev lst)
-
-end
-
-
-# 117 "myocamlbuild.ml"
-module BaseEnvLight = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/base/BaseEnvLight.ml"
-
-  module MapString = Map.Make(String)
-
-  type t = string MapString.t
-
-  let default_filename =
-    Filename.concat
-      (Sys.getcwd ())
-      "setup.data"
-
-  let load ?(allow_empty=false) ?(filename=default_filename) () =
-    if Sys.file_exists filename then
-      begin
-        let chn =
-          open_in_bin filename
-        in
-        let st =
-          Stream.of_channel chn
-        in
-        let line =
-          ref 1
-        in
-        let st_line =
-          Stream.from
-            (fun _ ->
-               try
-                 match Stream.next st with
-                   | '\n' -> incr line; Some '\n'
-                   | c -> Some c
-               with Stream.Failure -> None)
-        in
-        let lexer =
-          Genlex.make_lexer ["="] st_line
-        in
-        let rec read_file mp =
-          match Stream.npeek 3 lexer with
-            | [Genlex.Ident nm; Genlex.Kwd "="; Genlex.String value] ->
-                Stream.junk lexer;
-                Stream.junk lexer;
-                Stream.junk lexer;
-                read_file (MapString.add nm value mp)
-            | [] ->
-                mp
-            | _ ->
-                failwith
-                  (Printf.sprintf
-                     "Malformed data file '%s' line %d"
-                     filename !line)
-        in
-        let mp =
-          read_file MapString.empty
-        in
-          close_in chn;
-          mp
-      end
-    else if allow_empty then
-      begin
-        MapString.empty
-      end
-    else
-      begin
-        failwith
-          (Printf.sprintf
-             "Unable to load environment, the file '%s' doesn't exist."
-             filename)
-      end
-
-  let var_get name env =
-    let rec var_expand str =
-      let buff =
-        Buffer.create ((String.length str) * 2)
-      in
-        Buffer.add_substitute
-          buff
-          (fun var ->
-             try
-               var_expand (MapString.find var env)
-             with Not_found ->
-               failwith
-                 (Printf.sprintf
-                    "No variable %s defined when trying to expand %S."
-                    var
-                    str))
-          str;
-        Buffer.contents buff
-    in
-      var_expand (MapString.find name env)
-
-  let var_choose lst env =
-    OASISExpr.choose
-      (fun nm -> var_get nm env)
-      lst
-end
-
-
-# 215 "myocamlbuild.ml"
-module MyOCamlbuildFindlib = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/plugins/ocamlbuild/MyOCamlbuildFindlib.ml"
-
-  (** OCamlbuild extension, copied from 
-    * http://brion.inria.fr/gallium/index.php/Using_ocamlfind_with_ocamlbuild
-    * by N. Pouillard and others
-    *
-    * Updated on 2009/02/28
-    *
-    * Modified by Sylvain Le Gall 
-    *)
-  open Ocamlbuild_plugin
-
-  (* these functions are not really officially exported *)
-  let run_and_read = 
-    Ocamlbuild_pack.My_unix.run_and_read
-
-  let blank_sep_strings = 
-    Ocamlbuild_pack.Lexers.blank_sep_strings
-
-  let split s ch =
-    let x = 
-      ref [] 
-    in
-    let rec go s =
-      let pos = 
-        String.index s ch 
-      in
-        x := (String.before s pos)::!x;
-        go (String.after s (pos + 1))
-    in
-      try
-        go s
-      with Not_found -> !x
-
-  let split_nl s = split s '\n'
-
-  let before_space s =
-    try
-      String.before s (String.index s ' ')
-    with Not_found -> s
-
-  (* this lists all supported packages *)
-  let find_packages () =
-    List.map before_space (split_nl & run_and_read "ocamlfind list")
-
-  (* this is supposed to list available syntaxes, but I don't know how to do it. *)
-  let find_syntaxes () = ["camlp4o"; "camlp4r"]
-
-  (* ocamlfind command *)
-  let ocamlfind x = S[A"ocamlfind"; x]
-
-  let dispatch =
-    function
-      | Before_options ->
-          (* by using Before_options one let command line options have an higher priority *)
-          (* on the contrary using After_options will guarantee to have the higher priority *)
-          (* override default commands by ocamlfind ones *)
-          Options.ocamlc     := ocamlfind & A"ocamlc";
-          Options.ocamlopt   := ocamlfind & A"ocamlopt";
-          Options.ocamldep   := ocamlfind & A"ocamldep";
-          Options.ocamldoc   := ocamlfind & A"ocamldoc";
-          Options.ocamlmktop := ocamlfind & A"ocamlmktop"
-                                  
-      | After_rules ->
-          
-          (* When one link an OCaml library/binary/package, one should use -linkpkg *)
-          flag ["ocaml"; "link"; "program"] & A"-linkpkg";
-          
-          (* For each ocamlfind package one inject the -package option when
-           * compiling, computing dependencies, generating documentation and
-           * linking. *)
-          List.iter 
-            begin fun pkg ->
-              flag ["ocaml"; "compile";  "pkg_"^pkg] & S[A"-package"; A pkg];
-              flag ["ocaml"; "ocamldep"; "pkg_"^pkg] & S[A"-package"; A pkg];
-              flag ["ocaml"; "doc";      "pkg_"^pkg] & S[A"-package"; A pkg];
-              flag ["ocaml"; "link";     "pkg_"^pkg] & S[A"-package"; A pkg];
-              flag ["ocaml"; "infer_interface"; "pkg_"^pkg] & S[A"-package"; A pkg];
-            end 
-            (find_packages ());
-
-          (* Like -package but for extensions syntax. Morover -syntax is useless
-           * when linking. *)
-          List.iter begin fun syntax ->
-          flag ["ocaml"; "compile";  "syntax_"^syntax] & S[A"-syntax"; A syntax];
-          flag ["ocaml"; "ocamldep"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
-          flag ["ocaml"; "doc";      "syntax_"^syntax] & S[A"-syntax"; A syntax];
-          flag ["ocaml"; "infer_interface"; "syntax_"^syntax] & S[A"-syntax"; A syntax];
-          end (find_syntaxes ());
-
-          (* The default "thread" tag is not compatible with ocamlfind.
-           * Indeed, the default rules add the "threads.cma" or "threads.cmxa"
-           * options when using this tag. When using the "-linkpkg" option with
-           * ocamlfind, this module will then be added twice on the command line.
-           *                        
-           * To solve this, one approach is to add the "-thread" option when using
-           * the "threads" package using the previous plugin.
-           *)
-          flag ["ocaml"; "pkg_threads"; "compile"] (S[A "-thread"]);
-          flag ["ocaml"; "pkg_threads"; "doc"] (S[A "-I"; A "+threads"]);
-          flag ["ocaml"; "pkg_threads"; "link"] (S[A "-thread"]);
-          flag ["ocaml"; "pkg_threads"; "infer_interface"] (S[A "-thread"])
-
-      | _ -> 
-          ()
-
-end
-
-module MyOCamlbuildBase = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/plugins/ocamlbuild/MyOCamlbuildBase.ml"
-
-  (** Base functions for writing myocamlbuild.ml
-      @author Sylvain Le Gall
-    *)
-
-
-
-  open Ocamlbuild_plugin
-  module OC = Ocamlbuild_pack.Ocaml_compiler
-
-  type dir = string 
-  type file = string 
-  type name = string 
-  type tag = string 
-
-# 56 "/home/jun/.share/projects/externals/oasis/_build/src/plugins/ocamlbuild/MyOCamlbuildBase.ml"
-
-  type t =
-      {
-        lib_ocaml: (name * dir list) list;
-        lib_c:     (name * dir * file list) list; 
-        flags:     (tag list * (spec OASISExpr.choices)) list;
-        (* Replace the 'dir: include' from _tags by a precise interdepends in
-         * directory.
-         *)
-        includes:  (dir * dir list) list; 
-      } 
-
-  let env_filename =
-    Pathname.basename 
-      BaseEnvLight.default_filename
-
-  let dispatch_combine lst =
-    fun e ->
-      List.iter 
-        (fun dispatch -> dispatch e)
-        lst 
-
-  let tag_libstubs nm =
-    "use_lib"^nm^"_stubs"
-
-  let nm_libstubs nm =
-    nm^"_stubs"
-
-  let dispatch t e = 
-    let env = 
-      BaseEnvLight.load 
-        ~filename:env_filename 
-        ~allow_empty:true
-        ()
-    in
-      match e with 
-        | Before_options ->
-            let no_trailing_dot s =
-              if String.length s >= 1 && s.[0] = '.' then
-                String.sub s 1 ((String.length s) - 1)
-              else
-                s
-            in
-              List.iter
-                (fun (opt, var) ->
-                   try 
-                     opt := no_trailing_dot (BaseEnvLight.var_get var env)
-                   with Not_found ->
-                     Printf.eprintf "W: Cannot get variable %s" var)
-                [
-                  Options.ext_obj, "ext_obj";
-                  Options.ext_lib, "ext_lib";
-                  Options.ext_dll, "ext_dll";
-                ]
-
-        | After_rules -> 
-            (* Declare OCaml libraries *)
-            List.iter 
-              (function
-                 | nm, [] ->
-                     ocaml_lib nm
-                 | nm, dir :: tl ->
-                     ocaml_lib ~dir:dir (dir^"/"^nm);
-                     List.iter 
-                       (fun dir -> 
-                          List.iter
-                            (fun str ->
-                               flag ["ocaml"; "use_"^nm; str] (S[A"-I"; P dir]))
-                            ["compile"; "infer_interface"; "doc"])
-                       tl)
-              t.lib_ocaml;
-
-            (* Declare directories dependencies, replace "include" in _tags. *)
-            List.iter 
-              (fun (dir, include_dirs) ->
-                 Pathname.define_context dir include_dirs)
-              t.includes;
-
-            (* Declare C libraries *)
-            List.iter
-              (fun (lib, dir, headers) ->
-                   (* Handle C part of library *)
-                   flag ["link"; "library"; "ocaml"; "byte"; tag_libstubs lib]
-                     (S[A"-dllib"; A("-l"^(nm_libstubs lib)); A"-cclib";
-                        A("-l"^(nm_libstubs lib))]);
-
-                   flag ["link"; "library"; "ocaml"; "native"; tag_libstubs lib]
-                     (S[A"-cclib"; A("-l"^(nm_libstubs lib))]);
-                        
-                   flag ["link"; "program"; "ocaml"; "byte"; tag_libstubs lib]
-                     (S[A"-dllib"; A("dll"^(nm_libstubs lib))]);
-
-                   (* When ocaml link something that use the C library, then one
-                      need that file to be up to date.
-                    *)
-                   dep ["link"; "ocaml"; "program"; tag_libstubs lib]
-                     [dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)];
-
-                   dep  ["compile"; "ocaml"; "program"; tag_libstubs lib]
-                     [dir/"lib"^(nm_libstubs lib)^"."^(!Options.ext_lib)];
-
-                   (* TODO: be more specific about what depends on headers *)
-                   (* Depends on .h files *)
-                   dep ["compile"; "c"] 
-                     headers;
-
-                   (* Setup search path for lib *)
-                   flag ["link"; "ocaml"; "use_"^lib] 
-                     (S[A"-I"; P(dir)]);
-              )
-              t.lib_c;
-
-              (* Add flags *)
-              List.iter
-              (fun (tags, cond_specs) ->
-                 let spec = 
-                   BaseEnvLight.var_choose cond_specs env
-                 in
-                   flag tags & spec)
-              t.flags
-        | _ -> 
-            ()
-
-  let dispatch_default t =
-    dispatch_combine 
-      [
-        dispatch t;
-        MyOCamlbuildFindlib.dispatch;
-      ]
-
-end
-
-
-# 476 "myocamlbuild.ml"
-open Ocamlbuild_plugin;;
-let package_default =
-  {
-     MyOCamlbuildBase.lib_ocaml =
-       [
-          ("optcomp", ["syntax"]);
-          ("lwt", ["src/core"]);
-          ("lwt-unix", ["src/unix"]);
-          ("lwt-simple-top", ["src/simple_top"]);
-          ("lwt-react", ["src/react"]);
-          ("lwt-preemptive", ["src/preemptive"]);
-          ("lwt-extra", ["src/extra"]);
-          ("lwt-glib", ["src/glib"]);
-          ("lwt-ssl", ["src/ssl"]);
-          ("lwt-text", ["src/text"]);
-          ("lwt-top", ["src/top"]);
-          ("lwt-syntax", ["syntax"]);
-          ("lwt-syntax-options", ["syntax"]);
-          ("lwt-syntax-log", ["syntax"])
-       ];
-     lib_c =
-       [
-          ("lwt-unix",
-            "src/unix",
-            ["src/unix/lwt_config.h"; "src/unix/lwt_unix.h"]);
-          ("lwt-glib", "src/glib", []);
-          ("lwt-text", "src/text", [])
-       ];
-     flags =
-       [
-          (["oasis_library_lwt_unix_cclib"; "link"],
-            [
-               (OASISExpr.EBool true, S []);
-               (OASISExpr.EFlag "libev", S [A "-cclib"; A "-lev"]);
-               (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"]);
-               (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"]);
-               (OASISExpr.EAnd
-                  (OASISExpr.ETest ("os_type", "Win32"),
-                    OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
-                 S [A "-cclib"; A "ws2_32.lib"; A "-cclib"; A "-lpthread"]);
-               (OASISExpr.EAnd
-                  (OASISExpr.EAnd
-                     (OASISExpr.ETest ("os_type", "Win32"),
-                       OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
-                    OASISExpr.EFlag "libev"),
-                 S
-                   [
-                      A "-cclib";
-                      A "ws2_32.lib";
-                      A "-cclib";
-                      A "-lpthread";
-                      A "-cclib";
-                      A "-lev"
-                   ])
-            ]);
-          (["oasis_library_lwt_unix_cclib"; "ocamlmklib"; "c"],
-            [
-               (OASISExpr.EBool true, S []);
-               (OASISExpr.EFlag "libev", S [A "-lev"]);
-               (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"]);
-               (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"]);
-               (OASISExpr.EAnd
-                  (OASISExpr.ETest ("os_type", "Win32"),
-                    OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
-                 S [A "ws2_32.lib"; A "-lpthread"]);
-               (OASISExpr.EAnd
-                  (OASISExpr.EAnd
-                     (OASISExpr.ETest ("os_type", "Win32"),
-                       OASISExpr.ENot (OASISExpr.ETest ("os_type", "Win32"))),
-                    OASISExpr.EFlag "libev"),
-                 S [A "ws2_32.lib"; A "-lpthread"; A "-lev"])
-            ])
-       ];
-     includes =
-       [
-          ("src/unix", ["src/core"]);
-          ("src/top", ["src/core"; "src/react"; "src/text"]);
-          ("src/text", ["src/core"; "src/react"; "src/unix"]);
-          ("src/ssl", ["src/unix"]);
-          ("src/simple_top", ["src/core"; "src/unix"]);
-          ("src/react", ["src/core"]);
-          ("src/preemptive", ["src/core"; "src/unix"]);
-          ("src/glib", ["src/core"; "src/unix"]);
-          ("src/extra", ["src/core"; "src/preemptive"]);
-          ("examples/unix", ["src/unix"; "syntax"])
-       ];
-     }
-  ;;
-
-let dispatch_default = MyOCamlbuildBase.dispatch_default package_default;;
-
-# 588 "myocamlbuild.ml"
-(* OASIS_STOP *)
-
-open Ocamlbuild_plugin
-
-let pkg_config flags =
-  with_temp_file "lwt" "pkg-config"
-    (fun tmp ->
-       Command.execute ~quiet:true & Cmd(S[A "pkg-config"; S flags; Sh ">"; A tmp]);
-       List.map (fun arg -> A arg) (string_list_of_file tmp))
-
-let define_c_library ?(msvc = false) ~name ~c_name () =
-  let tag = Printf.sprintf "use_C_%s" name in
-
-  (* Get compile flags. *)
-  let opt = pkg_config [A "--cflags"; A c_name] in
-
-  (* Get linking flags. *)
-  let lib =
-    if msvc then
-      (* With msvc we need to pass "glib-2.0.lib" instead of
-         "-lglib-2.0" otherwise executables will fail. *)
-      pkg_config [A "--libs-only-L"; A c_name] @ pkg_config [A "--libs-only-l"; A "--msvc-syntax"; A c_name]
-    else
-      pkg_config [A "--libs"; A c_name]
-  in
-
-  (* Add flags for linking with the C library: *)
-  flag ["ocamlmklib"; "c"; tag] & S lib;
-
-  (* C stubs using the C library must be compiled with the library
-     specifics flags: *)
-  flag ["c"; "compile"; tag] & S (List.map (fun arg -> S[A"-ccopt"; arg]) opt);
-
-  (* OCaml libraries must depends on the C library: *)
-  flag ["link"; "ocaml"; tag] & S (List.map (fun arg -> S[A"-cclib"; arg]) lib)
-
-let () =
-  dispatch
-    (fun hook ->
-       dispatch_default hook;
-       match hook with
-         | Before_options ->
-             Options.make_links := false
-
-         | After_rules ->
-             dep ["file:src/unix/lwt_unix_stubs.c"] ["src/unix/lwt_unix_unix.c"; "src/unix/lwt_unix_windows.c"];
-             dep ["pa_optcomp"] ["src/unix/lwt_config.ml"];
-
-             (* Internal syntax extension *)
-             List.iter
-               (fun base ->
-                  let tag = "pa_" ^ base and file = "syntax/pa_" ^ base ^ ".cmo" in
-                  flag ["ocaml"; "compile"; tag] & S[A"-ppopt"; A file];
-                  flag ["ocaml"; "ocamldep"; tag] & S[A"-ppopt"; A file];
-                  flag ["ocaml"; "doc"; tag] & S[A"-ppopt"; A file];
-                  dep ["ocaml"; "ocamldep"; tag] [file])
-               ["lwt_options"; "lwt"; "lwt_log"; "optcomp"];
-
-             (* Optcomp for .mli *)
-             flag ["ocaml"; "compile"; "pa_optcomp_standalone"] & S[A"-pp"; A "./syntax/optcomp.byte"];
-             flag ["ocaml"; "ocamldep"; "pa_optcomp_standalone"] & S[A"-pp"; A "./syntax/optcomp.byte"];
-             flag ["ocaml"; "doc"; "pa_optcomp_standalone"] & S[A"-pp"; A "./syntax/optcomp.byte"];
-             dep ["ocaml"; "ocamldep"; "pa_optcomp_standalone"] ["syntax/optcomp.byte"];
-
-             (* Use an introduction page with categories *)
-             tag_file "lwt-api.docdir/index.html" ["apiref"];
-             dep ["apiref"] ["apiref-intro"];
-             flag ["apiref"] & S[A "-intro"; P "apiref-intro"; A"-colorize-code"];
-
-             (* Glib bindings: *)
-             let env = BaseEnvLight.load ~allow_empty:true ~filename:MyOCamlbuildBase.env_filename () in
-             let msvc = BaseEnvLight.var_get "ccomp_type" env = "msvc" in
-             if BaseEnvLight.var_get "glib" env = "true" || BaseEnvLight.var_get "all" env = "true" then
-               define_c_library ~msvc ~name:"glib" ~c_name:"glib-2.0" ();
-
-             let opts = S[A "-ppopt"; A "-let"; A "-ppopt"; A ("windows=" ^ if BaseEnvLight.var_get "os_type" env <> "Unix" then "true" else "false")] in
-             flag ["ocaml"; "compile"; "pa_optcomp"] & opts;
-             flag ["ocaml"; "ocamldep"; "pa_optcomp"] & opts;
-             (*flag ["ocaml"; "doc"; "pa_optcomp"] & opts; Does not work... *)
-
-             flag ["ocaml"; "link"; "toplevel"] & A"-linkpkg";
-
-             let env = BaseEnvLight.load () in
-             let stdlib_path = BaseEnvLight.var_get "standard_library" env in
-
-             (* Try to find the path where compiler libraries are: *)
-             let compiler_libs =
-               let stdlib = String.chomp stdlib_path in
-               try
-                 let path =
-                   List.find Pathname.exists [
-                     stdlib / "compiler-libs";
-                     stdlib / "compiler-lib";
-                     stdlib / ".." / "compiler-libs";
-                     stdlib / ".." / "compiler-lib";
-                   ]
-                 in
-                 path :: List.filter Pathname.exists [ path / "typing"; path / "utils"; path / "parsing" ]
-               with Not_found ->
-                 []
-             in
-
-             (* Add directories for compiler-libraries: *)
-             let paths = List.map (fun path -> S[A"-I"; A path]) compiler_libs in
-             List.iter
-               (fun stage -> flag ["ocaml"; stage; "use_compiler_libs"] & S paths)
-               ["compile"; "ocamldep"; "doc"; "link"];
-
-             dep ["file:src/top/toplevel_temp.top"] ["src/core/lwt.cma";
-                                                     "src/react/lwt-react.cma";
-                                                     "src/unix/lwt-unix.cma";
-                                                     "src/text/lwt-text.cma";
-                                                     "src/top/lwt-top.cma"];
-
-             flag ["file:src/top/toplevel_temp.top"] & S[A"-I"; A"src/unix";
-                                                         A"-I"; A"src/text";
-                                                         A"src/core/lwt.cma";
-                                                         A"src/react/lwt-react.cma";
-                                                         A"src/unix/lwt-unix.cma";
-                                                         A"src/text/lwt-text.cma";
-                                                         A"src/top/lwt-top.cma"];
-
-             (* Expunge compiler modules *)
-             rule "toplevel expunge"
-               ~dep:"src/top/toplevel_temp.top"
-               ~prod:"src/top/lwt_toplevel.byte"
-               (fun _ _ ->
-                  let directories =
-                    stdlib_path
-                    :: "src/core"
-                    :: "src/react"
-                    :: "src/unix"
-                    :: "src/text"
-                    :: "src/top"
-                    :: (List.map
-                          (fun lib ->
-                             String.chomp
-                               (run_and_read
-                                  ("ocamlfind query " ^ lib)))
-                          ["findlib"; "react"; "unix"; "text"])
-                  in
-                  let modules =
-                    List.fold_left
-                      (fun set directory ->
-                         List.fold_left
-                           (fun set fname ->
-                              if Pathname.check_extension fname "cmi" then
-                                StringSet.add (module_name_of_pathname fname) set
-                              else
-                                set)
-                           set
-                           (Array.to_list (Pathname.readdir directory)))
-                      StringSet.empty directories
-                  in
-                  Cmd(S[A(stdlib_path / "expunge");
-                        A"src/top/toplevel_temp.top";
-                        A"src/top/lwt_toplevel.byte";
-                        A"outcometree"; A"topdirs"; A"toploop";
-                        S(List.map (fun x -> A x) (StringSet.elements modules))]));
-
-             (* Search for a header file in standard directories. *)
-             let search_header header =
-               let rec loop = function
-                 | [] ->
-                     None
-                 | dir :: dirs ->
-                     if Sys.file_exists (dir ^ "/include/" ^ header) then
-                       Some dir
-                     else
-                       loop dirs
-               in
-               loop search_paths
-             in
-
-             (* Add directories for libev and pthreads *)
-             let flags dir =
-               flag ["ocamlmklib"; "c"; "use_stubs"] & A("-L" ^ dir ^ "/lib");
-               flag ["c"; "compile"; "use_stubs"] & S[A"-ccopt"; A("-I" ^ dir ^ "/include")];
-               flag ["link"; "ocaml"; "use_stubs"] & S[A"-cclib"; A("-L" ^ dir ^ "/lib")]
-             in
-             begin
-               match search_header "ev.h", search_header "pthread.h" with
-                 | None, None -> ()
-                 | Some path, None | None, Some path -> flags path
-                 | Some path1, Some path2 when path1 = path2 -> flags path1
-                 | Some path1, Some path2 -> flags path1; flags path2
-             end
-
-         | _ ->
-             ())
-

File lwt/lwt-2.3.2/setup.ml

-(*
- * setup.ml
- * --------
- * Copyright : (c) 2011, Jeremie Dimino <jeremie@dimino.org>
- * Licence   : BSD3
- *
- * This file is a part of lwt.
- *)
-
-(* OASIS_START *)
-(* DO NOT EDIT (digest: 0380406e752be2bc1a122e2fbed5595d) *)
-(*
-   Regenerated by OASIS v0.3.0
-   Visit http://oasis.forge.ocamlcore.org for more information and
-   documentation about functions used in this file.
-*)
-module OASISGettext = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISGettext.ml"
-
-  let ns_ str =
-    str
-
-  let s_ str =
-    str
-
-  let f_ (str : ('a, 'b, 'c, 'd) format4) =
-    str
-
-  let fn_ fmt1 fmt2 n =
-    if n = 1 then
-      fmt1^^""
-    else
-      fmt2^^""
-
-  let init =
-    []
-
-end
-
-module OASISContext = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISContext.ml"
-
-  open OASISGettext
-
-  type level =
-    [ `Debug
-    | `Info
-    | `Warning
-    | `Error]
-
-  type t =
-    {
-      quiet:                 bool;
-      info:                  bool;
-      debug:                 bool;
-      ignore_plugins:        bool;
-      ignore_unknown_fields: bool;
-      printf:                level -> string -> unit;
-    }
-
-  let printf lvl str =
-    let beg =
-      match lvl with
-        | `Error -> s_ "E: "
-        | `Warning -> s_ "W: "
-        | `Info  -> s_ "I: "
-        | `Debug -> s_ "D: "
-    in
-      prerr_endline (beg^str)
-
-  let default =
-    ref
-      {
-        quiet                 = false;
-        info                  = false;
-        debug                 = false;
-        ignore_plugins        = false;
-        ignore_unknown_fields = false;
-        printf                = printf;
-      }
-
-  let quiet =
-    {!default with quiet = true}
-
-
-  let args () =
-    ["-quiet",
-     Arg.Unit (fun () -> default := {!default with quiet = true}),
-     (s_ " Run quietly");
-
-     "-info",
-     Arg.Unit (fun () -> default := {!default with info = true}),
-     (s_ " Display information message");
-
-
-     "-debug",
-     Arg.Unit (fun () -> default := {!default with debug = true}),
-     (s_ " Output debug message")]
-end
-
-module OASISString = struct
-# 1 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISString.ml"
-
-
-
-  (** Various string utilities.
-     
-      Mostly inspired by extlib and batteries ExtString and BatString libraries.
-
-      @author Sylvain Le Gall
-    *)
-
-  let nsplitf str f =
-    if str = "" then
-      []
-    else
-      let buf = Buffer.create 13 in
-      let lst = ref [] in
-      let push () =
-        lst := Buffer.contents buf :: !lst;
-        Buffer.clear buf
-      in
-      let str_len = String.length str in
-        for i = 0 to str_len - 1 do
-          if f str.[i] then
-            push ()
-          else
-            Buffer.add_char buf str.[i]
-        done;
-        push ();
-        List.rev !lst
-
-  (** [nsplit c s] Split the string [s] at char [c]. It doesn't include the
-      separator.
-    *)
-  let nsplit str c =
-    nsplitf str ((=) c)
-
-  let find ~what ?(offset=0) str =
-    let what_idx = ref 0 in
-    let str_idx = ref offset in 
-      while !str_idx < String.length str && 
-            !what_idx < String.length what do
-        if str.[!str_idx] = what.[!what_idx] then
-          incr what_idx
-        else
-          what_idx := 0;
-        incr str_idx
-      done;
-      if !what_idx <> String.length what then
-        raise Not_found
-      else 
-        !str_idx - !what_idx
-
-  let sub_start str len = 
-    let str_len = String.length str in
-    if len >= str_len then
-      ""
-    else
-      String.sub str len (str_len - len)
-
-  let sub_end ?(offset=0) str len =
-    let str_len = String.length str in
-    if len >= str_len then
-      ""
-    else
-      String.sub str 0 (str_len - len)
-
-  let starts_with ~what ?(offset=0) str =
-    let what_idx = ref 0 in
-    let str_idx = ref offset in
-    let ok = ref true in
-      while !ok &&
-            !str_idx < String.length str && 
-            !what_idx < String.length what do
-        if str.[!str_idx] = what.[!what_idx] then
-          incr what_idx
-        else
-          ok := false;
-        incr str_idx
-      done;
-      if !what_idx = String.length what then
-        true
-      else 
-        false
-
-  let strip_starts_with ~what str =
-    if starts_with ~what str then
-      sub_start str (String.length what)
-    else
-      raise Not_found
-
-  let ends_with ~what ?(offset=0) str =
-    let what_idx = ref ((String.length what) - 1) in
-    let str_idx = ref ((String.length str) - 1) in
-    let ok = ref true in
-      while !ok &&
-            offset <= !str_idx && 
-            0 <= !what_idx do
-        if str.[!str_idx] = what.[!what_idx] then
-          decr what_idx
-        else
-          ok := false;
-        decr str_idx
-      done;
-      if !what_idx = -1 then
-        true
-      else 
-        false
-
-  let strip_ends_with ~what str =
-    if ends_with ~what str then
-      sub_end str (String.length what)
-    else
-      raise Not_found
-
-  let replace_chars f s =
-    let buf = String.make (String.length s) 'X' in
-      for i = 0 to String.length s - 1 do
-        buf.[i] <- f s.[i]
-      done;
-      buf
-
-end
-
-module OASISUtils = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISUtils.ml"
-
-  open OASISGettext
-
-  module MapString = Map.Make(String)
-
-  let map_string_of_assoc assoc =
-    List.fold_left
-      (fun acc (k, v) -> MapString.add k v acc)
-      MapString.empty
-      assoc
-
-  module SetString = Set.Make(String)
-
-  let set_string_add_list st lst =
-    List.fold_left
-      (fun acc e -> SetString.add e acc)
-      st
-      lst
-
-  let set_string_of_list =
-    set_string_add_list
-      SetString.empty
-
-
-  let compare_csl s1 s2 =
-    String.compare (String.lowercase s1) (String.lowercase s2)
-
-  module HashStringCsl =
-    Hashtbl.Make
-      (struct
-         type t = string
-
-         let equal s1 s2 =
-             (String.lowercase s1) = (String.lowercase s2)
-
-         let hash s =
-           Hashtbl.hash (String.lowercase s)
-       end)
-
-  let varname_of_string ?(hyphen='_') s =
-    if String.length s = 0 then
-      begin
-        invalid_arg "varname_of_string"
-      end
-    else
-      begin
-        let buf =
-          OASISString.replace_chars
-            (fun c ->
-               if ('a' <= c && c <= 'z')
-                 ||
-                  ('A' <= c && c <= 'Z')
-                 ||
-                  ('0' <= c && c <= '9') then
-                 c
-               else
-                 hyphen)
-            s;
-        in
-        let buf =
-          (* Start with a _ if digit *)
-          if '0' <= s.[0] && s.[0] <= '9' then
-            "_"^buf
-          else
-            buf
-        in
-          String.lowercase buf
-      end
-
-  let varname_concat ?(hyphen='_') p s =
-    let what = String.make 1 hyphen in
-    let p =
-      try
-        OASISString.strip_ends_with ~what p
-      with Not_found ->
-        p
-    in
-    let s =
-      try
-        OASISString.strip_starts_with ~what s
-      with Not_found ->
-        s
-    in
-      p^what^s
-
-
-  let is_varname str =
-    str = varname_of_string str
-
-  let failwithf fmt = Printf.ksprintf failwith fmt
-
-end
-
-module PropList = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/PropList.ml"
-
-  open OASISGettext
-
-  type name = string
-
-  exception Not_set of name * string option
-  exception No_printer of name
-  exception Unknown_field of name * name
-
-  let () =
-    Printexc.register_printer
-      (function
-         | Not_set (nm, Some rsn) ->
-             Some 
-               (Printf.sprintf (f_ "Field '%s' is not set: %s") nm rsn)
-         | Not_set (nm, None) ->
-             Some 
-               (Printf.sprintf (f_ "Field '%s' is not set") nm)
-         | No_printer nm ->
-             Some
-               (Printf.sprintf (f_ "No default printer for value %s") nm)
-         | Unknown_field (nm, schm) ->
-             Some 
-               (Printf.sprintf (f_ "Field %s is not defined in schema %s") nm schm)
-         | _ ->
-             None)
-
-  module Data =
-  struct
-
-    type t =
-        (name, unit -> unit) Hashtbl.t
-
-    let create () =
-      Hashtbl.create 13
-
-    let clear t =
-      Hashtbl.clear t
-
-# 71 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/PropList.ml"
-  end
-
-  module Schema =
-  struct
-
-    type ('ctxt, 'extra) value =
-        {
-          get:   Data.t -> string;
-          set:   Data.t -> ?context:'ctxt -> string -> unit;
-          help:  (unit -> string) option;
-          extra: 'extra;
-        }
-
-    type ('ctxt, 'extra) t =
-        {
-          name:      name;
-          fields:    (name, ('ctxt, 'extra) value) Hashtbl.t;
-          order:     name Queue.t;
-          name_norm: string -> string;
-        }
-
-    let create ?(case_insensitive=false) nm =
-      {
-        name      = nm;
-        fields    = Hashtbl.create 13;
-        order     = Queue.create ();
-        name_norm =
-          (if case_insensitive then
-             String.lowercase
-           else
-             fun s -> s);
-      }
-
-    let add t nm set get extra help =
-      let key =
-        t.name_norm nm
-      in
-
-        if Hashtbl.mem t.fields key then
-          failwith
-            (Printf.sprintf
-               (f_ "Field '%s' is already defined in schema '%s'")
-               nm t.name);
-        Hashtbl.add
-          t.fields
-          key
-          {
-            set   = set;
-            get   = get;
-            help  = help;
-            extra = extra;
-          };
-        Queue.add nm t.order
-
-    let mem t nm =
-      Hashtbl.mem t.fields nm
-
-    let find t nm =
-      try
-        Hashtbl.find t.fields (t.name_norm nm)
-      with Not_found ->
-        raise (Unknown_field (nm, t.name))
-
-    let get t data nm =
-      (find t nm).get data
-
-    let set t data nm ?context x =
-      (find t nm).set
-        data
-        ?context
-        x
-
-    let fold f acc t =
-      Queue.fold
-        (fun acc k ->
-           let v =
-             find t k
-           in
-             f acc k v.extra v.help)
-        acc
-        t.order
-
-    let iter f t =
-      fold
-        (fun () -> f)
-        ()
-        t
-
-    let name t =
-      t.name
-  end
-
-  module Field =
-  struct
-
-    type ('ctxt, 'value, 'extra) t =
-        {
-          set:    Data.t -> ?context:'ctxt -> 'value -> unit;
-          get:    Data.t -> 'value;
-          sets:   Data.t -> ?context:'ctxt -> string -> unit;
-          gets:   Data.t -> string;
-          help:   (unit -> string) option;
-          extra:  'extra;
-        }
-
-    let new_id =
-      let last_id =
-        ref 0
-      in
-        fun () -> incr last_id; !last_id
-
-    let create ?schema ?name ?parse ?print ?default ?update ?help extra =
-      (* Default value container *)
-      let v =
-        ref None
-      in
-
-      (* If name is not given, create unique one *)
-      let nm =
-        match name with
-          | Some s -> s
-          | None -> Printf.sprintf "_anon_%d" (new_id ())
-      in
-
-      (* Last chance to get a value: the default *)
-      let default () =
-        match default with
-          | Some d -> d
-          | None -> raise (Not_set (nm, Some (s_ "no default value")))
-      in
-
-      (* Get data *)
-      let get data =
-        (* Get value *)
-        try
-          (Hashtbl.find data nm) ();
-          match !v with
-            | Some x -> x
-            | None -> default ()
-        with Not_found ->
-          default ()
-      in
-
-      (* Set data *)
-      let set data ?context x =
-        let x =
-          match update with
-            | Some f ->
-                begin
-                  try
-                    f ?context (get data) x
-                  with Not_set _ ->
-                    x
-                end
-            | None ->
-                x
-        in
-          Hashtbl.replace
-            data
-            nm
-            (fun () -> v := Some x)
-      in
-
-      (* Parse string value, if possible *)
-      let parse =
-        match parse with
-          | Some f ->
-              f
-          | None ->
-              fun ?context s ->
-                failwith
-                  (Printf.sprintf
-                     (f_ "Cannot parse field '%s' when setting value %S")
-                     nm
-                     s)
-      in
-
-      (* Set data, from string *)
-      let sets data ?context s =
-        set ?context data (parse ?context s)
-      in
-
-      (* Output value as string, if possible *)
-      let print =
-        match print with
-          | Some f ->
-              f
-          | None ->
-              fun _ -> raise (No_printer nm)
-      in
-
-      (* Get data, as a string *)
-      let gets data =
-        print (get data)
-      in
-
-        begin
-          match schema with
-            | Some t ->
-                Schema.add t nm sets gets extra help
-            | None ->
-                ()
-        end;
-
-        {
-          set   = set;
-          get   = get;
-          sets  = sets;
-          gets  = gets;
-          help  = help;
-          extra = extra;
-        }
-
-    let fset data t ?context x =
-      t.set data ?context x
-
-    let fget data t =
-      t.get data
-
-    let fsets data t ?context s =
-      t.sets data ?context s
-
-    let fgets data t =
-      t.gets data
-
-  end
-
-  module FieldRO =
-  struct
-
-    let create ?schema ?name ?parse ?print ?default ?update ?help extra =
-      let fld =
-        Field.create ?schema ?name ?parse ?print ?default ?update ?help extra
-      in
-        fun data -> Field.fget data fld
-
-  end
-end
-
-module OASISMessage = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISMessage.ml"
-
-
-  open OASISGettext
-  open OASISContext
-
-  let generic_message ~ctxt lvl fmt =
-    let cond =
-      if ctxt.quiet then
-        false
-      else
-        match lvl with
-          | `Debug -> ctxt.debug
-          | `Info  -> ctxt.info
-          | _ -> true
-    in
-      Printf.ksprintf
-        (fun str ->
-           if cond then
-             begin
-               ctxt.printf lvl str
-             end)
-        fmt
-
-  let debug ~ctxt fmt =
-    generic_message ~ctxt `Debug fmt
-
-  let info ~ctxt fmt =
-    generic_message ~ctxt `Info fmt
-
-  let warning ~ctxt fmt =
-    generic_message ~ctxt `Warning fmt
-
-  let error ~ctxt fmt =
-    generic_message ~ctxt `Error fmt
-
-end
-
-module OASISVersion = struct
-# 21 "/home/jun/.share/projects/externals/oasis/_build/src/oasis/OASISVersion.ml"
-
-  open OASISGettext
-
-
-
-  type s = string
-
-  type t = string 
-
-  type comparator =
-    | VGreater of t
-    | VGreaterEqual of t
-    | VEqual of t
-    | VLesser of t
-    | VLesserEqual of t
-    | VOr of  comparator * comparator
-    | VAnd of comparator * comparator
-    
-
-  (* Range of allowed characters *)
-  let is_digit c =
-    '0' <= c && c <= '9'
-
-  let is_alpha c =
-    ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')
-
-  let is_special =
-    function
-      | '.' | '+' | '-' | '~' -> true
-      | _ -> false
-
-  let rec version_compare v1 v2 =
-    if v1 <> "" || v2 <> "" then
-      begin
-        (* Compare ascii string, using special meaning for version
-         * related char
-         *)
-        let val_ascii c =