tune the preloads a bit
[sdl_omap.git] / build-scripts / makedep.sh
CommitLineData
e14743d1 1#!/bin/sh
2#
3# Generate dependencies from a list of source files
4
5# Check to make sure our environment variables are set
6if 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
9fi
10cache_prefix=".#$$"
11
12generate_var()
13{
14 echo $1 | sed -e 's|^.*/||' -e 's|\.|_|g'
15}
16
17search_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
41for src in $SOURCES
42do 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
91done
92mv ${output}.new ${output}
93rm -f ${cache_prefix}*