summaryrefslogtreecommitdiffstats
path: root/hw2/autogen.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hw2/autogen.sh')
-rwxr-xr-xhw2/autogen.sh51
1 files changed, 51 insertions, 0 deletions
diff --git a/hw2/autogen.sh b/hw2/autogen.sh
new file mode 100755
index 0000000..a15abd9
--- /dev/null
+++ b/hw2/autogen.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+map_c_filename ()
+{
+ c_filename="`basename $1`"
+ case "$c_filename" in
+ "d1array.c") echo "basic-array.c" ;;
+ "d1arrstr.c") echo "basic-arrstr.c" ;;
+ "d2array.c") echo "basic-array2.c" ;;
+ "list.c") echo "basic-list.c" ;;
+ "toargv.c") echo "basic-argv.c" ;;
+ "qarg.c") echo "basic-qarg.c" ;;
+ *) echo "$c_filename" ;;
+ esac
+}
+
+map_h_filename ()
+{
+ h_filename="`basename $1`"
+ case "$h_filename" in
+ "l4darr.h") echo "basic-array.h" ;;
+ "l4bds.h") echo "basic-list.h" ;;
+ "l4arg.h") echo "basic-arg.h" ;;
+ *) echo "$h_filename" ;;
+ esac
+}
+
+generate_file ()
+{
+ file_src="$1"
+ case "$file_src" in
+ *.c) file_dest="`map_c_filename $file_src`" ;;
+ *.h) file_dest="`map_h_filename $file_src`" ;;
+ esac
+ [ -z "$file_dest" ] && return 1
+
+ echo "Generating $file_dest from $file_src"
+ sed -f "libbasic.sed" "$file_src" > "$file_dest"
+}
+
+autoreconf -iv
+[ -z "$1" ] && exit 0
+
+git clone "$1" "l4basic"
+
+for i in l4basic/l4darr/*.[ch] l4basic/l4bds/*.[ch] l4basic/l4arg/*.[ch]
+do
+ generate_file "$i" "."
+done
+
+rm -rf "l4basic"