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 Daybo Logic, 14 Walcot Parade, Bath, 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: http://www.daybologic.co.uk/dev/daybodep/ 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 Makefile. 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 daybodep. -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.