#!/bin/sh

# This script is part of Bakefile (http://bakefile.sourceforge.net) autoconf
# script. It is used to track C/C++ files dependencies in portable way.
#
# Permission is given to use this file in any way.

DEPSMODE=gcc
DEPSDIR=.deps
DEPSFLAG_GCC="-MMD"

mkdir -p $DEPSDIR

if test $DEPSMODE = gcc ; then
    $* ${DEPSFLAG_GCC}
    status=$?
    if test ${status} != 0 ; then
        exit ${status}
    fi
    # move created file to the location we want it in:
    while test $# -gt 0; do
        case "$1" in
            -o )
                shift
                objfile=$1
            ;;
            -* )
            ;;
            * )
                srcfile=$1
            ;;
        esac
        shift
    done
    depfile=`basename $srcfile | sed -e 's/\..*$/.d/g'`
    depobjname=`echo $depfile |sed -e 's/\.d/.o/g'`
    if test -f $depfile ; then
        sed -e "s,$depobjname:,$objfile:,g" $depfile >${DEPSDIR}/${objfile}.d
        rm -f $depfile
    else
        depfile=`basename $objfile | sed -e 's/\..*$/.d/g'`
        if test -f $depfile ; then
            sed -e "/^$objfile/!s,$depobjname:,$objfile:,g" $depfile >${DEPSDIR}/${objfile}.d
            rm -f $depfile
        fi
    fi
    exit 0
else
    $*
    exit $?
fi
