Build-Browser

Build-Browser is a python based tool used to identify dependencies for GCC Source files for understanding GCC Source Structure.It helps to understand the three stage build process of GCC. A file t depends on another file s if s is required to to create t; s is called as the source of the dependency and t as the target of the dependency.

GCC Build Process

The gcc build is long winding complex process. It involves

1.  Compiling simple '.c' files to '.o' files,
2.  Generate '.c' files from '.md' files.
3.  Combine multiple '.o' files into a '.a' file
4.  Generate executables using '.o' and '.a' files etc.
<\p>

This process involves a large source repository (nearly 70,000 files).It is very difficult to examine each line of the make output, and pick some key information, or understand the underlying structure of these sources.

Example:
Consider the following make dependencies:
  1  $BUILD/gcc/build/gengtype-parse.o
     '- $SOURCE/gcc/gengtype-parse.c

This is obvious as x.o depends on x.c. In our terminology, x.o is the target and x.c is the source.

  2   $BUILD/gcc/cc1
      +- $BUILD/gcc/attribs.o
      +- $BUILD/gcc/c-aux-info.o
      +- $BUILD/gcc/c-convert.o
      .
      .
      .
      '- $BUILD/libiberty/libiberty.a

This one is complicated;The target cc1 depends on many sources which include attribs.o libiberty.a among other '.o' files. Every source may itself be a target which depends on other sources e.g. libiberty.a depends on several '.o's and those '.o's in turn depend on the corresponding '.c' files etc.

    1.     Build-Browser- User Guide                                                                                                      .txt   
2. Build-Browser: Code .py