build-scripts/makedep.sh
author Sam Lantinga <slouken@libsdl.org>
Fri, 20 Jul 2007 08:17:45 +0000
branchSDL-1.2
changeset 4087 4867f7f7dd34
parent 4078 5e6f2972f963
child 2247 93994f65c74c
child 4539 d2517c0de52b
permissions -rwxr-xr-x
I'm not sure if this helps anything, but it was clearly wrong.
     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}*