Dep Software Build Automation Tool

dep is a software build automation tool, similar in function to make.

It features:

Overview

dep's language requires little more than the build commands that it must run. For example, this:

cc -o fnord.o -c fnord.c

is a complete build rule in dep. With a careful reading of the command, dep can tell that it:

The little more that dep needs is the syntax of the command-line options, which is provided by a line such as:

syntax -mixed gcc -g -f: -I:%includedir -W: -o:%out -c -l:%library -L:%libdir -.\* %in

in /etc/depsyntax .

dep provides, but does not require, a syntax for include files. It looks like this:

fileinfo fnord.cpp OK 2022-11-22 12:34:56.789 123456 includes foo.h

(There is a little more information in there, namely a build state, a modification time, and a file size). But that is for a cached copy of the information. Most often, dep simply uses the native include syntax, by reading the source file directly and looking for lines such as:

#include "foo.h"

dep can also easily handle multiple build projects, similar to make's recursive functionality, but without requiring recursion. dep simply includes all of a subprojects rules, and runs them as necessary. Usually they will be in different directories; dep will change the filenames as necessary, and change directory before running any commands found there.

dep also runs its build commands in parallel whenever possible.

DEP vs MAKE

UNIX make, GNU make are successful build tools and GNU make in particular is still being improved. dep, however, is deliberately a break from the past. It is intended to be a successor to make, but not compatible. There are two fundamental reasons for this:

In addition, in comparison to GNU make, there are several things that dep can do that make can't. These are:

There are also things that dep does considerably better:

And there are things that dep simply makes easier:

There are also some features of GNU make that dep deliberately does not attempt to replicate:

And there are some features that dep implements quite differently:

dep is written in C++ .

Contact

Have you found a bug? Got a suggestion? Maybe it's working perfectly! Let me know how you go.

Email me (Matthew Rickard) at dep@depbuild.org

Release Notes

dep 0.5

dep 0.5 was released on 12 October 2024. Changes are:

dep 0.4

dep 0.4 was released on 30 May 2023. Changes are:

dep 0.3

dep 0.3 was released on 9 March 2023. Changes are:

dep 0.2

dep 0.2 was released on 16 February 2023. Changes are:

dep 0.1

dep 0.1 was released on 7 December 2022.

Copyright and Licence

Copyright (C) 2022 Matthew Rickard

dep is free software licenced under the GNU General Public Licence version 3.