1. Duncan Palmer
  2. daybodep


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

  Daybo Logic,
  14 Walcot Parade,
  United Kingdom

  BA1 5NL

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

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
$ 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
don't change.

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