---
name: "mkdep"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
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

**mkdep** 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*, for use by [make(1)](/make/1.md). 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 options are as follows:

- **-a**

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

- **-f** *file*

  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.

## 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.
