Mercurial > sdl-ios-xcode
diff build-scripts/makedep.sh @ 1361:19418e4422cb
New configure-based build system. Still work in progress, but much improved
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Thu, 16 Feb 2006 10:11:48 +0000 |
parents | |
children | 9a9b87172b4b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build-scripts/makedep.sh Thu Feb 16 10:11:48 2006 +0000 @@ -0,0 +1,66 @@ +#!/bin/sh +# +# Generate dependencies from a list of source files + +# Check to make sure our environment variables are set +if test x"$INCLUDE" = x -o x"$SOURCES" = x -o x"$objects" = x -o x"$output" = x; then + echo "SOURCES, INCLUDE, objects, and output needs to be set" + exit 1 +fi +cache_prefix=".#$$" + +generate_var() +{ + echo $1 | sed -e 's|^.*/||' -e 's|\.|_|g' +} + +search_deps() +{ + base=`echo $1 | sed 's|/[^/]*$||'` + grep '#include "' <$1 | sed -e 's|.*"\([^"]*\)".*|\1|' | \ + while read file + do cache=${cache_prefix}_`generate_var $file` + if test -f $cache; then + # We already ahve this cached + cat $cache + continue; + fi + for path in $base `echo $INCLUDE | sed 's|-I||g'` + do dep="$path/$file" + if test -f "$dep"; then + echo " $dep \\" >$cache + echo " $dep \\" + generate_dep $dep + break + fi + done + done +} + +generate_dep() +{ + cat >>${output}.new <<__EOF__ +$1: \\ +`search_deps $1` + +__EOF__ +} + +:>${output}.new +for src in $SOURCES +do echo "Generating dependencies for $src" + generate_dep $src + ext=`echo $src | sed 's|.*\.\(.*\)|\1|'` + obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|$objects/\1.lo|g"` + echo "$obj: $src" >>${output}.new + case $ext in + asm) echo " \$(BUILDASM)" >>${output}.new;; + cc) echo " \$(BUILDCC)" >>${output}.new;; + c) echo " \$(BUILDC)" >>${output}.new;; + m) echo " \$(BUILDM)" >>${output}.new;; + *) echo "Unknown file extension: $ext";; + esac + echo "" >>${output}.new +done +rm -f ${cache_prefix}* +mv ${output}.new ${output}