summaryrefslogtreecommitdiffstats
path: root/hw2/autogen.sh
blob: a15abd9030f95732a37e2d9588959a5325ed5389 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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"