#!/bin/sh -e

usage()
{
	echo "Usage: ${0} --prefix=DIR --destdir=DIR [option ...]"
	echo "Possible options are:"
	echo "  --help"
	echo "  --prefix=LIBRARY_TOP_DIRECTORY"
	echo "  --destdir=DESTINATION_DIRECTORY"
	echo "  --libraries=SUBSET_LIBRARIES (default: all libraries)"
}


prefix=''
destdir=''
libraries=''

while [ ${#} -gt 0 ]
do
	case "${1}" in

	--help)
		usage 1>&2
		exit 0
		;;

	--prefix=*)
		prefix=`echo ${1} | sed 's/^--prefix=//'`
		;;

	--destdir=*)
		destdir=`echo ${1} | sed 's/^--destdir=//'`
		;;

	--libraries=*)
		libraries="${libraries} "`echo ${1} | sed 's/^--libraries=//'`
		;;

	*)
		usage 1>&2
		exit 1
		;;
	esac

	shift 1
done

# strip whitespaces
libraries=`echo ${libraries} | sed 's/^[ 	]*//' \
			     | sed 's/[ 	]*$//' \
			     | sed 's/[ 	]/ /g'`


# check prefix specified
if [ -z "${prefix}" ]; then
	echo "${0}: prefix must be specified." 1>&2
	usage 1>&2
	exit 1
fi

# check destdir specified
if [ -z "${destdir}" ]; then
	echo "${0}: destdir must be specified." 1>&2
	usage 1>&2
	exit 1
fi

# overwrite libraries variable if it is empty
if [ -z "${libraries}" ]; then
	for lib in `(cd ${prefix}/src && echo *)`
	do
		if [ -d "${prefix}/src/${lib}" ]; then
			libraries="${libraries} ${lib}"
		fi
	done
fi

# check valid subset
for lib in ${libraries}
do
	if [ ! -d "${prefix}/src/${lib}" ]; then
		echo "${0}: No such library: \`${lib}'" 1>&2
		usage 1>&2
		exit 1
	fi
done


# check destdir is not exist
if [ -e "${destdir}" ]; then
	echo "${0}: ${destdir} already exist." 1>&2
	exit 1
fi


# copy except src/
mkdir "${destdir}"
cd ${prefix}
for i in *
do
	if [ "${i}" != "src" ]; then
		cp -p -R ${prefix}/${i} ${destdir}/${i}
	fi
done


# copy non-library files in src/
mkdir "${destdir}/src"
cd ./src
for i in *
do
	if [ ! -d "${i}" ]; then
		cp -p ${prefix}/src/${i} ${destdir}/src/${i}
	fi
done


# copy each library in src/
copy_library()
{
	if [ ! -d ${destdir}/src/${1} ]; then
		cp -p -R ${prefix}/src/${1} ${destdir}/src/${1}
	fi
}

for lib in ${libraries}
do
	copy_library ${lib}

	for dep in `grep '^#%DEPENDS[ 	]*=' ${prefix}/src/${lib}/Makefile \
			| sed 's/^#%DEPENDS[ 	]*=[ 	]*//'`
	do
		copy_library ${dep}
	done
done
