Repository: thrift
Updated Branches:
  refs/heads/master ab8ff1abf -> b28160b9c


THRIFT-2364: use oasis to build thrift for ocaml
Client: OCaml
Patch: Spiros Eliopoulos <selio...@gmail.com>

This closes #1193


Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/b28160b9
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/b28160b9
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/b28160b9

Branch: refs/heads/master
Commit: b28160b9c38b7febc3843cf69c6abc12c4d79df5
Parents: ab8ff1a
Author: James E. King, III <jk...@apache.org>
Authored: Wed Feb 15 14:23:44 2017 -0500
Committer: James E. King, III <jk...@apache.org>
Committed: Wed Feb 15 14:23:44 2017 -0500

----------------------------------------------------------------------
 lib/ocaml/.gitignore           |   11 +
 lib/ocaml/DEVELOPMENT          |   76 +++
 lib/ocaml/Makefile             |   23 -
 lib/ocaml/OCamlMakefile        | 1231 -----------------------------------
 lib/ocaml/README-OCamlMakefile |  643 ------------------
 lib/ocaml/descr                |    1 +
 lib/ocaml/opam                 |    8 +
 lib/ocaml/url                  |    2 +
 8 files changed, 98 insertions(+), 1897 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/.gitignore
----------------------------------------------------------------------
diff --git a/lib/ocaml/.gitignore b/lib/ocaml/.gitignore
new file mode 100644
index 0000000..0d9a6af
--- /dev/null
+++ b/lib/ocaml/.gitignore
@@ -0,0 +1,11 @@
+_build/
+_tags
+configure
+setup.data
+setup.ml
+myocamlbuild.ml
+*/META
+*/*.mllib
+*/*.mldylib
+Makefile
+OCamlMakefile

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/DEVELOPMENT
----------------------------------------------------------------------
diff --git a/lib/ocaml/DEVELOPMENT b/lib/ocaml/DEVELOPMENT
new file mode 100644
index 0000000..3d5a03c
--- /dev/null
+++ b/lib/ocaml/DEVELOPMENT
@@ -0,0 +1,76 @@
+Thrift OCaml Development
+========================
+
+Prerequisites
+-------------
+
+In order to build this library, you must have the following installed:
+
+  * The OCaml compiler, preferably >4.00
+  * The Oasis build tool
+
+In addition you may want to install OPAM, which will allow you to setup an
+OCaml development environment that's isolated from your system installation,
+much like virutalenv for Python or the myriad systems available for Ruby. If
+you have OPAM installed, then installing Oasis is as simple as running:
+
+  $ opam install oasis
+
+Building
+--------
+
+Once all the prerequisites have been installed, run the following commands:
+
+  $ oasis setup
+  $ ./configure
+  $ make
+
+The `oasis setup` command will generate the configure script and Makefile,
+along with other files that opam will use to create an installable library.
+The cofigure script will ensure that all build dependencies are installed, and
+make will actually build the library.
+
+To remove files that the compiler geneates, run:
+
+  $ make clean
+
+To remove those files _as well as_ files that the setup and configure process
+generates, run:
+
+  $ rm `cat .gitignore`
+
+Installing
+----------
+
+If you're using opam, simply run the following command:
+
+  $ make install
+
+While development, you may want to install your latest build on the system to
+test against other libraries or programs. To do this, use:
+
+  $ make reinstall
+
+Distribution
+------------
+
+The de facto preferred method for distributing OCaml libraries is through the
+OPAM package repository. To publish the latest package, issue a pull request
+against the following github repository:
+
+  https://github.com/ocaml/opam-repository
+
+The pull requestion should add the following directory structure and files:
+
+  package
+    |__thrift
+       |__thrift.<VERSION>
+          |__ descr
+          |__ opam
+          |__ url
+
+Templates for the following files can be found in the opam/ subdirectory of
+this library's root, with XXX(...) indicating fields that need to be filled
+out. You can find further documentation here:
+
+  http://opam.ocaml.org/doc/Packaging.html

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/Makefile
----------------------------------------------------------------------
diff --git a/lib/ocaml/Makefile b/lib/ocaml/Makefile
deleted file mode 100644
index 6abeee7..0000000
--- a/lib/ocaml/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-all:
-       cd src; make; cd ..
-clean:
-       cd src; make clean; cd ..

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/OCamlMakefile
----------------------------------------------------------------------
diff --git a/lib/ocaml/OCamlMakefile b/lib/ocaml/OCamlMakefile
deleted file mode 100644
index b0b9252..0000000
--- a/lib/ocaml/OCamlMakefile
+++ /dev/null
@@ -1,1231 +0,0 @@
-###########################################################################
-#                              OCamlMakefile
-#                  Copyright (C) 1999-2007  Markus Mottl
-#
-#                             For updates see:
-#                http://www.ocaml.info/home/ocaml_sources.html
-#
-###########################################################################
-
-# Modified by damien for .glade.ml compilation
-
-# Set these variables to the names of the sources to be processed and
-# the result variable. Order matters during linkage!
-
-ifndef SOURCES
-  SOURCES := foo.ml
-endif
-export SOURCES
-
-ifndef RES_CLIB_SUF
-  RES_CLIB_SUF := _stubs
-endif
-export RES_CLIB_SUF
-
-ifndef RESULT
-  RESULT := foo
-endif
-export RESULT := $(strip $(RESULT))
-
-export LIB_PACK_NAME
-
-ifndef DOC_FILES
-  DOC_FILES := $(filter %.mli, $(SOURCES))
-endif
-export DOC_FILES
-FIRST_DOC_FILE := $(firstword $(DOC_FILES))
-
-export BCSUFFIX
-export NCSUFFIX
-
-ifndef TOPSUFFIX
-  TOPSUFFIX := .top
-endif
-export TOPSUFFIX
-
-# Eventually set include- and library-paths, libraries to link,
-# additional compilation-, link- and ocamlyacc-flags
-# Path- and library information needs not be written with "-I" and such...
-# Define THREADS if you need it, otherwise leave it unset (same for
-# USE_CAMLP4)!
-
-export THREADS
-export VMTHREADS
-export ANNOTATE
-export USE_CAMLP4
-
-export INCDIRS
-export LIBDIRS
-export EXTLIBDIRS
-export RESULTDEPS
-export OCAML_DEFAULT_DIRS
-
-export LIBS
-export CLIBS
-export CFRAMEWORKS
-
-export OCAMLFLAGS
-export OCAMLNCFLAGS
-export OCAMLBCFLAGS
-
-export OCAMLLDFLAGS
-export OCAMLNLDFLAGS
-export OCAMLBLDFLAGS
-
-export OCAMLMKLIB_FLAGS
-
-ifndef OCAMLCPFLAGS
-  OCAMLCPFLAGS := a
-endif
-export OCAMLCPFLAGS
-
-ifndef DOC_DIR
-  DOC_DIR := doc
-endif
-export DOC_DIR
-
-export PPFLAGS
-
-export LFLAGS
-export YFLAGS
-export IDLFLAGS
-
-export OCAMLDOCFLAGS
-
-export OCAMLFIND_INSTFLAGS
-
-export DVIPSFLAGS
-
-export STATIC
-
-# Add a list of optional trash files that should be deleted by "make clean"
-export TRASH
-
-ECHO := echo
-
-ifdef REALLY_QUIET
-  export REALLY_QUIET
-  ECHO := true
-  LFLAGS := $(LFLAGS) -q
-  YFLAGS := $(YFLAGS) -q
-endif
-
-####################  variables depending on your OCaml-installation
-
-ifdef MINGW
-  export MINGW
-  WIN32   := 1
-  CFLAGS_WIN32 := -mno-cygwin
-endif
-ifdef MSVC
-  export MSVC
-  WIN32   := 1
-  ifndef STATIC
-    CPPFLAGS_WIN32 := -DCAML_DLL
-  endif
-  CFLAGS_WIN32 += -nologo
-  EXT_OBJ := obj
-  EXT_LIB := lib
-  ifeq ($(CC),gcc)
-    # work around GNU Make default value
-    ifdef THREADS
-      CC := cl -MT
-    else
-      CC := cl
-    endif
-  endif
-  ifeq ($(CXX),g++)
-    # work around GNU Make default value
-    CXX := $(CC)
-  endif
-  CFLAG_O := -Fo
-endif
-ifdef WIN32
-  EXT_CXX := cpp
-  EXE     := .exe
-endif
-
-ifndef EXT_OBJ
-  EXT_OBJ := o
-endif
-ifndef EXT_LIB
-  EXT_LIB := a
-endif
-ifndef EXT_CXX
-  EXT_CXX := cc
-endif
-ifndef EXE
-  EXE := # empty
-endif
-ifndef CFLAG_O
-  CFLAG_O := -o # do not delete this comment (preserves trailing whitespace)!
-endif
-
-export CC
-export CXX
-export CFLAGS
-export CXXFLAGS
-export LDFLAGS
-export CPPFLAGS
-
-ifndef RPATH_FLAG
-  ifdef ELF_RPATH_FLAG
-    RPATH_FLAG := $(ELF_RPATH_FLAG)
-  else
-    RPATH_FLAG := -R
-  endif
-endif
-export RPATH_FLAG
-
-ifndef MSVC
-ifndef PIC_CFLAGS
-  PIC_CFLAGS := -fPIC
-endif
-ifndef PIC_CPPFLAGS
-  PIC_CPPFLAGS := -DPIC
-endif
-endif
-
-export PIC_CFLAGS
-export PIC_CPPFLAGS
-
-BCRESULT  := $(addsuffix $(BCSUFFIX), $(RESULT))
-NCRESULT  := $(addsuffix $(NCSUFFIX), $(RESULT))
-TOPRESULT := $(addsuffix $(TOPSUFFIX), $(RESULT))
-
-ifndef OCAMLFIND
-  OCAMLFIND := ocamlfind
-endif
-export OCAMLFIND
-
-ifndef OCAMLC
-  OCAMLC := ocamlc
-endif
-export OCAMLC
-
-ifndef OCAMLOPT
-  OCAMLOPT := ocamlopt
-endif
-export OCAMLOPT
-
-ifndef OCAMLMKTOP
-  OCAMLMKTOP := ocamlmktop
-endif
-export OCAMLMKTOP
-
-ifndef OCAMLCP
-  OCAMLCP := ocamlcp
-endif
-export OCAMLCP
-
-ifndef OCAMLDEP
-  OCAMLDEP := ocamldep
-endif
-export OCAMLDEP
-
-ifndef OCAMLLEX
-  OCAMLLEX := ocamllex
-endif
-export OCAMLLEX
-
-ifndef OCAMLYACC
-  OCAMLYACC := ocamlyacc
-endif
-export OCAMLYACC
-
-ifndef OCAMLMKLIB
-  OCAMLMKLIB := ocamlmklib
-endif
-export OCAMLMKLIB
-
-ifndef OCAML_GLADECC
-  OCAML_GLADECC := lablgladecc2
-endif
-export OCAML_GLADECC
-
-ifndef OCAML_GLADECC_FLAGS
-  OCAML_GLADECC_FLAGS :=
-endif
-export OCAML_GLADECC_FLAGS
-
-ifndef CAMELEON_REPORT
-  CAMELEON_REPORT := report
-endif
-export CAMELEON_REPORT
-
-ifndef CAMELEON_REPORT_FLAGS
-  CAMELEON_REPORT_FLAGS :=
-endif
-export CAMELEON_REPORT_FLAGS
-
-ifndef CAMELEON_ZOGGY
-  CAMELEON_ZOGGY := camlp4o pa_zog.cma pr_o.cmo
-endif
-export CAMELEON_ZOGGY
-
-ifndef CAMELEON_ZOGGY_FLAGS
-  CAMELEON_ZOGGY_FLAGS :=
-endif
-export CAMELEON_ZOGGY_FLAGS
-
-ifndef OXRIDL
-  OXRIDL := oxridl
-endif
-export OXRIDL
-
-ifndef CAMLIDL
-  CAMLIDL := camlidl
-endif
-export CAMLIDL
-
-ifndef CAMLIDLDLL
-  CAMLIDLDLL := camlidldll
-endif
-export CAMLIDLDLL
-
-ifndef NOIDLHEADER
-  MAYBE_IDL_HEADER := -header
-endif
-export NOIDLHEADER
-
-export NO_CUSTOM
-
-ifndef CAMLP4
-  CAMLP4 := camlp4
-endif
-export CAMLP4
-
-ifndef REAL_OCAMLFIND
-  ifdef PACKS
-    ifndef CREATE_LIB
-      ifdef THREADS
-       PACKS += threads
-      endif
-    endif
-    empty :=
-    space := $(empty) $(empty)
-    comma := ,
-    ifdef PREDS
-      PRE_OCAML_FIND_PREDICATES := $(subst $(space),$(comma),$(PREDS))
-      PRE_OCAML_FIND_PACKAGES := $(subst $(space),$(comma),$(PACKS))
-      OCAML_FIND_PREDICATES := -predicates $(PRE_OCAML_FIND_PREDICATES)
-  #    OCAML_DEP_PREDICATES := -syntax $(PRE_OCAML_FIND_PREDICATES)
-      OCAML_FIND_PACKAGES := $(OCAML_FIND_PREDICATES) -package 
$(PRE_OCAML_FIND_PACKAGES)
-      OCAML_DEP_PACKAGES := $(OCAML_DEP_PREDICATES) -package 
$(PRE_OCAML_FIND_PACKAGES)
-    else
-      OCAML_FIND_PACKAGES := -package $(subst $(space),$(comma),$(PACKS))
-      OCAML_DEP_PACKAGES :=
-    endif
-    OCAML_FIND_LINKPKG := -linkpkg
-    REAL_OCAMLFIND := $(OCAMLFIND)
-  endif
-endif
-
-export OCAML_FIND_PACKAGES
-export OCAML_DEP_PACKAGES
-export OCAML_FIND_LINKPKG
-export REAL_OCAMLFIND
-
-ifndef OCAMLDOC
-  OCAMLDOC := ocamldoc
-endif
-export OCAMLDOC
-
-ifndef LATEX
-  LATEX := latex
-endif
-export LATEX
-
-ifndef DVIPS
-  DVIPS := dvips
-endif
-export DVIPS
-
-ifndef PS2PDF
-  PS2PDF := ps2pdf
-endif
-export PS2PDF
-
-ifndef OCAMLMAKEFILE
-  OCAMLMAKEFILE := OCamlMakefile
-endif
-export OCAMLMAKEFILE
-
-ifndef OCAMLLIBPATH
-  OCAMLLIBPATH := \
-    $(shell $(OCAMLC) 2>/dev/null -where || echo /usr/local/lib/ocaml)
-endif
-export OCAMLLIBPATH
-
-ifndef OCAML_LIB_INSTALL
-  OCAML_LIB_INSTALL := $(OCAMLLIBPATH)/contrib
-endif
-export OCAML_LIB_INSTALL
-
-###########################################################################
-
-####################  change following sections only if
-####################    you know what you are doing!
-
-# delete target files when a build command fails
-.PHONY: .DELETE_ON_ERROR
-.DELETE_ON_ERROR:
-
-# for pedants using "--warn-undefined-variables"
-export MAYBE_IDL
-export REAL_RESULT
-export CAMLIDLFLAGS
-export THREAD_FLAG
-export RES_CLIB
-export MAKEDLL
-export ANNOT_FLAG
-export C_OXRIDL
-export SUBPROJS
-export CFLAGS_WIN32
-export CPPFLAGS_WIN32
-
-INCFLAGS :=
-
-SHELL := /bin/sh
-
-MLDEPDIR := ._d
-BCDIDIR  := ._bcdi
-NCDIDIR  := ._ncdi
-
-FILTER_EXTNS := %.mli %.ml %.mll %.mly %.idl %.oxridl %.c %.m %.$(EXT_CXX) 
%.rep %.zog %.glade
-
-FILTERED     := $(filter $(FILTER_EXTNS), $(SOURCES))
-SOURCE_DIRS  := $(filter-out ./, $(sort $(dir $(FILTERED))))
-
-FILTERED_REP := $(filter %.rep, $(FILTERED))
-DEP_REP      := $(FILTERED_REP:%.rep=$(MLDEPDIR)/%.d)
-AUTO_REP     := $(FILTERED_REP:.rep=.ml)
-
-FILTERED_ZOG := $(filter %.zog, $(FILTERED))
-DEP_ZOG      := $(FILTERED_ZOG:%.zog=$(MLDEPDIR)/%.d)
-AUTO_ZOG     := $(FILTERED_ZOG:.zog=.ml)
-
-FILTERED_GLADE := $(filter %.glade, $(FILTERED))
-DEP_GLADE      := $(FILTERED_GLADE:%.glade=$(MLDEPDIR)/%.d)
-AUTO_GLADE     := $(FILTERED_GLADE:.glade=.ml)
-
-FILTERED_ML  := $(filter %.ml, $(FILTERED))
-DEP_ML       := $(FILTERED_ML:%.ml=$(MLDEPDIR)/%.d)
-
-FILTERED_MLI := $(filter %.mli, $(FILTERED))
-DEP_MLI      := $(FILTERED_MLI:.mli=.di)
-
-FILTERED_MLL := $(filter %.mll, $(FILTERED))
-DEP_MLL      := $(FILTERED_MLL:%.mll=$(MLDEPDIR)/%.d)
-AUTO_MLL     := $(FILTERED_MLL:.mll=.ml)
-
-FILTERED_MLY := $(filter %.mly, $(FILTERED))
-DEP_MLY      := $(FILTERED_MLY:%.mly=$(MLDEPDIR)/%.d) $(FILTERED_MLY:.mly=.di)
-AUTO_MLY     := $(FILTERED_MLY:.mly=.mli) $(FILTERED_MLY:.mly=.ml)
-
-FILTERED_IDL := $(filter %.idl, $(FILTERED))
-DEP_IDL      := $(FILTERED_IDL:%.idl=$(MLDEPDIR)/%.d) $(FILTERED_IDL:.idl=.di)
-C_IDL        := $(FILTERED_IDL:%.idl=%_stubs.c)
-ifndef NOIDLHEADER
- C_IDL += $(FILTERED_IDL:.idl=.h)
-endif
-OBJ_C_IDL    := $(FILTERED_IDL:%.idl=%_stubs.$(EXT_OBJ))
-AUTO_IDL     := $(FILTERED_IDL:.idl=.mli) $(FILTERED_IDL:.idl=.ml) $(C_IDL)
-
-FILTERED_OXRIDL := $(filter %.oxridl, $(FILTERED))
-DEP_OXRIDL      := $(FILTERED_OXRIDL:%.oxridl=$(MLDEPDIR)/%.d) 
$(FILTERED_OXRIDL:.oxridl=.di)
-AUTO_OXRIDL     := $(FILTERED_OXRIDL:.oxridl=.mli) 
$(FILTERED_OXRIDL:.oxridl=.ml) $(C_OXRIDL)
-
-FILTERED_C_CXX := $(filter %.c %.m %.$(EXT_CXX), $(FILTERED))
-OBJ_C_CXX      := $(FILTERED_C_CXX:.c=.$(EXT_OBJ))
-OBJ_C_CXX      := $(OBJ_C_CXX:.m=.$(EXT_OBJ))
-OBJ_C_CXX      := $(OBJ_C_CXX:.$(EXT_CXX)=.$(EXT_OBJ))
-
-PRE_TARGETS  += $(AUTO_MLL) $(AUTO_MLY) $(AUTO_IDL) $(AUTO_OXRIDL) $(AUTO_ZOG) 
$(AUTO_REP) $(AUTO_GLADE)
-
-ALL_DEPS     := $(DEP_ML) $(DEP_MLI) $(DEP_MLL) $(DEP_MLY) $(DEP_IDL) 
$(DEP_OXRIDL) $(DEP_ZOG) $(DEP_REP) $(DEP_GLADE)
-
-MLDEPS       := $(filter %.d, $(ALL_DEPS))
-MLIDEPS      := $(filter %.di, $(ALL_DEPS))
-BCDEPIS      := $(MLIDEPS:%.di=$(BCDIDIR)/%.di)
-NCDEPIS      := $(MLIDEPS:%.di=$(NCDIDIR)/%.di)
-
-ALLML        := $(filter %.mli %.ml %.mll %.mly %.idl %.oxridl %.rep %.zog 
%.glade, $(FILTERED))
-
-IMPLO_INTF   := $(ALLML:%.mli=%.mli.__)
-IMPLO_INTF   := $(foreach file, $(IMPLO_INTF), \
-                  $(basename $(file)).cmi $(basename $(file)).cmo)
-IMPLO_INTF   := $(filter-out %.mli.cmo, $(IMPLO_INTF))
-IMPLO_INTF   := $(IMPLO_INTF:%.mli.cmi=%.cmi)
-
-IMPLX_INTF   := $(IMPLO_INTF:.cmo=.cmx)
-
-INTF         := $(filter %.cmi, $(IMPLO_INTF))
-IMPL_CMO     := $(filter %.cmo, $(IMPLO_INTF))
-IMPL_CMX     := $(IMPL_CMO:.cmo=.cmx)
-IMPL_ASM     := $(IMPL_CMO:.cmo=.asm)
-IMPL_S       := $(IMPL_CMO:.cmo=.s)
-
-OBJ_LINK     := $(OBJ_C_IDL) $(OBJ_C_CXX)
-OBJ_FILES    := $(IMPL_CMO:.cmo=.$(EXT_OBJ)) $(OBJ_LINK)
-
-EXECS        := $(addsuffix $(EXE), \
-                            $(sort $(TOPRESULT) $(BCRESULT) $(NCRESULT)))
-ifdef WIN32
-  EXECS      += $(BCRESULT).dll $(NCRESULT).dll
-endif
-
-CLIB_BASE    := $(RESULT)$(RES_CLIB_SUF)
-ifneq ($(strip $(OBJ_LINK)),)
-  RES_CLIB     := lib$(CLIB_BASE).$(EXT_LIB)
-endif
-
-ifdef WIN32
-DLLSONAME := $(CLIB_BASE).dll
-else
-DLLSONAME := dll$(CLIB_BASE).so
-endif
-
-NONEXECS     := $(INTF) $(IMPL_CMO) $(IMPL_CMX) $(IMPL_ASM) $(IMPL_S) \
-               $(OBJ_FILES) $(PRE_TARGETS) $(BCRESULT).cma $(NCRESULT).cmxa \
-               $(NCRESULT).$(EXT_LIB) $(BCRESULT).cmi $(BCRESULT).cmo \
-               $(NCRESULT).cmi $(NCRESULT).cmx $(NCRESULT).o \
-               $(RES_CLIB) $(IMPL_CMO:.cmo=.annot) \
-               $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(LIB_PACK_NAME).cmx 
$(LIB_PACK_NAME).o
-
-ifndef STATIC
-  NONEXECS += $(DLLSONAME)
-endif
-
-ifndef LIBINSTALL_FILES
-  LIBINSTALL_FILES := $(RESULT).mli $(RESULT).cmi $(RESULT).cma \
-                     $(RESULT).cmxa $(RESULT).$(EXT_LIB) $(RES_CLIB)
-  ifndef STATIC
-    ifneq ($(strip $(OBJ_LINK)),)
-      LIBINSTALL_FILES += $(DLLSONAME)
-    endif
-  endif
-endif
-
-export LIBINSTALL_FILES
-
-ifdef WIN32
-  # some extra stuff is created while linking DLLs
-  NONEXECS   += $(BCRESULT).$(EXT_LIB) $(BCRESULT).exp $(NCRESULT).exp 
$(CLIB_BASE).exp $(CLIB_BASE).lib
-endif
-
-TARGETS      := $(EXECS) $(NONEXECS)
-
-# If there are IDL-files
-ifneq ($(strip $(FILTERED_IDL)),)
-  MAYBE_IDL := -cclib -lcamlidl
-endif
-
-ifdef USE_CAMLP4
-  CAMLP4PATH := \
-    $(shell $(CAMLP4) -where 2>/dev/null || echo /usr/local/lib/camlp4)
-  INCFLAGS := -I $(CAMLP4PATH)
-  CINCFLAGS := -I$(CAMLP4PATH)
-endif
-
-DINCFLAGS := $(INCFLAGS) $(SOURCE_DIRS:%=-I %) $(OCAML_DEFAULT_DIRS:%=-I %)
-INCFLAGS := $(DINCFLAGS) $(INCDIRS:%=-I %)
-CINCFLAGS += $(SOURCE_DIRS:%=-I%) $(INCDIRS:%=-I%) $(OCAML_DEFAULT_DIRS:%=-I%)
-
-ifndef MSVC
-  CLIBFLAGS += $(SOURCE_DIRS:%=-L%) $(LIBDIRS:%=-L%) \
-               $(EXTLIBDIRS:%=-L%) $(OCAML_DEFAULT_DIRS:%=-L%)
-
-  ifeq ($(ELF_RPATH), yes)
-    CLIBFLAGS += $(EXTLIBDIRS:%=-Wl,$(RPATH_FLAG)%)
-  endif
-endif
-
-ifndef PROFILING
-  INTF_OCAMLC := $(OCAMLC)
-else
-  ifndef THREADS
-    INTF_OCAMLC := $(OCAMLCP) -p $(OCAMLCPFLAGS)
-  else
-    # OCaml does not support profiling byte code
-    # with threads (yet), therefore we force an error.
-    ifndef REAL_OCAMLC
-      $(error Profiling of multithreaded byte code not yet supported by OCaml)
-    endif
-    INTF_OCAMLC := $(OCAMLC)
-  endif
-endif
-
-ifndef MSVC
-  COMMON_LDFLAGS := $(LDFLAGS:%=-ccopt %) $(SOURCE_DIRS:%=-ccopt -L%) \
-                   $(LIBDIRS:%=-ccopt -L%) $(EXTLIBDIRS:%=-ccopt -L%) \
-                   $(EXTLIBDIRS:%=-ccopt -Wl $(OCAML_DEFAULT_DIRS:%=-ccopt 
-L%))
-
-  ifeq ($(ELF_RPATH),yes)
-    COMMON_LDFLAGS += $(EXTLIBDIRS:%=-ccopt -Wl,$(RPATH_FLAG)%)
-  endif
-else
-  COMMON_LDFLAGS := -ccopt "/link -NODEFAULTLIB:LIBC $(LDFLAGS:%=%) 
$(SOURCE_DIRS:%=-LIBPATH:%) \
-                   $(LIBDIRS:%=-LIBPATH:%) $(EXTLIBDIRS:%=-LIBPATH:%) \
-                   $(OCAML_DEFAULT_DIRS:%=-LIBPATH:%) "
-endif
-
-CLIBS_OPTS := $(CLIBS:%=-cclib -l%) $(CFRAMEWORKS:%=-cclib '-framework %')
-ifdef MSVC
-  ifndef STATIC
-  # MSVC libraries do not have 'lib' prefix
-  CLIBS_OPTS := $(CLIBS:%=-cclib %.lib)
-  endif
-endif
-
-ifneq ($(strip $(OBJ_LINK)),)
-  ifdef CREATE_LIB
-    OBJS_LIBS := -cclib -l$(CLIB_BASE) $(CLIBS_OPTS) $(MAYBE_IDL)
-  else
-    OBJS_LIBS := $(OBJ_LINK) $(CLIBS_OPTS) $(MAYBE_IDL)
-  endif
-else
-  OBJS_LIBS := $(CLIBS_OPTS) $(MAYBE_IDL)
-endif
-
-# If we have to make byte-code
-ifndef REAL_OCAMLC
-  BYTE_OCAML := y
-
-  # EXTRADEPS is added dependencies we have to insert for all
-  # executable files we generate.  Ideally it should be all of the
-  # libraries we use, but it's hard to find the ones that get searched on
-  # the path since I don't know the paths built into the compiler, so
-  # just include the ones with slashes in their names.
-  EXTRADEPS := $(addsuffix .cma,$(foreach i,$(LIBS),$(if $(findstring 
/,$(i)),$(i))))
-  SPECIAL_OCAMLFLAGS := $(OCAMLBCFLAGS)
-
-  REAL_OCAMLC := $(INTF_OCAMLC)
-
-  REAL_IMPL := $(IMPL_CMO)
-  REAL_IMPL_INTF := $(IMPLO_INTF)
-  IMPL_SUF := .cmo
-
-  DEPFLAGS  :=
-  MAKE_DEPS := $(MLDEPS) $(BCDEPIS)
-
-  ifdef CREATE_LIB
-    override CFLAGS := $(PIC_CFLAGS) $(CFLAGS)
-    override CPPFLAGS := $(PIC_CPPFLAGS) $(CPPFLAGS)
-    ifndef STATIC
-      ifneq ($(strip $(OBJ_LINK)),)
-       MAKEDLL := $(DLLSONAME)
-       ALL_LDFLAGS := -dllib $(DLLSONAME)
-      endif
-    endif
-  endif
-
-  ifndef NO_CUSTOM
-    ifneq "$(strip $(OBJ_LINK) $(THREADS) $(MAYBE_IDL) $(CLIBS) 
$(CFRAMEWORKS))" ""
-      ALL_LDFLAGS += -custom
-    endif
-  endif
-
-  ALL_LDFLAGS += $(INCFLAGS) $(OCAMLLDFLAGS) $(OCAMLBLDFLAGS) \
-                 $(COMMON_LDFLAGS) $(LIBS:%=%.cma)
-  CAMLIDLDLLFLAGS :=
-
-  ifdef THREADS
-    ifdef VMTHREADS
-      THREAD_FLAG := -vmthread
-    else
-      THREAD_FLAG := -thread
-    endif
-    ALL_LDFLAGS := $(THREAD_FLAG) $(ALL_LDFLAGS)
-    ifndef CREATE_LIB
-      ifndef REAL_OCAMLFIND
-        ALL_LDFLAGS := unix.cma threads.cma $(ALL_LDFLAGS)
-      endif
-    endif
-  endif
-
-# we have to make native-code
-else
-  EXTRADEPS := $(addsuffix .cmxa,$(foreach i,$(LIBS),$(if $(findstring 
/,$(i)),$(i))))
-  ifndef PROFILING
-    SPECIAL_OCAMLFLAGS := $(OCAMLNCFLAGS)
-    PLDFLAGS :=
-  else
-    SPECIAL_OCAMLFLAGS := -p $(OCAMLNCFLAGS)
-    PLDFLAGS := -p
-  endif
-
-  REAL_IMPL := $(IMPL_CMX)
-  REAL_IMPL_INTF := $(IMPLX_INTF)
-  IMPL_SUF := .cmx
-
-  override CPPFLAGS := -DNATIVE_CODE $(CPPFLAGS)
-
-  DEPFLAGS  := -native
-  MAKE_DEPS := $(MLDEPS) $(NCDEPIS)
-
-  ALL_LDFLAGS := $(PLDFLAGS) $(INCFLAGS) $(OCAMLLDFLAGS) \
-                 $(OCAMLNLDFLAGS) $(COMMON_LDFLAGS)
-  CAMLIDLDLLFLAGS := -opt
-
-  ifndef CREATE_LIB
-    ALL_LDFLAGS += $(LIBS:%=%.cmxa)
-  else
-    override CFLAGS := $(PIC_CFLAGS) $(CFLAGS)
-    override CPPFLAGS := $(PIC_CPPFLAGS) $(CPPFLAGS)
-  endif
-
-  ifdef THREADS
-    THREAD_FLAG := -thread
-    ALL_LDFLAGS := $(THREAD_FLAG) $(ALL_LDFLAGS)
-    ifndef CREATE_LIB
-      ifndef REAL_OCAMLFIND
-        ALL_LDFLAGS := unix.cmxa threads.cmxa $(ALL_LDFLAGS)
-      endif
-    endif
-  endif
-endif
-
-export MAKE_DEPS
-
-ifdef ANNOTATE
-  ANNOT_FLAG := -dtypes
-else
-endif
-
-ALL_OCAMLCFLAGS := $(THREAD_FLAG) $(ANNOT_FLAG) $(OCAMLFLAGS) \
-                   $(INCFLAGS) $(SPECIAL_OCAMLFLAGS)
-
-ifdef make_deps
-  -include $(MAKE_DEPS)
-  PRE_TARGETS :=
-endif
-
-###########################################################################
-# USER RULES
-
-# Call "OCamlMakefile QUIET=" to get rid of all of the @'s.
-QUIET=@
-
-# generates byte-code (default)
-byte-code:             $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \
-                               REAL_RESULT="$(BCRESULT)" make_deps=yes
-bc:    byte-code
-
-byte-code-nolink:      $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-                               REAL_RESULT="$(BCRESULT)" make_deps=yes
-bcnl:  byte-code-nolink
-
-top:                   $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(TOPRESULT) \
-                               REAL_RESULT="$(BCRESULT)" make_deps=yes
-
-# generates native-code
-
-native-code:           $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \
-                               REAL_RESULT="$(NCRESULT)" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               make_deps=yes
-nc:    native-code
-
-native-code-nolink:    $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-                               REAL_RESULT="$(NCRESULT)" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               make_deps=yes
-ncnl:  native-code-nolink
-
-# generates byte-code libraries
-byte-code-library:     $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(BCRESULT).cma \
-                               REAL_RESULT="$(BCRESULT)" \
-                               CREATE_LIB=yes \
-                               make_deps=yes
-bcl:   byte-code-library
-
-# generates native-code libraries
-native-code-library:   $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(NCRESULT).cmxa \
-                               REAL_RESULT="$(NCRESULT)" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               CREATE_LIB=yes \
-                               make_deps=yes
-ncl:   native-code-library
-
-ifdef WIN32
-# generates byte-code dll
-byte-code-dll:         $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(BCRESULT).dll \
-                               REAL_RESULT="$(BCRESULT)" \
-                               make_deps=yes
-bcd:   byte-code-dll
-
-# generates native-code dll
-native-code-dll:       $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(NCRESULT).dll \
-                               REAL_RESULT="$(NCRESULT)" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               make_deps=yes
-ncd:   native-code-dll
-endif
-
-# generates byte-code with debugging information
-debug-code:            $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \
-                               REAL_RESULT="$(BCRESULT)" make_deps=yes \
-                               OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-                               OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dc:    debug-code
-
-debug-code-nolink:     $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-                               REAL_RESULT="$(BCRESULT)" make_deps=yes \
-                               OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-                               OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dcnl:  debug-code-nolink
-
-# generates byte-code with debugging information (native code)
-debug-native-code:     $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \
-                               REAL_RESULT="$(NCRESULT)" make_deps=yes \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-                               OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dnc:   debug-native-code
-
-debug-native-code-nolink:      $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) nolink \
-                               REAL_RESULT="$(NCRESULT)" make_deps=yes \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-                               OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dncnl: debug-native-code-nolink
-
-# generates byte-code libraries with debugging information
-debug-code-library:    $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(BCRESULT).cma \
-                               REAL_RESULT="$(BCRESULT)" make_deps=yes \
-                               CREATE_LIB=yes \
-                               OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-                               OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dcl:   debug-code-library
-
-# generates byte-code libraries with debugging information (native code)
-debug-native-code-library:     $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(NCRESULT).cma \
-                               REAL_RESULT="$(NCRESULT)" make_deps=yes \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               CREATE_LIB=yes \
-                               OCAMLFLAGS="-g $(OCAMLFLAGS)" \
-                               OCAMLLDFLAGS="-g $(OCAMLLDFLAGS)"
-dncl:  debug-native-code-library
-
-# generates byte-code for profiling
-profiling-byte-code:           $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT) \
-                               REAL_RESULT="$(BCRESULT)" PROFILING="y" \
-                               make_deps=yes
-pbc:   profiling-byte-code
-
-# generates native-code
-
-profiling-native-code:         $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(NCRESULT) \
-                               REAL_RESULT="$(NCRESULT)" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               PROFILING="y" \
-                               make_deps=yes
-pnc:   profiling-native-code
-
-# generates byte-code libraries
-profiling-byte-code-library:   $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(BCRESULT).cma \
-                               REAL_RESULT="$(BCRESULT)" PROFILING="y" \
-                               CREATE_LIB=yes \
-                               make_deps=yes
-pbcl:  profiling-byte-code-library
-
-# generates native-code libraries
-profiling-native-code-library: $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(RES_CLIB) $(NCRESULT).cmxa \
-                               REAL_RESULT="$(NCRESULT)" PROFILING="y" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               CREATE_LIB=yes \
-                               make_deps=yes
-pncl:  profiling-native-code-library
-
-# packs byte-code objects
-pack-byte-code:                        $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) $(BCRESULT).cmo \
-                               REAL_RESULT="$(BCRESULT)" \
-                               PACK_LIB=yes make_deps=yes
-pabc:  pack-byte-code
-
-# packs native-code objects
-pack-native-code:              $(PRE_TARGETS)
-                       $(QUIET)$(MAKE) -r -f $(OCAMLMAKEFILE) \
-                               $(NCRESULT).cmx $(NCRESULT).o \
-                               REAL_RESULT="$(NCRESULT)" \
-                               REAL_OCAMLC="$(OCAMLOPT)" \
-                               PACK_LIB=yes make_deps=yes
-panc:  pack-native-code
-
-# generates HTML-documentation
-htdoc: $(DOC_DIR)/$(RESULT)/html/index.html
-
-# generates Latex-documentation
-ladoc: $(DOC_DIR)/$(RESULT)/latex/doc.tex
-
-# generates PostScript-documentation
-psdoc: $(DOC_DIR)/$(RESULT)/latex/doc.ps
-
-# generates PDF-documentation
-pdfdoc:        $(DOC_DIR)/$(RESULT)/latex/doc.pdf
-
-# generates all supported forms of documentation
-doc: htdoc ladoc psdoc pdfdoc
-
-###########################################################################
-# LOW LEVEL RULES
-
-$(REAL_RESULT):                $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS) 
$(RESULTDEPS)
-                       $(REAL_OCAMLFIND) $(REAL_OCAMLC) \
-                               $(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
-                               $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
-                               $(REAL_IMPL)
-
-nolink:                        $(REAL_IMPL_INTF) $(OBJ_LINK)
-
-ifdef WIN32
-$(REAL_RESULT).dll:    $(REAL_IMPL_INTF) $(OBJ_LINK)
-                       $(CAMLIDLDLL) $(CAMLIDLDLLFLAGS) $(OBJ_LINK) $(CLIBS) \
-                               -o $@ $(REAL_IMPL)
-endif
-
-%$(TOPSUFFIX):         $(REAL_IMPL_INTF) $(OBJ_LINK) $(EXTRADEPS)
-                       $(REAL_OCAMLFIND) $(OCAMLMKTOP) \
-                               $(OCAML_FIND_PACKAGES) $(OCAML_FIND_LINKPKG) \
-                               $(ALL_LDFLAGS) $(OBJS_LIBS) -o $@$(EXE) \
-                               $(REAL_IMPL)
-
-.SUFFIXES:             .mli .ml .cmi .cmo .cmx .cma .cmxa .$(EXT_OBJ) \
-                        .mly .di .d .$(EXT_LIB) .idl %.oxridl .c .m 
.$(EXT_CXX) .h .so \
-                        .rep .zog .glade
-
-ifndef STATIC
-ifdef MINGW
-$(DLLSONAME):          $(OBJ_LINK)
-                       $(CC) $(CFLAGS) $(CFLAGS_WIN32) $(OBJ_LINK) -shared -o 
$@ \
-                       -Wl,--whole-archive $(wildcard $(foreach 
dir,$(LIBDIRS),$(CLIBS:%=$(dir)/lib%.a))) \
-                        $(OCAMLLIBPATH)/ocamlrun.a \
-                       -Wl,--export-all-symbols \
-                       -Wl,--no-whole-archive
-else
-ifdef MSVC
-$(DLLSONAME):          $(OBJ_LINK)
-                       link /NOLOGO /DLL /OUT:$@ $(OBJ_LINK) \
-                        $(wildcard $(foreach 
dir,$(LIBDIRS),$(CLIBS:%=$(dir)/%.lib))) \
-                        $(OCAMLLIBPATH)/ocamlrun.lib
-
-else
-$(DLLSONAME):          $(OBJ_LINK)
-                       $(OCAMLMKLIB) $(INCFLAGS) $(CLIBFLAGS) \
-                               -o $(CLIB_BASE) $(OBJ_LINK) $(CLIBS:%=-l%) 
$(CFRAMEWORKS:%=-framework %) \
-                               $(OCAMLMKLIB_FLAGS)
-endif
-endif
-endif
-
-ifndef LIB_PACK_NAME
-$(RESULT).cma:         $(REAL_IMPL_INTF) $(MAKEDLL) $(EXTRADEPS) $(RESULTDEPS)
-                       $(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) 
$(OBJS_LIBS) -o $@ $(REAL_IMPL)
-
-$(RESULT).cmxa $(RESULT).$(EXT_LIB):   $(REAL_IMPL_INTF) $(EXTRADEPS) 
$(RESULTDEPS)
-                       $(REAL_OCAMLFIND) $(OCAMLOPT) -a $(ALL_LDFLAGS) 
$(OBJS_LIBS) -o $@ $(REAL_IMPL)
-else
-ifdef BYTE_OCAML
-$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo: $(REAL_IMPL_INTF)
-                       $(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack -o 
$(LIB_PACK_NAME).cmo $(OCAMLLDFLAGS) $(REAL_IMPL)
-else
-$(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmx: $(REAL_IMPL_INTF)
-                       $(REAL_OCAMLFIND) $(OCAMLOPT) -pack -o 
$(LIB_PACK_NAME).cmx  $(OCAMLLDFLAGS) $(REAL_IMPL)
-endif
-
-$(RESULT).cma:         $(LIB_PACK_NAME).cmi $(LIB_PACK_NAME).cmo $(MAKEDLL) 
$(EXTRADEPS) $(RESULTDEPS)
-                       $(REAL_OCAMLFIND) $(REAL_OCAMLC) -a $(ALL_LDFLAGS) 
$(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmo
-
-$(RESULT).cmxa $(RESULT).$(EXT_LIB):   $(LIB_PACK_NAME).cmi 
$(LIB_PACK_NAME).cmx $(EXTRADEPS) $(RESULTDEPS)
-                       $(REAL_OCAMLFIND) $(OCAMLOPT) -a $(filter-out -custom, 
$(ALL_LDFLAGS)) $(OBJS_LIBS) -o $@ $(LIB_PACK_NAME).cmx
-endif
-
-$(RES_CLIB):           $(OBJ_LINK)
-ifndef MSVC
-  ifneq ($(strip $(OBJ_LINK)),)
-                     $(AR) rcs $@ $(OBJ_LINK)
-  endif
-else
-  ifneq ($(strip $(OBJ_LINK)),)
-                       lib -nologo -debugtype:cv -out:$(RES_CLIB) $(OBJ_LINK)
-  endif
-endif
-
-.mli.cmi: $(EXTRADEPS)
-                       $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) 
\*)/\1/p;q' $<`; \
-                       if [ -z "$$pp" ]; then \
-                         $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c $(THREAD_FLAG) $(ANNOT_FLAG) \
-                               $(OCAMLFLAGS) $(INCFLAGS) $<; \
-                         $(REAL_OCAMLFIND) $(INTF_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c $(THREAD_FLAG) $(ANNOT_FLAG) \
-                               $(OCAMLFLAGS) $(INCFLAGS) $<; \
-                       else \
-                           $(ECHO) $(REAL_OCAMLFIND) $(INTF_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c -pp \"$$pp $(PPFLAGS)\" $(THREAD_FLAG) 
$(ANNOT_FLAG) \
-                               $(OCAMLFLAGS) $(INCFLAGS) $<; \
-                           $(REAL_OCAMLFIND) $(INTF_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c -pp "$$pp $(PPFLAGS)" $(THREAD_FLAG) 
$(ANNOT_FLAG) \
-                               $(OCAMLFLAGS) $(INCFLAGS) $<; \
-                       fi
-
-.ml.cmi .ml.$(EXT_OBJ) .ml.cmx .ml.cmo: $(EXTRADEPS)
-                       $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) 
\*)/\1/p;q' $<`; \
-                       if [ -z "$$pp" ]; then \
-                         $(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c $(ALL_OCAMLCFLAGS) $<; \
-                         $(REAL_OCAMLFIND) $(REAL_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c $(ALL_OCAMLCFLAGS) $<; \
-                       else \
-                         $(ECHO) $(REAL_OCAMLFIND) $(REAL_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c -pp \"$$pp $(PPFLAGS)\" $(ALL_OCAMLCFLAGS) 
$<; \
-                         $(REAL_OCAMLFIND) $(REAL_OCAMLC) 
$(OCAML_FIND_PACKAGES) \
-                               -c -pp "$$pp $(PPFLAGS)" $(ALL_OCAMLCFLAGS) $<; 
\
-                       fi
-
-ifdef PACK_LIB
-$(REAL_RESULT).cmo $(REAL_RESULT).cmx $(REAL_RESULT).o: $(REAL_IMPL_INTF) 
$(OBJ_LINK) $(EXTRADEPS)
-                       $(REAL_OCAMLFIND) $(REAL_OCAMLC) -pack $(ALL_LDFLAGS) \
-                               $(OBJS_LIBS) -o $@ $(REAL_IMPL)
-endif
-
-.PRECIOUS:             %.ml
-%.ml:                  %.mll
-                       $(OCAMLLEX) $(LFLAGS) $<
-
-.PRECIOUS:              %.ml %.mli
-%.ml %.mli:             %.mly
-                       $(OCAMLYACC) $(YFLAGS) $<
-                       $(QUIET)pp=`sed -n -e 's/.*(\*pp \([^*]*\) 
\*).*/\1/p;q' $<`; \
-                       if [ ! -z "$$pp" ]; then \
-                         mv $*.ml $*.ml.temporary; \
-                         echo "(*pp $$pp $(PPFLAGS)*)" > $*.ml; \
-                         cat $*.ml.temporary >> $*.ml; \
-                         rm $*.ml.temporary; \
-                         mv $*.mli $*.mli.temporary; \
-                         echo "(*pp $$pp $(PPFLAGS)*)" > $*.mli; \
-                         cat $*.mli.temporary >> $*.mli; \
-                         rm $*.mli.temporary; \
-                       fi
-
-
-.PRECIOUS:             %.ml
-%.ml:                  %.rep
-                       $(CAMELEON_REPORT) $(CAMELEON_REPORT_FLAGS) -gen $<
-
-.PRECIOUS:             %.ml
-%.ml:                  %.zog
-                       $(CAMELEON_ZOGGY)  $(CAMELEON_ZOGGY_FLAGS) -impl $< > $@
-
-.PRECIOUS:             %.ml
-%.ml:                  %.glade
-                       $(OCAML_GLADECC)  $(OCAML_GLADECC_FLAGS) $< > $@
-
-.PRECIOUS:             %.ml %.mli
-%.ml %.mli:            %.oxridl
-                       $(OXRIDL) $<
-
-.PRECIOUS:             %.ml %.mli %_stubs.c %.h
-%.ml %.mli %_stubs.c %.h:              %.idl
-                       $(CAMLIDL) $(MAYBE_IDL_HEADER) $(IDLFLAGS) \
-                               $(CAMLIDLFLAGS) $<
-                       $(QUIET)if [ $(NOIDLHEADER) ]; then touch $*.h; fi
-
-.c.$(EXT_OBJ):
-                       $(OCAMLC) -c -cc "$(CC)" -ccopt "$(CFLAGS) \
-                               $(CPPFLAGS) $(CPPFLAGS_WIN32) \
-                               $(CFLAGS_WIN32) $(CINCFLAGS) $(CFLAG_O)$@ " $<
-
-.m.$(EXT_OBJ):
-                       $(CC) -c $(CFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-                               -I'$(OCAMLLIBPATH)' \
-                               $< $(CFLAG_O)$@
-
-.$(EXT_CXX).$(EXT_OBJ):
-                       $(CXX) -c $(CXXFLAGS) $(CINCFLAGS) $(CPPFLAGS) \
-                               -I'$(OCAMLLIBPATH)' \
-                               $< $(CFLAG_O)$@
-
-$(MLDEPDIR)/%.d:       %.ml
-                       $(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
-                       $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) 
\*)/\1/p;q' $<`; \
-                       if [ -z "$$pp" ]; then \
-                         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) 
$(OCAML_DEP_PACKAGES) \
-                               $(DINCFLAGS) $< \> $@; \
-                         $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-                               $(DINCFLAGS) $< > $@; \
-                       else \
-                         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) 
$(OCAML_DEP_PACKAGES) \
-                               -pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-                         $(REAL_OCAMLFIND) $(OCAMLDEP) $(OCAML_DEP_PACKAGES) \
-                               -pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-                       fi
-
-$(BCDIDIR)/%.di $(NCDIDIR)/%.di:       %.mli
-                       $(QUIET)if [ ! -d $(@D) ]; then mkdir -p $(@D); fi
-                       $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) 
\*)/\1/p;q' $<`; \
-                       if [ -z "$$pp" ]; then \
-                         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) 
$(DINCFLAGS) $< \> $@; \
-                         $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) 
$(DINCFLAGS) $< > $@; \
-                       else \
-                         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-                           -pp \"$$pp $(PPFLAGS)\" $(DINCFLAGS) $< \> $@; \
-                         $(REAL_OCAMLFIND) $(OCAMLDEP) $(DEPFLAGS) \
-                           -pp "$$pp $(PPFLAGS)" $(DINCFLAGS) $< > $@; \
-                       fi
-
-$(DOC_DIR)/$(RESULT)/html:
-       mkdir -p $@
-
-$(DOC_DIR)/$(RESULT)/html/index.html: $(DOC_DIR)/$(RESULT)/html $(DOC_FILES)
-       rm -rf $</*
-       $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' 
$(FIRST_DOC_FILE)`; \
-       if [ -z "$$pp" ]; then \
-         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -html -d 
$< $(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES); \
-         $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -html -d $< 
$(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES); \
-       else \
-         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp 
\"$$pp $(PPFLAGS)\" -html -d $< $(OCAMLDOCFLAGS) \
-               $(INCFLAGS) $(DOC_FILES); \
-         $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp "$$pp 
$(PPFLAGS)" -html -d $< $(OCAMLDOCFLAGS) \
-               $(INCFLAGS) $(DOC_FILES); \
-       fi
-
-$(DOC_DIR)/$(RESULT)/latex:
-       mkdir -p $@
-
-$(DOC_DIR)/$(RESULT)/latex/doc.tex: $(DOC_DIR)/$(RESULT)/latex $(DOC_FILES)
-       rm -rf $</*
-       $(QUIET)pp=`sed -n -e '/^#/d' -e 's/(\*pp \([^*]*\) \*)/\1/p;q' 
$(FIRST_DOC_FILE)`; \
-       if [ -z "$$pp" ]; then \
-         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -latex 
$(OCAMLDOCFLAGS) $(INCFLAGS) \
-               $(DOC_FILES) -o $@; \
-         $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -latex 
$(OCAMLDOCFLAGS) $(INCFLAGS) $(DOC_FILES) \
-               -o $@; \
-       else \
-         $(ECHO) $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp 
\"$$pp $(PPFLAGS)\" -latex $(OCAMLDOCFLAGS) \
-               $(INCFLAGS) $(DOC_FILES) -o $@; \
-         $(REAL_OCAMLFIND) $(OCAMLDOC) $(OCAML_FIND_PACKAGES) -pp "$$pp 
$(PPFLAGS)" -latex $(OCAMLDOCFLAGS) \
-               $(INCFLAGS) $(DOC_FILES) -o $@; \
-       fi
-
-$(DOC_DIR)/$(RESULT)/latex/doc.ps: $(DOC_DIR)/$(RESULT)/latex/doc.tex
-       cd $(DOC_DIR)/$(RESULT)/latex && \
-         $(LATEX) doc.tex && \
-         $(LATEX) doc.tex && \
-         $(DVIPS) $(DVIPSFLAGS) doc.dvi -o $(@F)
-
-$(DOC_DIR)/$(RESULT)/latex/doc.pdf: $(DOC_DIR)/$(RESULT)/latex/doc.ps
-       cd $(DOC_DIR)/$(RESULT)/latex && $(PS2PDF) $(<F)
-
-define make_subproj
-.PHONY:
-subproj_$(1):
-       $$(eval $$(call PROJ_$(1)))
-       $(QUIET)if [ "$(SUBTARGET)" != "all" ]; then \
-         $(MAKE) -f $(OCAMLMAKEFILE) $(SUBTARGET); \
-       fi
-endef
-
-$(foreach subproj,$(SUBPROJS),$(eval $(call make_subproj,$(subproj))))
-
-.PHONY:
-subprojs: $(SUBPROJS:%=subproj_%)
-
-###########################################################################
-# (UN)INSTALL RULES FOR LIBRARIES
-
-.PHONY: libinstall
-libinstall:    all
-       $(QUIET)printf "\nInstalling library with ocamlfind\n"
-       $(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META 
$(LIBINSTALL_FILES)
-       $(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: libinstall-byte-code
-libinstall-byte-code:  all
-       $(QUIET)printf "\nInstalling byte-code library with ocamlfind\n"
-       $(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META \
-         $(filter-out $(RESULT).$(EXT_LIB) $(RESULT).cmxa, $(LIBINSTALL_FILES))
-       $(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: libinstall-native-code
-libinstall-native-code:        all
-       $(QUIET)printf "\nInstalling native-code library with ocamlfind\n"
-       $(OCAMLFIND) install $(OCAMLFIND_INSTFLAGS) $(RESULT) META \
-         $(filter-out $(DLLSONAME) $(RESULT).cma, $(LIBINSTALL_FILES))
-       $(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: libuninstall
-libuninstall:
-       $(QUIET)printf "\nUninstalling library with ocamlfind\n"
-       $(OCAMLFIND) remove $(OCAMLFIND_INSTFLAGS) $(RESULT)
-       $(QUIET)printf "\nUninstallation successful.\n"
-
-.PHONY: rawinstall
-rawinstall:    all
-       $(QUIET)printf "\nInstalling library to: $(OCAML_LIB_INSTALL)\n"
-       -install -d $(OCAML_LIB_INSTALL)
-       for i in $(LIBINSTALL_FILES); do \
-         if [ -f $$i ]; then \
-           install -c -m 0644 $$i $(OCAML_LIB_INSTALL); \
-         fi; \
-       done
-       $(QUIET)printf "\nInstallation successful.\n"
-
-.PHONY: rawuninstall
-rawuninstall:
-       $(QUIET)printf "\nUninstalling library from: $(OCAML_LIB_INSTALL)\n"
-       cd $(OCAML_LIB_INSTALL) && rm $(notdir $(LIBINSTALL_FILES))
-       $(QUIET)printf "\nUninstallation successful.\n"
-
-###########################################################################
-# MAINTENANCE RULES
-
-.PHONY:        clean
-clean::
-       rm -f $(TARGETS) $(TRASH)
-       rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR)
-
-.PHONY:        cleanup
-cleanup::
-       rm -f $(NONEXECS) $(TRASH)
-       rm -rf $(BCDIDIR) $(NCDIDIR) $(MLDEPDIR)
-
-.PHONY: clean-doc
-clean-doc::
-       rm -rf $(DOC_DIR)/$(RESULT)
-
-.PHONY: clean-all
-clean-all:: clean clean-doc
-
-.PHONY: nobackup
-nobackup:
-       rm -f *.bak *~ *.dup

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/README-OCamlMakefile
----------------------------------------------------------------------
diff --git a/lib/ocaml/README-OCamlMakefile b/lib/ocaml/README-OCamlMakefile
deleted file mode 100644
index 57ef019..0000000
--- a/lib/ocaml/README-OCamlMakefile
+++ /dev/null
@@ -1,643 +0,0 @@
-NOTE (bryanduxbury): OCamlMakefile is safe to include in the project after
-https://issues.apache.org/jira/browse/LEGAL-58.
-
----------------------------------------------------------------------------
-
-                        Distribution of "ocaml_make"
-     Copyright (C) 1999 - 2006  Markus Mottl - free to copy and modify!
-                           USE AT YOUR OWN RISK!
-
----------------------------------------------------------------------------
-
-                            PREREQUISITES
-
-             *** YOU WILL NEED GNU-MAKE VERSION >3.80 ***
-
----------------------------------------------------------------------------
-
-                    Contents of this distribution
-
-Changes        - guess what? ;-)
-
-OCamlMakefile  - Makefile for easy handling of compilation of not so easy
-                 OCaml-projects.  It generates dependencies of OCaml-files
-                 automatically, is able to handle "ocamllex"-,
-                 "ocamlyacc"-, IDL- and C-files, knows how to run
-                 preprocessors and generates native- or byte-code, as
-                 executable or as library - with thread-support if you
-                 want! Profiling and debugging support can be added on
-                 the fly!  There is also support for installing libraries.
-                 Ah, yes, and you can also create toplevels from any
-                 sources: this allows you immediate interactive testing.
-                 Automatic generation of documentation is easy due to
-                 integration of support for OCamldoc.
-
-README         - this file
-
-calc/          - Directory containing a quite fully-featured example
-                 of what "OCamlMakefile" can do for you. This example
-                 makes use of "ocamllex", "ocamlyacc", IDL + C and
-                 threads.
-
-camlp4/        - This simple example demonstrates how to automatically
-                 preprocess files with the camlp4-preprocessor.
-
-gtk/           - Demonstration of how to use OCamlMakefile with GTK
-                 and threads. Courtesy of Tim Freeman <t...@fungible.com>.
-
-idl/           - Contains a very small example of how to use
-                 "camlidl" together with "OCamlMakefile". Also intended
-                 to show, how easy it is to interface OCaml and C.
-
-threads/       - Two examples of how to use threads (originally
-                 posted by Xavier Leroy some time ago). Shows the use of
-                 "OCamlMakefile" in an environment of multiple compilation
-                 targets.
-
----------------------------------------------------------------------------
-
-                      Why should you use it?
-
-For several reasons:
-
-  * It is well-tested (I use it in all of my projects).
-
-  * In contrast to most other approaches it generates dependencies
-    correctly by ensuring that all automatically generated OCaml-files
-    exist before dependency calculation.  This is the only way to
-    guarantee that "ocamldep" works correctly.
-
-  * It is extremely convenient (at least I think so ;-).
-    Even quite complex compilation processes (see example "calc.ml")
-    need very little information to work correctly - actually just about
-    the minimum (file names of sources).
-
----------------------------------------------------------------------------
-
-                     When you shouldn't use it...
-
-In projects where every compilation unit needs different flags - but
-in such complicated cases you will be on your own anyway. Luckily,
-this doesn't happen too frequently...
-
----------------------------------------------------------------------------
-
-             How to use "OCamlMakefile" in your own project
-         (Take a look at the examples for a quick introduction!)
-
-Create your project-specific "Makefile" in the appropriate directory.
-
-Now there are two ways of making use of "OCamlMakefile":
-
-  1) Have a look at the default settings in "OCamlMakefile" and set
-     them to the values that are vaild on your system - whether the
-     path to the standard libraries is ok, what executables shall be
-     used, etc...
-
-  2) Copy it into the directory of the project to be compiled.
-     Add "-include OCamlMakefile" as a last line of your "Makefile".
-
-  3) Put it somewhere else on the system. In this case you will have to
-     set a variable "OCAMLMAKEFILE" in your project-specific "Makefile".
-     This is the way in which the examples are written: so you need
-     only one version of "OCamlMakefile" to manage all your projects!
-     See the examples for details.
-
-You should usually specify two further variables for your project:
-
-  * SOURCES  (default: foo.ml)
-  * RESULT   (default: foo)
-
-Put all the sources necessary for a target into variable "SOURCES".
-Then set "RESULT" to the name of the target. If you want to generate
-libraries, you should *not* specify the suffix (".cma", ".cmxa", ".a")
-- it will be added automatically if you specify that you want to build
-a library.
-
-      **      Don't forget to add the ".mli"-files, too!        **
-      **  Don't forget that order of the source files matters!  **
-
-The order is important, because it matters during linking anyway
-due to potential side effects caused at program startup. This is
-why OCamlMakefile does not attempt to partially order dependencies by
-itself, which might confuse users even more. It just compiles and links
-OCaml-sources in the order specified by the user, even if it could
-determine automatically that the order cannot be correct.
-
-The minimum of your "Makefile" looks like this (assuming that
-"OCamlMakefile" is in the search path of "make"):
-
-  -include OCamlMakefile
-
-This will assume that you want to compile a file "foo.ml" to a binary
-"foo".
-
-Otherwise, your Makefile will probably contain something like this:
-
-  SOURCES = foo.ml
-  RESULT  = foo
-  -include OCamlMakefile
-
-Be careful with the names you put into these variables: if they are wrong,
-a "make clean" might erase the wrong files - but I know you will not do
-that ;-)
-
-A simple "make" will generate a byte-code executable. If you want to
-change this, you may add an "all"-rule that generates something else.
-
-E.g.:
-
-  SOURCES = foo.ml
-  RESULT  = foo
-  all: native-code-library
-  -include OCamlMakefile
-
-This will build a native-code library "foo.cmxa" (+ "foo.a") from file
-"foo.ml".
-
-You may even build several targets at once. To produce byte- and native-code
-executables with one "make", add the following rule:
-
-    all: byte-code native-code
-
-You will probably want to use a different suffix for each of these targets
-so that the result will not be overwritten (see optional variables below
-for details).
-
-You may also tell "make" at the command-line what kind of target to
-produce (e.g. "make nc").  Here all the possibilities with shortcuts
-between parenthesis:
-
-   * byte-code                     (bc)
-   * byte-code-nolink              (bcnl)   - no linking stage
-   * byte-code-library             (bcl)
-   * native-code                   (nc)
-   * native-code-nolink            (ncnl)   - no linking stage
-   * native-code-library           (ncl)
-   * debug-code                    (dc)
-   * debug-code-nolink             (dcnl)   - no linking stage
-   * debug-code-library            (dcl)
-   * profiling-byte-code           (pbc)
-   * profiling-byte-code-library   (pbcl)
-   * profiling-native-code         (pnc)
-   * profiling-native-code-library (pncl)
-   * byte-code-dll                 (bcd)
-   * native-code-dll               (ncd)
-   * pack-byte-code                (pabc)
-   * pack-native-code              (panc)
-   * toplevel interpreter          (top)
-   * subprojs
-
-Here a short note concerning building and linking byte code libraries
-with C-files:
-
-  OCaml links C-object files only when they are used in an executable.
-  After compilation they should be placed in some directory that is in
-  your include path if you link your library against an executable.
-
-  It is sometimes more convenient to link all C-object files into a
-  single C-library. Then you have to override the automatic link flags
-  of your library using "-noautolink" and add another linkflag that
-  links in your C-library explicitly.
-
-What concerns maintenance:
-
-  "make clean" removes all (all!) automatically generated files - so
-  again: make sure your variables are ok!
-
-  "make cleanup" is similar to "make clean" but leaves executables.
-
-Another way to destroy some important files is by having "OCamlMakefile"
-automatically generate files with the same name. Read the documentation
-about the tools in the OCaml-distribution to see what kind of files are
-generated. "OCamlMakefile" additionally generates ('%' is basename of
-source file):
-
-  %_idl.c  - "camlidl" generates a file "%.c" from "%.idl", but this is
-             not such a good idea, because when generating native-code,
-             both the file "%.c" and "%.ml" would generate files "%.o"
-             which would overwrite each other. Thus, "OCamlMakefile"
-             renames "%.c" to "%_idl.c" to work around this problem.
-
-The dependencies are stored in three different subdirectories (dot dirs):
-
-  ._d    - contains dependencies for .ml-files
-  ._bcdi - contains byte code dependencies for .mli-files
-  ._ncdi - contains native code dependencies for .mli-files
-
-The endings of the dependency files are: "%.d" for those generated from
-"%.ml"-files, "%.di" for ones derived from "%.mli"-files.
-
----------------------------------------------------------------------------
-
-                                 Debugging
-
-  This is easy: if you discover a bug, just do a "make clean; make dc"
-  to recompile your project with debugging information. Then you can
-  immediately apply "ocamldebug" to the executable.
-
----------------------------------------------------------------------------
-
-                                 Profiling
-
-  For generating code that can be profiled with "ocamlprof" (byte code)
-  or "gprof" (native code), compile your project with one of the profiling
-  targets (see targets above). E.g.:
-
-    * "make pbc" will build byte code that can be profiled with
-      "ocamlprof".
-
-    * "make pnc" will build native code that can be profiled with
-      "gprof".
-
-  Please note that it is not currently possible to profile byte code with
-  threads. OCamlMakefile will force an error if you try to do this.
-
-  A short hint for DEC Alpha-users (under Digital Unix): you may also
-  compile your sources to native code without any further profiling
-  options/targets. Then call "pixie my_exec", "my_exec" being your
-  executable. This will produce (among other files) an executable
-  "my_exec.pixie". Call it and it will produce profiling information which
-  can be analysed using "prof -pixie my_exec". The resulting information
-  is extremely detailed and allows analysis up to the clock cycle level...
-
----------------------------------------------------------------------------
-
-                             Using Preprocessors
-
-  Because one could employ any kind of program that reads from standard
-  input and prints to standard output as preprocessor, there cannot be any
-  default way to handle all of them correctly without further knowledge.
-
-  Therefore you have to cooperate a bit with OCamlMakefile to let
-  preprocessing happen automatically. Basically, this only requires
-  that you put a comment into the first line of files that should be
-  preprocessed, e.g.:
-
-    (*pp cat *)
-    ... rest of program ...
-
-  OCamlMakefile looks at the first line of your files, and if it finds
-  a comment that starts with "(*pp", then it will assume that the
-  rest of the comment tells it how to correctly call the appropriate
-  preprocessor. In this case the program "cat" will be called, which will,
-  of course, just output the source text again without changing it.
-
-  If you are, for example, an advocate of the new "revised syntax",
-  which is supported by the camlp4 preprocessor, you could simply write:
-
-    (*pp camlp4r *)
-    ... rest of program in revised syntax ...
-
-  Simple, isn't it?
-
-  If you want to write your own syntax extensions, just take a look at the
-  example in the directory "camlp4": it implements the "repeat ... until"
-  extension as described in the camlp4-tutorial.
-
----------------------------------------------------------------------------
-
-                     Library (Un-)Installation Support
-
-  OCamlMakefile contains two targets using "ocamlfind" for this purpose:
-
-    * libinstall
-    * libuninstall
-
-  These two targets require the existence of the variable
-  "LIBINSTALL_FILES", which should be set to all the files that you
-  want to install in the library directory (usually %.mli, %.cmi, %.cma,
-  %.cmxa, %.a and possibly further C-libraries). The target "libinstall"
-  has the dependency "all" to force compilation of the library so make
-  sure you define target "all" in your Makefile appropriately.
-
-  The targets inform the user about the configured install path and ask
-  for confirmation to (un)install there. If you want to use them, it
-  is often a good idea to just alias them in your Makefile to "install"
-  and "uninstall" respectively.
-
-  Two other targets allow installation of files into a particular
-  directory (without using ocamlfind):
-
-    * rawinstall
-    * rawuninstall
-
----------------------------------------------------------------------------
-
-                            Building toplevels
-
-  There is just one target for this:
-
-    * top
-
-  The generated file can be used immediately for interactive sessions -
-  even with scanners, parsers, C-files, etc.!
-
----------------------------------------------------------------------------
-
-                         Generating documentation
-
-  The following targets are supported:
-
-   * htdoc      - generates HTML-documentation
-   * ladoc      - generates Latex-documentation
-   * psdoc      - generates PostScript-documentation
-   * pdfdoc     - generates PDF-documentation
-   * doc        - generates all supported forms of documentation
-   * clean-doc  - generates all supported forms of documentation
-
-  All of them generate a sub-directory "doc". More precisely, for HTML it
-  is "doc/$(RESULT)/html" and for Latex, PostScript and PDF the directory
-  "doc/$(RESULT)/latex". See the OCamldoc-manual for details and the
-  optional variables below for settings you can control.
-
----------------------------------------------------------------------------
-
-                           Handling subprojects
-
-  You can have several targets in the same directory and manage them
-  from within an single Makefile.
-
-  Give each subproject a name, e.g. "p1", "p2", etc. Then you export
-  settings specific to each project by using variables of the form
-  "PROJ_p1", "PROJ_p2", etc.  E.g.:
-
-    define PROJ_p1
-      SOURCES="foo.ml main.ml"
-      RESULT="p1"
-      OCAMLFLAGS="-unsafe"
-    endef
-    export PROJ_p1
-
-    define PROJ_p2
-      ...
-    endef
-    export PROJ_p2
-
-  You may also export common settings used by all projects directly, e.g.
-  "export THREADS = y".
-
-  Now it is a good idea to define, which projects should be affected by
-  commands by default.  E.g.:
-
-    ifndef SUBPROJS
-      export SUBPROJS = p1 p2
-    endif
-
-  This will automatically generate a given target for all those
-  subprojects if this variable has not been defined in the shell
-  environment or in the command line of the make-invocation by the user.
-  E.g., "make dc" will generate debug code for all subprojects.
-
-  Then you need to define a default action for your subprojects if "make"
-  has been called without arguments:
-
-    all: bc
-
-  This will build byte code by default for all subprojects.
-
-  Finally, you'll have to define a catch-all target that uses the target
-  provided by the user for all subprojects. Just add (assuming that
-  OCAMLMAKEFILE has been defined appropriately):
-
-    %:
-            @make -f $(OCAMLMAKEFILE) subprojs SUBTARGET=$@
-
-  See the "threads"-directory in the distribution for a short example!
-
----------------------------------------------------------------------------
-
-         Optional variables that may be passed to "OCamlMakefile"
-
-  * LIB_PACK_NAME - packs all modules of a library into a module whose
-                    name is given in variable "LIB_PACK_NAME".
-
-  * RES_CLIB_SUF  - when building a library that contains C-stubs, this
-                    variable controls the suffix appended to the name
-                    of the C-library (default: "_stubs").
-
-  * THREADS       - say "THREADS = yes" if you need thread support compiled in,
-                    otherwise leave it away.
-
-  * VMTHREADS     - say "VMTHREADS = yes" if you want to force VM-level
-                    scheduling of threads (byte-code only).
-
-  * ANNOTATE      - say "ANNOTATE = yes" to generate type annotation files
-                    (.annot) to support displaying of type information
-                    in editors.
-
-  * USE_CAMLP4    - say "USE_CAMLP4 = yes" in your "Makefile" if you
-                    want to include the camlp4 directory during the
-                    build process, otherwise leave it away.
-
-  * INCDIRS       - directories that should be searched for ".cmi"- and
-                    ".cmo"-files.  You need not write "-I ..." - just the
-                    plain names.
-  * LIBDIRS       - directories that should be searched for libraries
-                    Also just put the plain paths into this variable
-  * EXTLIBDIRS    - Same as "LIBDIRS", but paths in this variable are
-                    also added to the binary via the "-R"-flag so that
-                    dynamic libraries in non-standard places can be found.
-  * RESULTDEPS    - Targets on which results (executables or libraries)
-                    should additionally depend.
-
-  * PACKS         - adds packages under control of "findlib".
-
-  * PREDS         - specifies "findlib"-predicates.
-
-  * LIBS          - OCaml-libraries that should be linked (just plain names).
-                    E.g. if you want to link the Str-library, just write
-                    "str" (without quotes).
-                    The new OCaml-compiler handles libraries in such
-                    a way that they "remember" whether they have to
-                    be linked against a C-library and it gets linked
-                    in automatically.
-                    If there is a slash in the library name (such as
-                    "./str" or "lib/foo") then make is told that the
-                    generated files depend on the library.  This
-                    helps to ensure that changes to your libraries are
-                    taken into account, which is important if you are
-                    regenerating your libraries frequently.
-  * CLIBS         - C-libraries that should be linked (just plain names).
-
-  * PRE_TARGETS   - set this to a list of target files that you want
-                    to have buildt before dependency calculation actually
-                    takes place. E.g. use this to automatically compile
-                    modules needed by camlp4, which have to be available
-                    before other modules can be parsed at all.
-
-                    ** WARNING **: the files mentioned in this variable
-                    will be removed when "make clean" is executed!
-
-  * LIBINSTALL_FILES - the files of a library that should be installed
-                       using "findlib". Default:
-
-                         $(RESULT).mli $(RESULT).cmi $(RESULT).cma
-                         $(RESULT).cmxa $(RESULT).a lib$(RESULT).a
-
-  * OCAML_LIB_INSTALL - target directory for "rawinstall/rawuninstall".
-                        (default: $(OCAMLLIBPATH)/contrib)
-
-  * DOC_FILES     - names of files from which documentation is generated.
-                    (default: all .mli-files in your $(SOURCES)).
-
-  * DOC_DIR       - name of directory where documentation should be stored.
-
-  * OCAMLFLAGS    - flags passed to the compilers
-  * OCAMLBCFLAGS  - flags passed to the byte code compiler only
-  * OCAMLNCFLAGS  - flags passed to the native code compiler only
-
-  * OCAMLLDFLAGS  - flags passed to the OCaml-linker
-  * OCAMLBLDFLAGS - flags passed to the OCaml-linker when linking byte code
-  * OCAMLNLDFLAGS - flags passed to the OCaml-linker when linking
-                    native code
-
-  * OCAMLMKLIB_FLAGS - flags passed to the OCaml library tool
-
-  * OCAMLCPFLAGS  - profiling flags passed to "ocamlcp" (default: "a")
-
-  * PPFLAGS       - additional flags passed to the preprocessor (default: none)
-
-  * LFLAGS        - flags passed to "ocamllex"
-  * YFLAGS        - flags passed to "ocamlyacc"
-  * IDLFLAGS      - flags passed to "camlidl"
-
-  * OCAMLDOCFLAGS - flags passed to "ocamldoc"
-
-  * OCAMLFIND_INSTFLAGS - flags passed to "ocamlfind" during installation
-                          (default: none)
-
-  * DVIPSFLAGS    - flags passed to dvips
-                    (when generating documentation in PostScript).
-
-  * STATIC        - set this variable if you want to force creation
-                    of static libraries
-
-  * CC            - the C-compiler to be used
-  * CXX           - the C++-compiler to be used
-
-  * CFLAGS        - additional flags passed to the C-compiler.
-                    The flag "-DNATIVE_CODE" will be passed automatically
-                    if you choose to build native code. This allows you
-                    to compile your C-files conditionally. But please
-                    note: You should do a "make clean" or remove the
-                    object files manually or touch the %.c-files:
-                    otherwise, they may not be correctly recompiled
-                    between different builds.
-
-  * CXXFLAGS      - additional flags passed to the C++-compiler.
-
-  * CPPFLAGS      - additional flags passed to the C-preprocessor.
-
-  * CFRAMEWORKS   - Objective-C framework to pass to linker on MacOS X.
-
-  * LDFLAGS       - additional flags passed to the C-linker
-
-  * RPATH_FLAG    - flag passed through to the C-linker to set a path for
-                    dynamic libraries.  May need to be set by user on
-                    exotic platforms.  (default: "-R").
-
-  * ELF_RPATH_FLAG - this flag is used to set the rpath on ELF-platforms.
-                     (default: "-R")
-
-  * ELF_RPATH     - if this flag is "yes", then the RPATH_FLAG will be
-                    passed by "-Wl" to the linker as normal on
-                    ELF-platforms.
-
-  * OCAMLLIBPATH  - path to the OCaml-standard-libraries
-                    (first default: `$(OCAMLC) -where`)
-                    (second default: "/usr/local/lib/ocaml")
-
-  * OCAML_DEFAULT_DIRS - additional path in which the user can supply
-                         default directories to his own collection of
-                         libraries.  The idea is to pass this as an environment
-                         variable so that the Makefiles do not have to contain
-                         this path all the time.
-
-  * OCAMLFIND     - ocamlfind from findlib       (default: "ocamlfind")
-  * OCAMLC        - byte-code compiler           (default: "ocamlc")
-  * OCAMLOPT      - native-code compiler         (default: "ocamlopt")
-  * OCAMLMKTOP    - top-level compiler           (default: "ocamlmktop")
-  * OCAMLCP       - profiling byte-code compiler (default: "ocamlcp")
-  * OCAMLDEP      - dependency generator         (default: "ocamldep")
-  * OCAMLLEX      - scanner generator            (default: "ocamllex")
-  * OCAMLYACC     - parser generator             (default: "ocamlyacc")
-  * OCAMLMKLIB    - tool to create libraries     (default: "ocamlmklib")
-  * CAMLIDL       - IDL-code generator           (default: "camlidl")
-  * CAMLIDLDLL    - IDL-utility                  (default: "camlidldll")
-  * CAMLP4        - camlp4 preprocessor          (default: "camlp4")
-  * OCAMLDOC      - OCamldoc-command             (default: "ocamldoc")
-
-  * LATEX         - Latex-processor              (default: "latex")
-  * DVIPS         - dvips-command                (default: "dvips")
-  * PS2PDF        - PostScript-to-PDF converter  (default: "ps2pdf")
-
-  * CAMELEON_REPORT - report tool of Cameleon  (default: "report")
-  * CAMELEON_REPORT_FLAGS - flags for the report tool of Cameleon
-
-  * CAMELEON_ZOGGY - zoggy tool of Cameleon
-                     (default: "camlp4o pa_zog.cma pr_o.cmo")
-  * CAMELEON_ZOGGY_FLAGS - flags for the zoggy tool of Cameleon
-
-  * OCAML_GLADECC - Glade compiler for OCaml     (default: "lablgladecc2")
-  * OCAML_GLADECC_FLAGS - flags for the Glade compiler
-
-  * OXRIDL        - OXRIDL-generator  (default: "oxridl")
-
-  * NOIDLHEADER   - set to "yes" to prohibit "OCamlMakefile" from using
-                    the default camlidl-flag "-header".
-
-  * NO_CUSTOM     - Prevent linking in custom mode.
-
-  * QUIET         - unsetting this variable (e.g. "make QUIET=")
-                    will print all executed commands, including
-                    intermediate ones. This allows more comfortable
-                    debugging when things go wrong during a build.
-
-  * REALLY_QUIET  - when set this flag turns off output from some commands.
-
-  * OCAMLMAKEFILE - location of (=path to) this "OCamlMakefile".
-                    Because it calles itself recursively, it has to
-                    know where it is. (default: "OCamlMakefile" =
-                    local directory)
-
-  * BCSUFFIX      - Suffix for all byte-code files. E.g.:
-
-                      RESULT   = foo
-                      BCSUFFIX = _bc
-
-                    This will produce byte-code executables/libraries
-                    with basename "foo_bc".
-
-  * NCSUFFIX      - Similar to "BCSUFFIX", but for native-code files.
-  * TOPSUFFIX     - Suffix added to toplevel interpreters (default: ".top")
-
-  * SUBPROJS      - variable containing the names of subprojects to be
-                    compiled.
-
-  * SUBTARGET     - target to be built for all projects in variable
-                    SUBPROJS.
-
----------------------------------------------------------------------------
-
-                    Optional variables for Windows users
-
-  * MINGW         - variable to detect the MINGW-environment
-  * MSVC          - variable to detect the MSVC-compiler
-
----------------------------------------------------------------------------
-
-Up-to-date information (newest release of distribution) can always be
-found at:
-
-  http://www.ocaml.info/home/ocaml_sources.html
-
----------------------------------------------------------------------------
-
-Enjoy!
-
-New York, 2007-04-22
-Markus Mottl
-
-e-mail: markus.mo...@gmail.com
-WWW:    http://www.ocaml.info

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/descr
----------------------------------------------------------------------
diff --git a/lib/ocaml/descr b/lib/ocaml/descr
new file mode 100644
index 0000000..a41749d
--- /dev/null
+++ b/lib/ocaml/descr
@@ -0,0 +1 @@
+OCaml bindings for the Apache Thrift RPC system

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/opam
----------------------------------------------------------------------
diff --git a/lib/ocaml/opam b/lib/ocaml/opam
new file mode 100644
index 0000000..9dbc3d9
--- /dev/null
+++ b/lib/ocaml/opam
@@ -0,0 +1,8 @@
+opam-version: "1"
+maintainer: "XXX(FILL ME IN WITH EMAIL)"
+build: [
+  [make]
+  [make "install"]
+]
+remove: [["ocamlfind" "remove" "thrift"]]
+depends: ["ocamlfind"]

http://git-wip-us.apache.org/repos/asf/thrift/blob/b28160b9/lib/ocaml/url
----------------------------------------------------------------------
diff --git a/lib/ocaml/url b/lib/ocaml/url
new file mode 100644
index 0000000..fe4d604
--- /dev/null
+++ b/lib/ocaml/url
@@ -0,0 +1,2 @@
+archive: "XXX(FILL ME IN WITH URL)"
+checksum: "XXX(FILL ME IN WITH MD5)"

Reply via email to