Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ocamlfind(1)		     General Commands Manual		    ocamlfind(1)

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 attrib-
     utes of them. If the option -recursive (short: -r) is  not  specified,  ex-
     actly  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 suf-
     fix 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  ances-
	    tors. 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 un-
     derstand all documented options of the compilers (here called  standard-op-
     tions),  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 argu-
     ments.

     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 pre-
     processor 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 pack-
	    ages and for any ancestor a directory search option  is inserted af-
	    ter 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 com-
	    mand. This may be useful when the ld.conf  file is not properly con-
	    figured.

       -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 underly-
	    ing compiler. This is needed to  specify undocumented  compiler  op-
	    tions.

       -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 pred-
	    icate  "mt_posix"  is  selected, too. If only VM threads are  avail-
	    able, the predicate "mt_vm" is included into the set, and the   com-
	    piler 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 ar-
	    guments.  (It does not cause problems that the same  -package option
	    is used for this purpose, because the set of predicates  is  differ-
	    ent.) It is recommended to mention at least camlp4	here if the pre-
	    processor 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" com-
	    piler 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 actu-
	    ally  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 ocamlmk-
	    top).

       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 au-
	    tomatically   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 auto-
	    matic 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 ar-
	    guments. 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  rela-
     tive  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 argu-
     ments 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  pre-
	    processor  options.  At  least, either camlp4o (selecting the normal
	    syntax), or camlp4r (selecting the revised syntax) should be  speci-
	    fied.

       -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 ocaml-
     doc 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 pack-
	    ages and for any ancestor a directory search option  is inserted af-
	    ter 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  pre-
	    processor  options.  At  least, either camlp4o (selecting the normal
	    syntax), or camlp4r (selecting the revised syntax) should be  speci-
	    fied.

       -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 re-
     quired 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  direc-
     tory  as usual. Furthermore, the META file is modified such that the direc-
     tory 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  direc-
     tory will be added to the DLL configuration file ld.conf, such that the dy-
     namic  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 in-
     stalled 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 "-ld-
     conf 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  pack-
     ages.

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  differ-
     ent  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 sub-
     command 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 lo-
     cated. 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 out-
     put 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 in-
     vocation 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 configu-
     ration file, and after applying the various environment variables	overrid-
     ing settings. When called without arguments, the command prints all config-
     uration  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 de-
	    fault.

       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 pack-
	    age.  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 fol-
     lowing argv entries contain the arguments. The  working  directory  is  not
     changed.

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

     ocamlfind p/x y z

CONFIGURATION FILE, ENVIRONMENT VARIABLES
     The configuration file and environment variables are documented in the man-
     ual 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)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ocamlfind&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help