about summary refs log tree commit diff stats
path: root/scripts/cfg_defs.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cfg_defs.sh')
-rwxr-xr-xscripts/cfg_defs.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/scripts/cfg_defs.sh b/scripts/cfg_defs.sh
new file mode 100755
index 00000000..5f37e962
--- /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