#!/bin/bash

set -e

get_var() {
    variable="$1"
    dir="$2"

    tmp=$(tempfile)
    cat <<EOF > $tmp
split_module_print_value:
	@echo \$($variable)

include Makefile
EOF
    make -f $tmp -C $dir --no-print-directory split_module_print_value CC="$CC" GCC="$GCC" 
    rm -f $tmp
}

module="$1"
build_dir="$2"
install_dir="$3"

case "$module" in
    *)
        objs_var="$module-objs"
        ;;
esac

modpost=$module.mod.o

if [ -n "$objs_var" ]; then
    objs=$(get_var $objs_var $build_dir)

    if [ -z "$objs" ]; then
        #echo "split-module: failed to find objects for $module" >&2
	objs="$module.o"
        #exit 1
    fi
fi

install -d $install_dir/$module
for file in $objs $modpost; do
    cp -v $build_dir/$file $install_dir/$module
done

exit 0
