---
name: "i586-mingw32msvc-ocamldep"
section: "1"
platform: "linux"
package: "mingw32-ocaml"
version: "3.11.2+debian4"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/ocamldep"
---

# i586-mingw32msvc-ocamldep(1)

Dependency generator for Objective Caml

Part of [ocamldep(1)](/ocamldep/1.md).

## NAME

ocamldep - Dependency generator for Objective Caml

## SYNOPSIS

**ocamldep** \[ *options* \] *filename ...*

## DESCRIPTION

The [**ocamldep**(1)](/ocamldep/1.md) command scans a set of Objective Caml source files (.ml and .mli files) for references to external compilation units, and outputs dependency lines in a format suitable for the [**make**(1)](/make/1.md) utility. This ensures that make will compile the source files in the correct order, and recompile those files that need to when a source file is modified.

The typical usage is:

ocamldep *options* \*.mli \*.ml \> .depend

where .depend is the file that should contain the dependencies.

Dependencies are generated both for compiling with the bytecode compiler [**ocamlc**(1)](/ocamlc/1.md) and with the native-code compiler [**ocamlopt**(1)](/ocamlopt/1.md).

## OPTIONS

The following command-line options are recognized by [**ocamldep**(1)](/ocamldep/1.md).

- **-I** *directory*

  Add the given directory to the list of directories searched for source files. If a source file foo.ml mentions an external compilation unit Bar, a dependency on that unit's interface bar.cmi is generated only if the source for bar is found in the current directory or in one of the directories specified with **-I**. Otherwise, Bar is assumed to be a module from the standard library, and no dependencies are generated. For programs that span multiple directories, it is recommended to pass [**ocamldep**(1)](/ocamldep/1.md) the same **-I** options that are passed to the compiler.

- **-modules**

  Output raw dependencies of the form *filename*: *Module1 Module2* ... *ModuleN* where *Module1*, ..., *ModuleN* are the names of the compilation units referenced within the file *filename*, but these names are not resolved to source file names.  Such raw dependencies cannot be used by [**make**(1)](/make/1.md), but can be post-processed by other tools such as **Omake**(1).

- **-native**

  Generate dependencies for a pure native-code program (no bytecode version).  When an implementation file (.ml file) has no explicit interface file (.mli file), [**ocamldep**(1)](/ocamldep/1.md) generates dependencies on the bytecode compiled file (.cmo file) to reflect interface changes. This can cause unnecessary bytecode recompilations for programs that are compiled to native-code only.  The flag **-native** causes dependencies on native compiled files (.cmx) to be generated instead of on .cmo files.  (This flag makes no difference if all source files have explicit .mli interface files.)

- **-pp** *command*

  Cause [**ocamldep**(1)](/ocamldep/1.md) to call the given *command* as a preprocessor for each source file.

- **-slash**

  Under Unix, this option does nothing.

- **-version**

  Print version and exit.

- **-help** or **--help**

  Display a short usage summary and exit.

## SEE ALSO

[**ocamlc**(1)](/ocamlc/1.md), [**ocamlopt**(1)](/ocamlopt/1.md).\
 *The Objective Caml user's manual*, chapter "Dependency generator".
