Daybo Logic Dependency tool
Copyright (C) 2001-2016 David Duncan Ross Palmer, Daybo Logic.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
14 Walcot Parade,
The Daybo Logic dependency program is simply a method to help out on
systems which don't support autodependencies. Autodependencies are
good things, they mean that 'make' knows about headers that a C file
depends upon, as well as the C files and the programs and libraries
that need those C files. Without autodependencies, often a change to
a header will not cause a rebuild, which will mean somebody will have
to rebuild the entire project! Which could take hours depending on
the size of the project. I recommend Borland for autodependencies.
daybodep has been ported to the major operating systems, source code
is best for UNIX or UNIX based systems such as GNU. For DOS or Win32,
prebuilt binaries are available from our website. Our website will keep
the latest copies of the source too. Please visit:
to keep this tool up to date.
daybodep is a simple module. It works like this:
$ daybodep -Iinc file1.c file2.c @responsefile > .depend
| | | | | |
| | | | | \--- Output dependencies
| | | | |
| | | | \------------------- Extra files
| | | |
| | \----------------------------------- Source files
| \----------------------------------------- Include path
Program = The name of the program, daybodep or ./daybodep
-I = Set the path for headers, use as many -I paths as you need
Source files = The sources files to scan for dependencies
Extra files = If you need more source files than will fit on the command
line. Always start with an at sign, list files one per line.
Output dependencies = A structured list of dependencies to append to the
There are also some options, a quick reminder of the syntax and options
are available by using the option --help or just -h.
Here is a complete list (excluding help):
-v (--verbose) = Display title, copyright and processing messages.
don't use it whilst creating a dependency.
-ver (--version) = Display program version number in the form
MAJOR.MINOR.PATCH, patches are manually applied from the Daybo Logic
site and may be published occasionally. This also displays the time
and date when daybodep was built (compiled).
-s (--system) = Normally, daybodep only creates dependencies to user
headers "program.h", "library.h" etc. With -s, system headers are
explicity reference too <stdio.h>, <pthread.h>, <windows.h> etc.
I don't recommend this as such files are not in the same directory
and will often be broken, especially if both UNIX and Windows headers
are referenced but only one is active at a time through a macro.
Only headers which are always used should have dependencies though
-nse (--no-stderr) = This option disables the use of the stderr stream.
If this switch is selected, errors will be printed onto the standard
output (which has been redirected to your dependency listing file
under normal use of the program. Therefore this is only provided
for people who may wish the errors to be listed in the dependency file
for viewing after the build. This is especially useful for long builds
where stderr output is lost in the mists of time. You may find it
more useful to redirect stderr to another log or better yet, to a
line printer on long builds.
This program is Copyright Daybo Logic and subject to the GNU GPL.
For more information visit http://www.daybologic.co.uk
It will help you build large projects.
It is not neccersary for small projects and will waste time.
The normal sequence for building an autodependency aware program
is like this:
$ make depend
$ make install
make depend only has to be executed when a source file is changed to
include more files, not when a header file is edited but dependencies
The supported compilation platforms are Borland DOS, Borland Win32, GNU
(GNU's not UNIX type Unices) and BSD UNIX. To compile on anything else,
compiliation will have to be done manually.
To compile for DOS using Borland C++:
C:\DAYBODEP> make -DB16 -f Makefile.bor
To compile for Win32 using Borland C++:
C:\DAYBODEP> make -f Makefile.bor
Either of these steps will create a file called daybodep.exe, copy this
to the directory you keep utilities in and then type this:
C:\DAYBODEP> make -f Makefile.bor clean
This will remove any temporary files created by compilation.
To compile for GNU type this, $ to be done as yourself and # to be done as
root (if you do not have privellege you will have to suffice with copying
daybodep to your private binary directory).
# gmake install
$ gmake clean
To uninstall type
# gmake uninstall
Note about GNU Make:
GNU Make is easiest to use with the current build situation. If you do
not have GNU Make and don't wish to install it then use:
make -f Makefile.bsd instead of gmake, which will use the Makefile written
for BSD Make only. Alternatively, force the link over to the BSD
Makefiles by typing ./bsdmach.sh and then use make as before.