Provided by: ocaml-findlib_1.9.6-1build4_amd64 bug

NAME

       ocamlfind - [Command-line interface of the Package manager]

SYNOPSIS

              ocamlfind query [-help | other options] package_name ...
          or: ocamlfind ocamlc [-help | other options] file ...
          or: ocamlfind ocamlcp [-help | other options] file ...
          or: ocamlfind ocamlmktop [-help | other options] file ...
          or: ocamlfind ocamlopt [-help | other options] file ...
          or: ocamlfind ocamldoc [-help | other options] file ...
          or: ocamlfind ocamldep [-help | other options] file ...
          or: ocamlfind ocamlmklib [-help | other options] file ...
          or: ocamlfind ocamlbrowser [-help | other options]
          or: ocamlfind install [-help | other options] package_name file ...
          or: ocamlfind remove [-help | other options] package_name
          or: ocamlfind lint META
          or: ocamlfind list [-describe]
          or: ocamlfind printppx [-help | other options] package_name ...
          or: ocamlfind printconf [ variable ]
          or: ocamlfind package/command arg ...

       Optional toolchain selection by:
         ocamlfind -toolchain name ...

THE 'query' SUBCOMMAND

   Synopsis
       ocamlfind query [ -predicates p  |
                         -format f |
                         -long-format | -l |
                         -i-format |
                         -l-format |
                         -a-format |
                         -o-format |
                         -p-format |
                         -prefix p |
                         -separator s |
                         -suffix s |
                         -pp |
                         -descendants | -d |
                         -recursive  | -r
                         -qe | -qo] package ...

   Description
       This  command  looks  packages  up,  sorts  them optionally, and prints attributes of them. If the option
       -recursive (short: -r) is not specified, exactly the packages given on the command line are looked up; if
       -recursive is present, the packages and all their ancestors, or if -descendants (short: -d)  is  present,
       too, all their descendants are printed.

       Package  lookup  and  the  selection  of  the  attributes  of  the packages can be modified by specifying
       predicates; without a -predicates option the empty set of predicates is used. Note that even  the  lookup
       is influenced by the set of actual predicates as the "requires" variables may be conditional.

       What  is  printed  about  a  package  depends on the specified format; there are a number of options that
       modify the format. Some formats denote sets of values (such as -format %a), in which case multiple output
       records are printed for every package. (It is even possible to specify  formats  denoting  the  Cartesian
       product  of sets, such as -format %a%o, but this does not make sense.) Before the first output record the
       prefix is printed, and the suffix after the last record. Between two records the separator is printed.

   Options
         -predicates p

              Sets the set of actual predicates. The argument  p is a list of  predicate  names  separated    by
              commas  and/or  whitespace. If multiple -predicates options are  given, the union of all specified
              sets is effectively used.

         -format f

              Sets the format to the string  f. Characters preceded by  a  percent  sign    are  interpreted  as
              placeholders;  all  other characters mean  themselves. The defined placeholders are listed below.
              The default format is "%d".

         -long-format or -l

              Sets the format such that all relevant variables are printed.

         -i-format

              Same as -format "-I %d", i.e. directory options for ocamlc are printed.

         -l-format

              Same as -format "-ccopt -L%d", i.e. directory options for the linker backend are printed.

         -a-format

              Same as -format "%+a", i.e. archive file names are printed.

         -o-format

              Same as -format "%o", i.e. linker options are printed.

         -p-format

              Same as -format "%p", i.e. package names are printed.

         -prefix p

              Sets the prefix that is printed before the first output record  to the given string.  The  default
              prefix is the empty string.

         -suffix s

              Sets  the  suffix  that  is printed after the last output record  to the given string. The default
              suffix is the empty string.

         -separator s

              Sets the separator that is printed between output records  to    the  given  string.  The  default
              separator is a linefeed character.

         -recursive or -r

              Not  only  the  packages  given  on  the  command  line  are  queried    but also all ancestors or
              descendants. If the option -descendants is  specified, too, the descendants are printed, otherwise
              the  ancestors. The packages are topologically sorted.

         -descendants -d

              Instead of the ancestors the descendants of the  given packages are queried. This  option  implies
              -recursive.

         -pp

              Query  preprocessor  packages  (camlp4  syntax  extensions).  Normally  it  is  not  needed to set
              -predicates, except you need the  archives  (then  add  -predicates  byte).  This  option  implies
              -recursive.

         -qe

              Do not print most errors to stderr, just set the exit code

         -qo

              Do not print the regular output.

   Placeholders meaningful in the -format option
         %%

              Replaced by a single percent sign

         %p

              Replaced by the package name

         %d

              Replaced by the package directory

         %m

              Replaced by the path to the META file (new since findlib-1.6)

         %D

              Replaced by the package description

         %v

              Replaced by the version string

         %a

              Replaced  by the archive filename. If there is more  than one archive, a separate output record is
              printed for every archive.

         %+a

              Like %a, but the filenames are converted to absolute  paths ("+" and "@" notations are resolved)

         %A

              Replaced by the list of archive filenames.

         %+A

              Like %A, but the filenames are converted to absolute  paths ("+" and "@" notations are resolved)

         %o

              Replaced by one linker option. If there is more than  one option,  a  separate  output  record  is
              printed for every option.

         %O

              Replaced by the list of linker options.

         %(property)

              Replaced by the value of the property named in parentheses, or the empty string if not defined.

