tune the preloads a bit
[sdl_omap.git] / build-scripts / makedep.sh
1 #!/bin/sh
2 #
3 # Generate dependencies from a list of source files
4
5 # Check to make sure our environment variables are set
6 if test x"$INCLUDE" = x -o x"$SOURCES" = x -o x"$output" = x; then
7     echo "SOURCES, INCLUDE, and output needs to be set"
8     exit 1
9 fi
10 cache_prefix=".#$$"
11
12 generate_var()
13 {
14     echo $1 | sed -e 's|^.*/||' -e 's|\.|_|g'
15 }
16
17 search_deps()
18 {
19     base=`echo $1 | sed 's|/[^/]*$||'`
20     grep '#include "' <$1 | sed -e 's|.*"\([^"]*\)".*|\1|' | \
21     while read file
22     do cache=${cache_prefix}_`generate_var $file`
23        if test -f $cache; then
24           : # We already ahve this cached
25        else
26            : >$cache
27            for path in $base `echo $INCLUDE | sed 's|-I||g'`
28            do dep="$path/$file"
29               if test -f "$dep"; then
30                  echo " $dep \\" >>$cache
31                  search_deps $dep >>$cache
32                  break
33               fi
34            done
35        fi
36        cat $cache
37     done
38 }
39
40 :>${output}.new
41 for src in $SOURCES
42 do  echo "Generating dependencies for $src"
43     ext=`echo $src | sed 's|.*\.\(.*\)|\1|'`
44     if test x"$ext" = x"rc"; then
45         obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.o|g"`
46     else
47         obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.lo|g"`
48     fi
49     echo "\$(objects)/$obj: $src \\" >>${output}.new
50     search_deps $src | sort | uniq >>${output}.new
51     case $ext in
52         c) cat >>${output}.new <<__EOF__
53
54         \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@
55
56 __EOF__
57         ;;
58         cc) cat >>${output}.new <<__EOF__
59
60         \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@
61
62 __EOF__
63         ;;
64         m) cat >>${output}.new <<__EOF__
65
66         \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@
67
68 __EOF__
69         ;;
70         asm) cat >>${output}.new <<__EOF__
71
72         \$(LIBTOOL) --tag=CC --mode=compile \$(auxdir)/strip_fPIC.sh \$(NASM) $src -o \$@
73
74 __EOF__
75         ;;
76         S) cat >>${output}.new <<__EOF__
77
78         \$(LIBTOOL)  --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@
79
80 __EOF__
81         ;;
82         rc) cat >>${output}.new <<__EOF__
83
84         \$(WINDRES) $src \$@
85
86 __EOF__
87         ;;
88         *)   echo "Unknown file extension: $ext";;
89     esac
90     echo "" >>${output}.new
91 done
92 mv ${output}.new ${output}
93 rm -f ${cache_prefix}*