diff options
Diffstat (limited to 'scripts/cfg_defs.sh')
-rwxr-xr-x | scripts/cfg_defs.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/cfg_defs.sh b/scripts/cfg_defs.sh new file mode 100755 index 0000000..5f37e96 --- /dev/null +++ b/scripts/cfg_defs.sh @@ -0,0 +1,48 @@ +#!/bin/sh +# Translate the lynx_cfg.h and config.cache data into a table, useful for +# display at runtime. + +TOP="${1-.}" +OUT=cfg_defs.h + +# just in case we want to run this outside the makefile +: ${SHELL:=/bin/sh} + +cat >$OUT <<EOF +#ifndef CFG_DEFS_H +#define CFG_DEFS_H 1 + +static const struct { + const char *name; + const char *value; +} config_cache[] = { +EOF + +sed \ + -e '/^#/d' \ + -e 's/^.[^=]*_cv_//' \ + -e 's/=\${.*=/=/' \ + -e 's/}$//' \ + config.cache | $SHELL $TOP/scripts/cfg_edit.sh >>$OUT + +cat >>$OUT <<EOF +}; + +static const struct { + const char *name; + const char *value; +} config_defines[] = { +EOF +fgrep '#define' lynx_cfg.h | +sed -e 's@ @ @g' \ + -e 's@ @ @g' \ + -e 's@^[ ]*#define[ ]*@@' \ + -e 's@[ ]*/\*.*\*/@@' \ + -e 's@[ ][ ]*@=@' \ + | $SHELL $TOP/scripts/cfg_edit.sh >>$OUT + +cat >>$OUT <<EOF +}; + +#endif /* CFG_DEFS_H */ +EOF |