---
name: "mkdep"
section: "1"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/mkdep"
---

# mkdep(1)

construct Makefile dependency list

## NAME

**mkdep** – construct Makefile dependency list

## SYNOPSIS

**mkdep** \[**-ap**\] \[**-f** *file*\] \[*flags*\] *file ...*

## DESCRIPTION

The **mkdep** utility takes a set of flags for the C compiler and a list of C source files as arguments and constructs a set of include file dependencies which are written into the file \`\`.depend''. An example of its use in a Makefile might be:

```
CFLAGS= -O -I../include
SRCS= file1.c file2.c
depend:
	mkdep ${CFLAGS} ${SRCS}
```

where the macro SRCS is the list of C source files and the macro CFLAGS is the list of flags for the C compiler.

The user has the ability to change the preprocessor and preprocessor options used. For instance, to use **cc** as the preprocessor and to ignore system headers, one would use

```
depend:
	env MKDEP_CPP="cc -E" MKDEP_CPP_OPTS=-MM mkdep \
		${CFLAGS} ${SRCS}
```

The options are as follows:

- **-a**

  Append to the output file, so that multiple **mkdep**'s may be run from a single Makefile.

- **-f**

  Write the include file dependencies to *file*, instead of the default \`\`.depend''.

- **-p**

  Cause **mkdep** to produce dependencies of the form:

  ```
  program: program.c
  ```

  so that subsequent makes will produce *program* directly from its C module rather than using an intermediate *.o* module. This is useful for programs whose source is contained in a single module.

## ENVIRONMENT

- CC

  Specifies the C compiler to use. The specified compiler is expected to have options consistent with the GNU C compiler. The default is **cc**.

- MKDEP\_CPP

  Specifies the preprocessor to use. The default is "${CC} -E".

- MKDEP\_CPP\_OPTS

  Specifies the non-CFLAGS options for the preprocessor. The default is "-M".

## FILES

- *.depend*

  File containing list of dependencies.

## SEE ALSO

[cc(1)](/cc/1.md), [cpp(1)](/cpp/1.md), [make(1)](/make/1.md)

## HISTORY

The **mkdep** command appeared in 4.3BSD-Tahoe.
