view build-scripts/makedep.sh @ 2079:1ed2155b7ee4

From: Torsten Giebl Subject: ALLOCA Patch for SDL-1.2 Newsgroups: gmane.comp.lib.sdl Date: 2006-10-24 00:31:16 GMT Hello ! As alloca.h is not available on CYGWIN and MinGW32 it should not be checked there or it should be checked with -mno-cygwin using. I am a total configure.in newbie, but i found the way that things are handled in configure.in pretty bad for the case CYGWIN with MinGW Mode or not. Maybe this is not possible but i would like to have a way to detect at the start for example CYGWIN and then add. ask if configure was called with --enable-cygwin for example. --enable-cygwin should be optional and disabled by default as we want to have MinGW Mode by default. Only if the user wants it he should be able to use it. Then the whole configure.in would get add. questions okay the system is CYGWIN with or without MinGW Mode. The alloca.h thing for example is only available under CYGWIN ( without MinGW Mode ). CU
author Ryan C. Gordon <icculus@icculus.org>
date Fri, 01 Dec 2006 20:25:03 +0000
parents 14f302c5b32c
children 9f64d06fa168
line wrap: on
line source

#!/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"$output" = x; then
    echo "SOURCES, INCLUDE, 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
       else
           : >$cache
           for path in $base `echo $INCLUDE | sed 's|-I||g'`
           do dep="$path/$file"
              if test -f "$dep"; then
                 echo "	$dep \\" >>$cache
                 search_deps $dep >>$cache
                 break
              fi
           done
       fi
       cat $cache
    done
}

:>${output}.new
for src in $SOURCES
do  echo "Generating dependencies for $src"
    ext=`echo $src | sed 's|.*\.\(.*\)|\1|'`
    obj=`echo $src | sed "s|^.*/\([^ ]*\)\..*|\1.lo|g"`
    echo "\$(objects)/$obj: $src \\" >>${output}.new
    search_deps $src | sort | uniq >>${output}.new
    case $ext in
        c) cat >>${output}.new <<__EOF__

	\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@

__EOF__
        ;;
        cc) cat >>${output}.new <<__EOF__

	\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@

__EOF__
        ;;
        m) cat >>${output}.new <<__EOF__

	\$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@

__EOF__
        ;;
        asm) cat >>${output}.new <<__EOF__

	\$(LIBTOOL) --tag=CC --mode=compile \$(auxdir)/strip_fPIC.sh \$(NASM) $src -o \$@

__EOF__
        ;;
        S) cat >>${output}.new <<__EOF__

	\$(LIBTOOL)  --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src  -o \$@

__EOF__
        ;;
        *)   echo "Unknown file extension: $ext";;
    esac
    echo "" >>${output}.new
done
mv ${output}.new ${output}
rm -f ${cache_prefix}*