md(1) BSD General Commands Manual md(1)


md — process raw dependency files produced by cpp -MD


md [−d] [−f] [−m makefile] [−u makefile] [−o outputfile] [−v] [−x] [−D c|d|m|o|t|D]


The md command basically does two things:

Process the raw dependency files produced by the cpp -MD option. There is one line in the file for every #include encountered, but there are repeats and patterns like .../dir1/../dir2 that appear which should reduce to .../dir2. md canonicalizes and flushes repeats from the dependency list. It also sorts the file names and "fills" them to a 78 character line.

md also updates the makefile directly with the dependency information, so the .d file can be thrown away (see d option). This is done to save space. md assumes that dependency information in the makefile is sorted by .o file name and it procedes to merge in (add/or replace [as appropriate]) the new dependency lines that it has generated. For time effeciency, md assumes that any .d files it is given that were created before the creation date of the "makefile" were processed already. It ignores them unless the force flag [f] is given.


−d delete the .d file after it is processed

−f force an update of the dependencies in the makefile even though the makefile is more recent than the .n file (This implies that md has been run already.)

−m makefile specify the makefile to be upgraded. The defaults are makefile and then Makefile

−u makefile like -m above, but the file will be created if necessary

−o outputfile specify an output file for the dependencies other than a makefile

−v set the verbose flag

−x expunge old dependency info from makefile

−D c|d|m|o|t|D subswitch for debugging. can be followed by any of "c", "d", "m", "o", "t", "D" meaning:

c show file contents
d show new dependency crunching
m show generation of makefile
o show files being opened
t show time comparisons
D show very low level debugging




Old, possibly not used by anyone.


The md utility was written by Robert V Baron at Carnegie-Mellon University.

BSD March 28, 2017 BSD