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

FreeBSD Manual Pages

  
 
  

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

NAME
       ocamlbuild - The	OCaml project compilation tool

SYNOPSIS
       ocamlbuild  [  -Is  dir1,...  ] [ -libs lib1,...	 ] [ -lflags flag1,...
       ] [ -pp flags ] [ -tags tag1,...	 ] [ -j	 parallel-jobs ] target.native
       [ -- arg1 arg2 ...  ]

       (same options)

DESCRIPTION
       ocamlbuild(1)  orchestrates  the	 compilation  process  of  your	 OCaml
       project.	  It  is similar in function to	make(1)	except that it is tai-
       lor-made	to automatically compile most OCaml projects with very	little
       user input.

       ocamlbuild should be invoked in the root	of a clean project tree	(e.g.,
       with no leftover	compilation files).  Given one or more targets to com-
       pile,  it scans the required subdirectories to gather information about
       the various files present, running tools	such as	ocamldep(1) to extract
       dependency information, and gathering optional files that fine-tune its
       behaviour.  Target names	are very significant.

TARGET NAMES
       ocamlbuild uses a set of	target naming conventions to select  the  kind
       of  objects  to	produce.   Target names	are of the form	base.extension
       where base is usually the name of the underlying	OCaml module  and  ex-
       tension	denotes	the kind of object to produce from that	file --	a byte
       code executable,	a native executable, documentation...  Of  course  ex-
       tensions	 such as .cmo, .cma, .cmi...  map to their usual counterparts.
       Here is a list of the most important ocamlbuild-specific	extensions:

       .native		   Native code executable

       .byte		   Byte	code executable

       .inferred.mli	   Interface inferred with ocamlc-i

       .docdir/index.html  HTML	documentation generated	with ocamldoc

OPTIONS
       The following command-line options are recognized by ocamlbuild(1).

       -version
	      Display the version

       --version
	      same as -version

       -vnum  Display the version number

       --vnum same as -vnum

       -quiet Make as quiet as possible

       -verbose	<level>
	      Set the verbosity	level on a scale from 0	to 8 (included)

       -documentation
	      Show rules and flags

       -log <file>
	      Set log file

       -no-log
	      No log file

       -clean Remove build directory and other files, then exit

       -r     Traverse directories by default (true: traverse)

       -I <path>
	      Add to include directories

       -Is <path,...>
	      (same as above, but accepts a (comma or blank)-separated list)

       -X <path>
	      Directory	to ignore

       -Xs <path,...>
	      (idem)

       -lib <flag>
	      Link to this ocaml library

       -libs <flag,...>
	      (idem)

       -mod <module>
	      Link to this ocaml module

       -mods <module,...>
	      (idem)

       -pkg <package>
	      Link to this ocaml findlib package

       -pkgs <package,...>
	      (idem)

       -package	<package>
	      (idem)

       -syntax <syntax>
	      Specify syntax using ocamlfind

       -lflag <flag>
	      Add to ocamlc link flags

       -lflags <flag,...>
	      (idem)

       -cflag <flag>
	      Add to ocamlc compile flags

       -cflags <flag,...>
	      (idem)

       -docflag	<flag>
	      Add to ocamldoc flags

       -docflags <flag,...>
	      (idem)

       -yaccflag <flag>
	      Add to ocamlyacc flags

       -yaccflags <flag,...>
	      (idem)

       -lexflag	<flag>
	      Add to ocamllex flags

       -lexflags <flag,...>
	      (idem)

       -ppflag <flag>
	      Add to ocaml preprocessing flags

       -pp <flag,...>
	      (idem)

       -tag <tag>
	      Add to default tags

       -tags <tag,...>
	      (idem)

       -plugin-tag <tag>
	      Use this tag when	compiling the myocamlbuild.ml plugin

       -plugin-tags <tag,...>
	      (idem)

       -tag-line <tag>
	      Use this line of tags (as	in _tags)

       -show-tags <path>
	      Show tags	that applies on	that pathname

       -ignore <module,...>
	      Don't try	to build these modules

       -no-links
	      Don't make links of produced final targets

       -no-skip
	      Don't skip modules that are requested by ocamldep	but cannot  be
	      built

       -no-hygiene
	      Don't apply sanity-check rules

       -no-plugin
	      Don't build myocamlbuild.ml

       -no-stdlib
	      Don't ignore stdlib modules

       -dont-catch-errors
	      Don't  catch  and	display	exceptions (useful to display the call
	      stack)

       -just-plugin
	      Just build myocamlbuild.ml

       -byte-plugin
	      Don't use	a native plugin	but bytecode

       -plugin-option
	      Use the option only when plugin is run

       -sanitization-script
	      Change the file name for the generated sanitization script

       -no-sanitize
	      Do not generate sanitization script

       -nothing-should-be-rebuilt
	      Fail if something	needs to be rebuilt

       -classic-display
	      Display executed commands	the old-fashioned way

       -use-menhir
	      Use menhir instead of ocamlyacc

       -use-jocaml
	      Use jocaml compilers instead of ocaml ones

       -use-ocamlfind
	      Use the 'ocamlfind' wrapper instead of using Findlib directly to
	      determine	command-line arguments.	Use -no-ocamlfind to  disable.
	      Implies -plugin-use-ocamlfind.

       -no-ocamlfind
	      Don't use	ocamlfind. Implies -plugin-no-ocamlfind.

       -plugin-use-ocamlfind
	      Use the 'ocamlfind' wrapper for building myocamlbuild.ml

       -plugin-no-ocamlfind
	      Don't use	ocamlfind for building myocamlbuild.ml

       -toolchain <toolchain>
	      Set  the	Findlib	toolchain to use. The default toolchain	is al-
	      ways used	for building myocamlbuild.ml.

       -j <N> Allow N jobs at once (0 for unlimited)

       -build-dir <path>
	      Set build	directory (implies no-links)

       -install-lib-dir	<path>
	      Set the install library directory

       -install-bin-dir	<path>
	      Set the install binary directory

       -where Display the install library directory

       -which <command>
	      Display path to the tool command

       -ocamlc <command>
	      Set the OCaml bytecode compiler

       -plugin-ocamlc <command>
	      Set the OCaml bytecode  compiler	used  when  building  myocaml-
	      build.ml (only)

       -ocamlopt <command>
	      Set the OCaml native compiler

       -plugin-ocamlopt	<command>
	      Set the OCaml native compiler used when building myocamlbuild.ml
	      (only)

       -ocamldep <command>
	      Set the OCaml dependency tool

       -ocamldoc <command>
	      Set the OCaml documentation generator

       -ocamlyacc <command>
	      Set the ocamlyacc	tool

       -menhir <command>
	      Set the menhir tool (use it after	-use-menhir)

       -ocamllex <command>
	      Set the ocamllex tool

       -ocamlmklib <command>
	      Set the ocamlmklib tool

       -ocamlmktop <command>
	      Set the ocamlmktop tool

       -ocamlrun <command>
	      Set the ocamlrun tool

       --     Stop  argument  processing, remaining arguments are given	to the
	      user program

       -help  Display this list	of options

       --help Display this list	of options

SEE ALSO
       The ocamlbuild manual, ocaml(1),	make(1).
       The OCaml user's	manual,	chapter	Batch compilation .

								 OCAMLBUILD(1)

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

home | help