---
name: "freebsd-mkdep"
section: "1"
platform: "linux"
package: "freebsd-buildutils"
version: "10.3~svn296373-7"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/freebsd-mkdep"
---

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