MODULES="autotools"

make()
{
    mk_system build

    mk_autotools SOURCEDIR=m4
    m4_build_stamp="$result"

    mk_autotools SOURCEDIR=autoconf DEPS="$m4_build_stamp"
    autoconf_build_stamp="$result"

    mk_system host

    mk_autotools SOURCEDIR=m4
    m4_stamp="$result"
    mk_add_all_target "$result"

    mk_autotools SOURCEDIR=autoconf DEPS="$m4_build_stamp" INSTALL_POST=autoconf_fixup
    autoconf_stamp="$result"
    mk_add_all_target "$result"

    mk_autotools \
        DEPS="$autoconf_stamp $autoconf_build_stamp" \
        SOURCEDIR=automake
    automake_stamp="$result"
    mk_add_all_target "$result"
  
    mk_autotools DEPS="$autoconf_stamp $automake_stamp" SOURCEDIR=libtool
    libtool_stamp="$result"
    mk_add_all_target "$result"

    mk_autotools SOURCEDIR=moonunit --disable-cpp
    moonunit_stamp="$result"
    mk_add_all_target "$result"

    if [ "$MK_HOST_OS" != "freebsd" ]
    then
        mk_autotools SOURCEDIR=dash
        mk_add_all_target "$result"
    fi
}

sed_fixup()
{
    # $1 = file
    # $2 = expr

    # Copy the file first to preserve permissions
    mk_run_or_fail cp "$1" "$1.new"
    sed -e "$2" < "$1" > "$1.new" || mk_fail "sed failed"
    mk_run_or_fail mv -f "$1.new" "$1"
}

autoconf_fixup()
{
    if [ -n "$1" ]
    then
        # $1 = install dir

        # Autoconf hardcodes the m4 path into autoupdate and autom4te,
        # so fix it here
        RUN_M4="${MK_ROOT_DIR}/${MK_RUN_BINDIR}/m4"
        FINAL_M4="${MK_BINDIR}/m4"
        EXPR="s:$RUN_M4:$FINAL_M4:"
        
        sed_fixup "$1${MK_BINDIR}/autoupdate" "$EXPR"
        sed_fixup "$1${MK_BINDIR}/autom4te" "$EXPR"
    fi
}
