www.delorie.com/gnu/docs/guile/guile_44.html   search  
 
Buy GNU books!


Guile Reference Manual

[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

12.4 Autofrisk

The guile-tools autofrisk command looks for the file `modules.af' in the current directory and writes out `modules.af.m4' containing autoconf definitions for AUTOFRISK_CHECKS and AUTOFRISK_SUMMARY. See section 12.1 Autoconf Background, and See section 12.3 Using Autoconf Macros, for more info.

The modules.af file consists of a series of configuration forms (Scheme lists), which have one of the following formats:

 
  (files-glob PATTERN ...)                      ;; required
  (non-critical-external MODULE ...)            ;; optional
  (non-critical-internal MODULE ...)            ;; optional
  (programs (MODULE PROG ...) ...)              ;; optional
  (pww-varname VARNAME)                         ;; optional

pattern is a string that may contain "*" and "?" characters to be expanded into filenames. module is a list of symbols naming a module, such as `(srfi srfi-1)'. varname is a shell-safe name to use instead of probably_wont_work, the default. This var is passed to `AC_SUBST'. prog is a string that names a program, such as "gpg".

Autofrisk expands the files-glob pattern(s) into a list of files, scans each file's module definition form(s), and constructs a module dependency graph wherein modules defined by define-module are considered internal and the remaining, external. For each external module that has an internal dependency, Autofrisk emits a GUILE_MODULE_REQUIRED check (see section 12.2 Autoconf Macros), which altogether form the body of AUTOFRISK_CHECKS.

GUILE_MODULE_REQUIRED causes the `configure' script to exit with an error message if the specified module is not available; it enforces a strong dependency. You can temper dependency strength by using the non-critical-external and non-critical-internal configuration forms in modules.af. For graph edges that touch such non-critical modules, Autofrisk uses GUILE_MODULE_AVAILABLE, and arranges for AUTOFRISK_SUMMARY to display a warning if they are not found.

The shell code resulting from the expansion of AUTOFRISK_CHECKS and AUTOFRISK_SUMMARY uses the shell variable probably_wont_work to collect the names of unfound non-critical modules. If this bothers you, use configuration form (pww-name foo) in modules.af.

Although Autofrisk does not detect when a module uses a program (for example, in a system call), it can generate AC_PATH_PROG forms anyway if you use the programs configuration form in modules.af. These are collected into AUTOCONF_CHECKS.

See section 12.5 Using Autofrisk, for some modules.af examples.


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

  webmaster     delorie software   privacy  
  Copyright 2003   by The Free Software Foundation     Updated Jun 2003