lib/config/build-config.sh
changeset 0 6f7a81934006
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lib/config/build-config.sh	Wed Jan 16 22:39:43 2008 +0100
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+newfile() {
+  local old=$1
+  local new=${old}.new
+  cat >$new
+  if cmp -s $old $new; then
+    echo "$old is unchanged." >&2
+    rm -f $new
+  else
+    echo "$old was changed, REPLACING." >&2
+    mv -f $new $old
+  fi
+}
+
+{
+  sed -e '/^%%LIST%%$/,$d' showvconfig.cc.in
+  while read type ext name default; do
+    filename=`echo $name | sed -e 's/_/-/g'`
+    sed -e "s|%NAME%|$name|g" \
+	-e "s|%EXT%|$ext|g" \
+	-e "s|%TYPE%|$type|g" \
+	-e "s|%DEFAULT%|$default|g" \
+	-e "s|%FILENAME%|$filename|g" \
+	configvar.in | newfile _${name}.cc
+    echo "  show_$ext(\"${filename}\", config->${name}());"
+  done <configrc.in
+  sed -e '1,/^%%LIST%%$/d' showvconfig.cc.in
+} | newfile showvconfig.cc
+
+{
+  sed -e '/^%%LIST%%$/,$d' configrc.h.in
+  while read type ext name default; do
+    echo "public: $type $name() const;"
+    echo "private: config_cache<$type> ${name}_cache;"
+  done <configrc.in
+  sed -e '1,/^%%LIST%%$/d' configrc.h.in
+} | newfile configrc.h
+
+{
+  sed -e '/^%%LIST%%$/,$d' Makefile.am.in
+  while read type ext name default; do
+    echo "	_${name}.cc \\"
+  done <configrc.in
+  sed -e '1,/^%%LIST%%$/d' Makefile.am.in
+} | newfile Makefile.am