#!/bin/sh

echo "**** Autotools Add New Package Wizard ****"
echo " This script will generate files to add a"
echo " new package to buildroot."
echo

echo "What is the name of the package?"
read PACKAGE_NAME

echo "What is the version number?"
read VERSION_NUM

echo "What is the web address of the tarball?"
read DOWNLOAD_LOC

echo "Enter any known dependencies, separated"
echo "by spaces, or just press enter."
read EXTRA_DEPS

echo "Enter a description of the package."
read DESCRIPTION

echo "Does autoreconf need to be run first? (y/n)"
read ANSWER

if [ "$ANSWER" = "y" ]; then
	RECONF="YES"
else
	RECONF="NO"
fi

echo "Does it need to be installed to the staging dir?"
echo "Say yes, if other packages depend on it."
echo "(If not sure, just say yes. It will only use more"
echo "space on your hard drive.)"
read ANSWER

if [ "$ANSWER" = "y" ]; then
	STAGING="YES"
else
	STAGING="NO"
fi

echo "Enter any configure script options."
read CONFIG_OPTIONS

URL=${DOWNLOAD_LOC%/*}
TARBALL=${DOWNLOAD_LOC##*/}
EXTENSION=${TARBALL##*.tar.}
NAME_UPPER=`echo ${PACKAGE_NAME} | tr a-z- A-Z_`

mkdir ../package/${PACKAGE_NAME}

cat > ../package/${PACKAGE_NAME}/${PACKAGE_NAME}.mk <<EOF
#############################################################
#
# ${PACKAGE_NAME}
#
#############################################################
${NAME_UPPER}_VERSION = ${VERSION_NUM}
${NAME_UPPER}_SOURCE = ${PACKAGE_NAME}-\$(${NAME_UPPER}_VERSION).tar.${EXTENSION}
${NAME_UPPER}_SITE = ${URL}
${NAME_UPPER}_AUTORECONF = ${RECONF}
${NAME_UPPER}_INSTALL_STAGING = ${STAGING}
${NAME_UPPER}_INSTALL_TARGET = YES

${NAME_UPPER}_CONF_OPT = ${CONFIG_OPTIONS}

${NAME_UPPER}_DEPENDENCIES = uclibc ${EXTRA_DEPS}

\$(eval \$(call AUTOTARGETS,package,${PACKAGE_NAME}))

EOF

cat > ../package/${PACKAGE_NAME}/Config.in <<EOF
config BR2_PACKAGE_${NAME_UPPER}
	bool "${PACKAGE_NAME}"
	help
	  ${DESCRIPTION}

	  ${URL}
EOF

echo "Just add: source \"package/${PACKAGE_NAME}/Config.in\""
echo "to the file package/Config.in in an appropriate"
echo "location."
echo
echo "You are now ready to build ${PACKAGE_NAME}"
echo "Just run make menuconfig and select your new"
echo "package, then run make."
 
