Next: guile-tools module-doc-coverage, Previous: guile-tools merge-module-catalogs, Up: Miscellaneous Tools
Usage: mkpimmc [options] PIMMC SRCDIR -- [ARGS ...]
Make two module catalogs in cwd and in SRCDIR (if SRCDIR is not "."),
merge them, and write the result to PIMMC, which stands for "pre-inst
merged module catalog". The ARGS ... are passed straight through to
the make-module-catalog program. Note that the "--" is required.
The constiuent module catalogs are deleted after the merge.
Optional arg `--verbose' displays "Calling: ..." for each of the backend
programs used (make-module-catalog and merge-module-catalogs, basically)
along w/ the args passed to them.
Optional arg `--deps DEPS' specifies either a directory or a filename to
write a makefile frag containing dependency info for PIMMC. If DEPS is a
directory, the filename for the makefile frag is computed by inserting a
"P" between the PIMMC extension (portion of PIMMC following the last ".")
and the last dot. For example, a.b would result in a.Pb (this is to be
consistent with GNU auto* tools dependency tracking machinery). If there
is no "." in PIMMC, simply prefix with "P".
Sometimes the makefile frag will contain invalid (out of date) filenames,
for example, due to upgrading the auto* tools, resulting in spurious "no
rule to make target FOO" errors from make(1). You can either remove the
offending line from DEPS directly, or simply replace the contents of DEPS
with "# dummy". Either way, the next time mkpimmc is run, DEPS should be
correctly regenerated.
Typically you will use mkpimmc in the top-level Makefile.am like so:
noinst_DATA = .module-catalog
.module-catalog:
guile-tools mkpimmc -d .deps $@ $(srcdir) \
-- -d in,lo,o -X '~$$' -X CVS
Note that the dollar signs are doubled to avoid confusing make(1).
To take advantage of the automatic dependency tracking, include this
fragment in configure.ac:
AC_CONFIG_COMMANDS([module-catalog-prep],[
test -d .deps || mkdir .deps
prereq=.deps/.Pmodule-catalog
test -f $prereq || echo '# dummy' > $prereq
grep -q "include $prereq" Makefile \
|| echo include $prereq >> Makefile
])
Alternatively, you can use the GUILE_MODULE_CATALOG_PREP m4 macro
from guile.m4, which normally achieves the same result.