[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ A ] [ B ] [ next ]


ccbuild - A strict developer's build utility
Chapter 2 - How it works


To know how to work with ccbuild is of course the most important thing (if you want to). So here is a quick and simple review of what it does.

We will now consider what happens when ccbuild is called without any arguments.

First ccbuild will find all source files in the current directory (using the list of source extensions to find them.) All these files are scanned which gives an in memory list of include statements and whether it has a main function.

If it has a main function, it is a binary target: ccbuild will try to make a program from this.

To find all the object files that need to be linked to the main program, ccbuild will follow all local include statements (warning if any fail). Then it will scan all files in the same directory as the included files. If they are object targets (don't have a int main function) they will be compiled and linked to the main program.

The arguments needed to compile an object are gathered by the global includes. Using the ccResolutions file, for every global include the arguments are added.

The needed linker arguments (which would create the "not linking now" warning) are identified and kept back for later use when the program is actually linked. If anything goes wrong here, please mail me and hack the file src/Compiler/countFirstLinkerArguments.cc for the meantime. This file contains two simple lists for for options with and options without arguments.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ A ] [ B ] [ next ]


ccbuild - A strict developer's build utility

1.5.7

A. Bram Neijt