THE SUBCOMMANDS 'ocamlc', 'ocamlcp', 'ocamlopt', and 'ocamlmktop'

   Synopsis
       ocamlfind ( ocamlc | ocamlcp | ocamlopt | ocamlmktop )
                 [ -package package-name-list |
                   -linkpkg |
                   -predicates pred-name-list |
                   -dontlink package-name-list |
                   -syntax pred-name-list |
                   -ppopt camlp4-arg |
                   -ppxopt package,arg |
                   -dllpath-pkg package-name-list |
                   -dllpath-all |
                   -passopt arg |
                   -passrest arg... |
                   -only-show |
                   standard-option ]
                 file ...

   Description
       These  subcommands are drivers for the compilers with the same names, i.e. "ocamlfind ocamlc" is a driver
       for "ocamlc", and so on. The subcommands understand all documented options of the compilers (here  called
       standard-options),  but  also  a  few  more  options. If these subcommands are invoked only with standard
       options, they behave as if the underlying compiler had been called directly.  The  extra  options  modify
       this.

       Internally,  these  subcommands transform the given list of options and file arguments into an invocation
       of the driven compiler. This transformation only adds options and files, and the relative  order  of  the
       options and files passed directly is unchanged.

       If there are -package options, additional directory search specifiers will be included ("-I", and "-ccopt
       -I"), such that files of all named packages and all ancestors can be found.

       The  -linkpkg  option causes that the packages listed in the -package options and all necessary ancestors
       are linked in. This means that the archive files implementing the packages are inserted into the list  of
       file arguments.

       As  the package database is queried a set of predicates is needed. Most predicates are set automatically,
       see below, but additional predicates can be given by a -predicates option.

       If there is a -syntax option, the drivers assume that a preprocessor is to be used.  In  this  case,  the
       preprocessor  command  is built first in a preprocessor stage, and this command is passed to the compiler
       using the -pp option. The set of predicates in the preprocessor stage is different from the  set  in  the
       compiler/linker stage.

   Options for compiling and linking
       Here,  only  the additional options not interpreted by the compiler but by the driver itself, and options
       with additional effects are explained. Some options are only meaningful for the  preprocessor  call,  and
       are explained below.

         -package package-name-list

              Adds the listed package names to the set of included  packages. The package names may be separated
              by  commas  and/or    whitespace.  In  the  transformed  command, for every package of the set  of
              included packages and for any ancestor a directory search option  is inserted  after  the  already
              given  options.  This  means  that    "-I"  and  "-ccopt  -I"  options are added for every package
              directory.

         -linkpkg

              Causes that in the transformed command all archives  of the packages specified  by  -packages  and
              all their ancestors are  added to the file arguments. More precisely, these archives are  inserted
              before  the  first  given  file  argument.  Furthermore,  "-ccopt    -L"  options  for all package
              directories, and the linker options of  the selected  packages  are  added,  too.  Note  that  the
              archives  are    inserted  in  topological  order  while  the linker options are added in  reverse
              toplogical order.

         -predicates pred-name-list

              Adds the given predicates to the set of actual  predicates. The predicates must  be  separated  by
              commas and/or  whitespace.

         -dontlink package-name-list

              This option modifies the behaviour of  -linkpkg. Packages specified here and all ancestors are not
              linked  in. Again the packages are separated by commas and/or whitespace.

         -dllpath-pkg package-name-list

              For  these  packages  -dllpath options  are added to the compiler command. This may be useful when
              the ld.conf  file is not properly configured.

         -dllpath-all

              For all linked packages -dllpath options  are added to the compiler command. This  may  be  useful
              when the ld.conf  file is not properly configured.

         -passopt arg

              The  argument  arg  is    passed  directly  to the underlying compiler. This is needed to  specify
              undocumented compiler options.

         -passrest arg...

              All following arguments arg... are  passed directly to the underlying compiler. This is needed to
              specify undocumented compiler options.

         -only-show

              Only prints the constructed command (ocamlc/ocamlopt)  to    stdout,  but  does  not  execute  the
              command. (This is for the unlikely event  that you need a wrapper around ocamlfind.)

         -verbose

              This standard option is interpreted by the driver, too.

         -thread

              This  standard option causes that the predicate "mt"  is added to the set of actual predicates. If
              POSIX threads are available,  the predicate "mt_posix" is selected, too. If only VM threads  are
              available,  the  predicate  "mt_vm"  is included into the set, and the  compiler switch is changed
              into -vmthread.

              Note that the presence of the "mt" predicate triggers special fixup of the dependency  graph  (see
              below).

         -vmthread

              This  standard  option causes that the predicates "mt"  and "mt_vm" are added to the set of actual
              predicates.

              Note that the presence of the "mt" predicate triggers special fixup of the dependency  graph  (see
              below).

         -p

              This  standard  option  of  "ocamlopt"  causes  that the  predicate "gprof" is added to the set of
              actual predicates.

   Options for preprocessing
       The options relevant for the preprocessor are the following:

         -package package-name-list

              These packages are considered while looking up the  preprocessor arguments.  (It  does  not  cause
              problems  that  the same  -package option is used for this purpose, because the set of predicates
              is different.) It is recommended to mention at least camlp4  here if the preprocessor is going  to
              be used.

         -syntax pred-name-list

              These  predicates are assumed to be true in addition  to the standard preprocessor predicates. See
              below for a list.

         -ppopt camlp4-arg

              This argument is passed to the camlp4 call.

         -ppxopt package,arg

              Add arg to the ppx  preprocessor invocation specified via the "ppx" property in  the META file  of
              package.

   Predicates for compiling and linking
         byte

              The  "byte"  predicate  means  that  one  of  the  bytecode compilers is used. It is automatically
              included into the predicate set if the "ocamlc", "ocamlcp", or "ocamlmktop" compiler is used.

         native

              The "native" predicate means that the native compiler is used. It is automatically  included  into
              the predicate set if the "ocamlopt" compiler is used.

         toploop

              The  "toploop" predicate means that the toploop is available in the linked program. This predicate
              is only set when the toploop is actually being executed, not when the  toploop  is  created  (this
              changed in version 1.0.4 of findlib).

         create_toploop

              This predicate means that a toploop is being created (using ocamlmktop).

         mt

              The "mt" predicate means that the program is multi-threaded. It is automatically included into the
              predicate set if the -thread option is given.

         mt_posix

              The  "mt_posix" predicate means that in the case "mt" is set, too, the POSIX libraries are used to
              implement threads. "mt_posix" is automatically included into the predicate  set  if  the  variable
              "type_of_threads"  in the META description of the "threads" package has the value "posix". This is
              normally the case if "findlib" is configured for POSIX threads.

         mt_vm

              The "mt_vm" predicate means that in the case "mt" is set, too, the VM thread emulation is used  to
              implement multi-threading.

         gprof

              The  "gprof"  predicate  means  that in the case "native" is set, too, the program is compiled for
              profiling. It is automatically included into the predicate set if "ocamlopt" is used  and  the  -p
              option is in effect.

         autolink

              The  "autolink"  predicate  means  that  ocamlc  is  able  to  perform  automatic  linking.  It is
              automatically included into the predicate set if ocamlc  knows  automatic  linking  (from  version
              3.00), but it is not set if the -noautolink option is set.

         syntax

              This  predicate  is set if there is a -syntax  option. It is set both for the preprocessor and the
              compiler/linker stage,  and it can be used to find out whether the preprocessor is enabled or not.

   Predicates for preprocessing
         preprocessor

              This predicate is always set while looking up the  preprocessor  arguments.  It  can  be  used  to
              distinguish between the  preprocessor stage and the compiler/linker stage.

         syntax

              This  predicate  is set if there is a -syntax  option. It is set both for the preprocessor and the
              compiler/linker stage,  and it can be used to find out whether the preprocessor is enabled or not.

         camlp4o

              This is the reserved predicate for the standard OCaml syntax.  It  can  be  used  in  the  -syntax
              predicate list.

         camlp4r

              This  is  the  reserved  predicate  for  the  revised OCaml syntax.  It can be used in the -syntax
              predicate list.

   Special behaviour of 'ocamlmktop'
       As there is a special module Topfind that supports loading  of  packages  in  scripts,  the  "ocamlmktop"
       subcommand  can add initialization code for this module. This extra code is linked into the executable if
       "findlib" is in the set of effectively linked packages.

   Fixup of the dependency graph for multi-threading
       For a number of reasons the presence of the "mt" predicate triggers that (1)  the  package  "threads"  is
       added  to  the  list of required packages and (2) the package "threads" becomes prerequisite of all other
       packages (except of itself and a few hardcoded exceptions). The effect is that the  options  -thread  and
       -vmthread  automatically  select  the  "threads"  package,  and  that  "threads" is inserted at the right
       position in the package list.

   Extended file naming
       At a number of places one can not only refer to files by absolute or relative path  names,  but  also  by
       extended  names.  These  have  two  major  forms: "+name" refers to the subdirectory name of the standard
       library directory, and "@name" refers to the package directory of the package name.  Both  forms  can  be
       continued by a path, e.g. "@netstring/netstring_top.cma".

       You can use extended names: (1) With -I options, (2) as normal file arguments of the compiler, (3) in the
        "archive" property of packages.

   How to set the names of the compiler executables
       Normally,  the  OCaml  bytecode compiler can be called under the name ocamlc. However, this is not always
       true; sometimes a different name is chosen.

       You can instruct ocamlfind to call executables with other names than ocamlc,  ocamlopt,  ocamlmktop,  and
       ocamlcp.  If  present,  the  environment variable OCAMLFIND_COMMANDS is interpreted as a mapping from the
       standard names to the actual names of the executables. It must have the following format:

       standardname1=actualname1 standardname2=actualname2 ...

       Example: You may set OCAMLFIND_COMMANDS as follows:

       OCAMLFIND_COMMANDS='ocamlc=ocamlc-3.00 ocamlopt=ocamlopt-3.00'
       export OCAMLFIND_COMMANDS

       Alternatively, you can change the configuration file findlib.conf.

THE SUBCOMMAND 'ocamlmklib'

   Synopsis
       ocamlfind ocamlmklib
                 [ -package package-name-list |
                   -predicates pred-name-list |
                   -dllpath-pkg package-name-list |
                   -dllpath-all |
                   -passopt arg |
                   -passrest arg... |
                   standard-option ]
                   file ...

   Description
       This is a wrapper around ocamlmklib, and creates library archives and DLLs. In addition to  the  standard
       options,  one  can  use  -package  to add the search path of packages. Note that no predicates are set by
       default - the wrapper does not know whether this is about byte or native code linking.

       This wrapper is mostly provided for completeness.

THE 'ocamldep' SUBCOMMAND

   Synopsis
       ocamlfind ocamldep [-package package-name-list |
                           -syntax pred-name-list |
                           -ppopt camlp4-arg |
                           -passopt arg |
                           -passrest arg... |
                           -verbose |
                           standard-option] file ...

   Description
       This command is a driver for the tool ocamldep of the OCaml distribution. This driver is only  useful  in
       conjunction  with  the  preprocessor  camlp4;  otherwise it does not provide more functions than ocamldep
       itself.

   Options
       Here, only the additional options not interpreted by ocamldep but by the driver itself, and options  with
       additional effects are explained.

         -package package-name-list

              The  packages  named  here  are  only used to look up the preprocessor options. The package camlp4
              should be specified anyway, but further packages that add capabilities  to  the  preprocessor  can
              also be passed.

         -syntax pred-name-list

              The predicates that are in effect during the look-up of the preprocessor options. At least, either
              camlp4o  (selecting  the  normal  syntax),  or  camlp4r  (selecting  the revised syntax) should be
              specified.

         -ppopt camlp4-arg

              An option that is passed through to the camlp4 call.

         -passopt arg

              An option that is passed through to the ocamldep call.

         -passrest arg...

              All further arguments are passed down to ocamldep  unprocessed

         -verbose

              Displays the resulting ocamldep command (for debugging)

   Example
       A typical way of using this driver:

       ocamlfind ocamldep -package camlp4,xstrp4 -syntax camlp4r file1.ml file2.ml
         This command outputs the dependencies of file1.ml and file2.ml, although these modules make use of  the
       syntax extensions provided by xstrp4 and are written in revised syntax.

THE 'ocamlbrowser' SUBCOMMAND

   Synopsis
       ocamlfind ocamlbrowser [-package package-name-list |
                               -all |
                               -passopt arg
                               -passrest ]

   Description
       This  driver  calls  the  ocamlbrowser  with  package  options. With -package, the specified packages are
       included into the search path of the browser, and the  modules  of  these  packages  become  visible  (in
       addition to the standard library). The option -all causes that all packages are selected that are managed
       by findlib.

       As  for  other  drivers, the options -passopt and -passrest can be used to pass arguments directly to the
       ocamlbrowser program.

THE SUBCOMMAND 'ocamldoc'

   Synopsis
       ocamlfind ocamldoc
                 [ -package package-name-list |
                   -predicates pred-name-list |
                   -syntax pred-name-list |
                   -ppopt camlp4-arg |
                   standard-option ]
                 file ...

   Description
       This subcommand is a driver for ocamldoc. It undestands all options ocamldoc supports plus the  mentioned
       findlib  options. Basically, the -package options are translated into -I options, and the selected syntax
       options are translated into camlp4 options.

   Options
       Here, only the additional options not interpreted by ocamldep but by the driver itself, and options  with
       additional effects are explained.

         -package package-name-list

              Adds the listed package names to the set of included  packages. The package names may be separated
              by  commas  and/or    whitespace.  In  the  transformed  command, for every package of the set  of
              included packages and for any ancestor a directory search option  is inserted  after  the  already
              given options. This means that  "-I" options are added for every package directory.

         -predicates pred-name-list

              Adds  the  given  predicates to the set of actual  predicates. The predicates must be separated by
              commas and/or  whitespace.

         -syntax pred-name-list

              The predicates that are in effect during the look-up of the preprocessor options. At least, either
              camlp4o (selecting the normal syntax),  or  camlp4r  (selecting  the  revised  syntax)  should  be
              specified.

         -ppopt camlp4-arg

              An option that is passed through to the camlp4 call.

THE 'install' SUBCOMMAND

   Synopsis
       ocamlfind install [ -destdir directory ]
                         [ -metadir directory ]
                         [ -ldconf path ]
                         [ -dont-add-directory-directive ]
                         [ -patch-version string ]
                         [ -patch-rmpkg name ]
                         [ -patch-archives ]
                         [ -dll ] [ -nodll ] [ -optional ] [ -add ]
                         package_name file ...

   Description
       This  subcommand  installs  a  new  package  either  at the default location (see the variable destdir of
       findlib.conf), or in the directory specified by the -destdir  option.  This  means  that  a  new  package
       directory  is created and that the files on the command line are copied to this directory. It is required
       that a META file is one of the files copied to the target directory.

       Note  that  package  directories  should  be  flat  (no  subdirectories).  Existing  packages  are  never
       overwritten.

       It  is possible to have a separate directory for all the META files. If you want that, you have either to
       set the variable metadir of  findlib.conf, or to specify the -metadir option.  In  this  case,  the  file
       called  META  is  copied  to the specified directory and renamed to META.p (where p is the package name),
       while all the other files are copied to the package directory as usual. Furthermore,  the  META  file  is
       modified such that the directory variable contains the path of the package directory.

       The option -dont-add-directory-directive prevents the installer from adding a directory variable.

       If  there  are  files  ending in the suffixes .so or .dll, the package directory will be added to the DLL
       configuration file ld.conf, such that the dynamic loader can find the DLL. The location of this file  can
       be  overriden by the -ldconf option. To turn this feature off, use "-ldconf ignore"; this causes that the
       ld.conf file is not modified.

       However, if there is a stublibs directory in  site-lib,  the  DLLs  are  not  installed  in  the  package
       directory,  but in this directory that is shared by all packages that are installed at the same location.
       In this case, the configuration file ld.conf is not modified, so you do not need to say "-ldconf  ignore"
       if you prefer this style of installation.

       The  options  -dll and -nodll can be used to control exactly which files are considered as DLLs and which
       not. By default, the mentioned suffix rule is in effect: files ending in ".so" (Unix) or ".dll" (Windows)
       are DLLs. The switch -dll changes this, and all following files are considered  as  DLLs,  regardless  of
       their  suffix.  The  switch   -nodll expresses that the following files are not DLLs, even if they have a
       DLL-like suffix. For example, in the following call the files f1 and f2 are handled by the  suffix  rule;
       f3 and f4 are DLLs anyway; and f5 and f6 are not DLLs:

       ocamlfind install p f1 f2 -dll f3 f4 -nodll f5 f6

       The  switch  -optional  declares that all following files are optional, i.e. the command will not fail if
       files do not exist.

       The -patch options may be used to change the contents of the META files while it is being installed.  The
       option  -patch-version  changes the contents of the top-level "version" variable. The option -patch-rmpkg
       removes the given subpackage. The option -patch-archives is experimental, in particular  it  removes  all
       non-existing files from "archive" variables, and even whole subpackages if the archives are missing.

       The effect of -add is to add further files to an already installed packages.

THE 'remove' SUBCOMMAND

   Synopsis
       ocamlfind remove [ -destdir directory ]
                        [ -metadir directory ]
                        [ -ldconf path ]
                        package_name

   Description
       The  package  will  removed  if  it  is  installed  at the default location  (see the variable destdir of
       findlib.conf). If the package resides at a different  location,  it  will  not  be  removed  by  default;
       however,  you can pass an alternate directory for packages by the -destdir option. (This must be the same
       directory as specified at installation time.)

       Note that package directories should be flat (no subdirectories);  this  subcommand  cannot  remove  deep
       package directories.

       If  you have a separate directory for META files, you must either configure this directory by the metadir
       variable of findlib.conf, or by specifying the -metadir option.

       The command does not fail if the package and/or the META file cannot be located. You will get  a  warning
       only in this case.

       If  the  package  directory  is mentioned in the ld.conf configuration file for DLLs, it will be tried to
       remove this entry from the file. The location of this file can be overriden by  the  -ldconf  option.  To
       turn this feature off, use "-ldconf ignore"; this causes that the ld.conf file is not modified.

       If  there  is  a  stublibs  directory,  it  is  checked whether the package owns any of the files in this
       directory, and the owned files will be deleted.

THE 'list' SUBCOMMAND

   Synopsis
       ocamlfind list [-describe]

   Description
       This command  lists  all  packages  in  the  search  path.  The  option  -describe  outputs  the  package
       descriptions, too.

THE 'printppx' SUBCOMMAND

   Synopsis
       ocamlfind printppx
                 [ -predicates pred-name-list ]
                 [ -ppxopt package,arg ]
                 package ...

   Description
       This  command prints the ppx preprocessor options as they would occur in an OCaml compiler invocation for
       the packages listed in the command. The output includes one "-ppx"  option  for  each  preprocessor.  The
       possible  options  have the same meaning as for "ocamlfind ocamlc". The option "-predicates" adds assumed
       predicates and "-ppxopt package,arg" adds "arg" to the ppx invocation of package package.

       The output of "ocamlfind printppx" will contain quotes """ for ppx commands that contain  space-separated
       arguments.  In  this  case  $(ocamlfind printppx ...) won't work as naively expected, because many shells
       (including bash and dash) perform field splitting on the result of command substitutions without honoring
       quotes.

THE 'lint' SUBCOMMAND

   Synopsis
       ocamlfind lint file

   Description
       Checks the META file, and reports possible problems.

THE 'printconf' SUBCOMMAND

   Synopsis
       ocamlfind printconf [ conf | path | destdir | metadir | metapath | stdlib | ldconf ]

   Description
       This command prints the effective configuration after reading the configuration file, and after  applying
       the  various environment variables overriding settings. When called without arguments, the command prints
       all configuration options in a human-readable form. When called with an argument, only the value  of  the
       requested option is printed without explaining texts:

         conf

              Prints the location of the configuration file findlib.conf

         path

              Prints the search path for packages. The members of the  path are separated by linefeeds.

         destdir

              Prints the location where package are installed and  removed by default.

         metadir

              Prints  the  location  where  META  files are installed and  removed (if the alternative layout is
              used).

         metapath

              Prints the path where the META file is installed for a fictive package. The name of the package is
              marked with '%s' in the path. For instance, this  command  could  output  "/some/path/%s/META"  or
              "/some/path/META.%s", depending on the layout.

         stdlib

              Prints the location of the standard library.

         ldconf

              Prints the location of the ld.conf file

THE SUBCOMMAND CALLING PACKAGE PROGRAMS

   Synopsis
       ocamlfind pkg/cmd argument ...

   Description
       This  subcommand  is  useful  to call programs that are installed in package directories. It looks up the
       directory for  pkg and calls the command named cmd in this directory. The remaining arguments are  passed
       to this command.

       argv(0) contains the absolute path to the command, and argv(1) and the following argv entries contain the
       arguments. The working directory is not changed.

       Example: To call the program "x" that is installed in package "p", with arguments "y" and "z", run:

       ocamlfind p/x y z

CONFIGURATION FILE, ENVIRONMENT VARIABLES

       The configuration file and environment variables are documented in the manual page for  findlib.conf.

HOW TO SET THE TOOLCHAIN

   Synopsis
       ocamlfind -toolchain name ...

   Description
       The -toolchain option can be given before any other command, e.g.

       ocamlfind -toolchain foo ocamlc -c file.ml
        compiles file.ml with toolchain "foo". By selecting toolchains one can switch to different command sets.
       For  instance,  the  toolchain  "foo" may consist of a patched ocamlc compiler.   See findlib.conf how to
       configure toolchains.

User Manual                           The findlib package manager for OCaml                         ocamlfind(1)