#!/bin/sh
#
# Thomas Nemeth - 2001
#
# Script permettant de récupérer les dépendances des sources C.

MAKEDEP=$0

# Type d'OS à cause d'echo.
MY_OSTYPE=`uname -s`

# Silencieux ?
if [ "$1" = "-s" ]; then
    SILENCE=1
    shift
else
    SILENCE=0
fi

if [ "$1" = "-m" ]; then
    CREATEMAIN=1
    CREATEFILE=0
    shift
else
    CREATEMAIN=0
fi

if [ "$1" = "-f" ]; then
    CREATEFILE=1
    CREATEMAIN=0
    shift
else
    CREATEFILE=0
fi

if [ $CREATEMAIN = 1 ]; then
    echo '.dep.%.c: %.c'
    echo '	@'$MAKEDEP' -s -f $< > $@'
    echo
    for fichier in *.c; do
        has_local_includes=`grep '#include ".*"' $fichier`
        if [ "$has_local_includes" != "" ]; then
            if [ $SILENCE = 0 ]; then
                echo "Making dependencies for $fichier." > /dev/stderr
            fi
            DEPFILE=".dep.$fichier"
            echo "include $DEPFILE"
            echo
            $MAKEDEP -f $fichier > $DEPFILE
        fi
    done
fi

if [ $CREATEFILE = 1 ]; then
    fichier="$1"
    has_local_includes=`grep '#include ".*"' $fichier`
    if [ "$has_local_includes" != "" ]; then
        if [ $SILENCE = 0 ]; then
            echo "Making dependencies for $fichier." > /dev/stderr
        fi
        DEPEND="`basename $fichier .c`.o:"
        if [ "$MY_OSTYPE" != "SunOS" ]; then
            echo -n "$DEPEND"
        fi
        for ligne in $has_local_includes; do
            if [ "$ligne" != "#include" ]; then
                include=`expr "$ligne" : '"\(.*\)"'`
                if [ "$MY_OSTYPE" != "SunOS" ]; then
                    echo -n " $include"
                else
                    DEPEND="$DEPEND $include"
                fi
            fi
        done
        if [ "$MY_OSTYPE" = "SunOS" ]; then
            echo "$DEPEND"
        else
            echo
        fi
        echo
    fi
fi
