---
name: "jocamldep"
section: "1"
platform: "linux"
package: "jocaml"
version: "4.01.0-3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/jocamldep"
---

# jocamldep(1)

Dependency generator for JoCaml

## NAME

jocamldep - Dependency generator for JoCaml

## SYNOPSIS

**jocamldep** \[ **-I** *lib-dir* \] *filename ...*

## DESCRIPTION

The  [**jocamldep**(1)](/jocamldep/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:

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

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

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

## OPTIONS

The following command-line option is recognized by  [**jocamldep**(1)](/jocamldep/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 form the standard library, and no dependencies are generated. For programs that span multiple directories, it is recommended to pass  [**jocamldep**(1)](/jocamldep/1.md) the same -I options that are passed to the compiler.

- **-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), [**jocamldep**(1)](/jocamldep/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.)

## SEE ALSO

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