gecko-dev/tools/module-deps
..
.cvsignore
README
all.dot
allmakefiles.stub
bootstrap.pl
extra.dot
find-unused-exports.pl
find_iids.pl
force_order.txt
header-count.pl
module-graph.pl
module2dir.map
modules.mk.footer
modules.mk.stub
requires-cleanup.pl

README

Here's a brief "how this works" doc to refresh my memory when I look at this in another 8 months.

The files:

all.dot - A dependency list of all of the modules in the current tree.
	- Generated by running module-graph.pl on an existing build tree. 
	- Only contains the dependencies for the platform it was run on
	  (Bug 185188)

allmakefiles.stub -  This is the stub portion of allmakefiles.sh which is used
	when running bootstrap.pl so that only specific Makefiles are generated

bootstrap.pl - This script was originally designed to use the results from
	module-graph.pl to create a cvs checkout list & build order and to
	build the tree using those lists.   It has been modified to be able to
	update the standard allmakefiles.sh & modules.mk files to track module
	changes as well.

extra.dot - This file contains a mapping of additional module dependencies 
	which could not be found by module-graph.pl.

force_order.txt - This file contains hard ordering rules for use with 
	module-graph.pl's --force-order command line option.

meta.dot - This generated file is the combination of all.dot & extra.dot and
	is used when creating allmakefiles.sh & modules.mk.

module2dir.map - This file contains the mapping of the modules and their
	dependencies based upon the directory.  This file is created by
	running 'make -s echo-requires-recursively _REPORT_ALL_DIRS=1 > file'
	on an existing tree.

module-graph.pl - Outputs a Graphviz-compatible graph description file.
	It can output a dependency graph based upon an existing description
	file or it can generate a new one based upon the values of MODULE &
	REQUIRES in Makefiles in an existing tree.

modules.mk.footer - Footer for generated modules.mk

modules.mk.stub - Header for generated mdoules.mk


How to regenerate allmakefiles.sh & modules.mk when modules change:

cd $MOZ_OBJDIR
perl ../mozilla/tools/module-deps/module-graph.pl > ../mozilla/tools/module-deps/all.dot
make -s echo-requires-recursive _REPORT_ALL_DIRS=1 > ../mozilla/tools/module-deps/module2dir.map
cd ../mozilla
perl tools/module-deps/bootstrap.pl --topsrcdir `pwd` --module-file-only