| #!/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 an additional subdirectory below package/" |
| echo "as category, or just press enter." |
| read SUB_DIR |
| |
| if [ -z "$SUB_DIR" ]; then |
| CATEGORY_DIR=package |
| else |
| CATEGORY_DIR=package/${SUB_DIR} |
| 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_` |
| PACKAGE_DIR=`dirname $0`/../${CATEGORY_DIR}/${PACKAGE_NAME} |
| |
| mkdir -p ${PACKAGE_DIR} |
| |
| sed -e 's/ *$//g' > ${PACKAGE_DIR}/${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,${CATEGORY_DIR},${PACKAGE_NAME})) |
| EOF |
| |
| cat > ${PACKAGE_DIR}/Config.in <<EOF |
| config BR2_PACKAGE_${NAME_UPPER} |
| bool "${PACKAGE_NAME}" |
| help |
| ${DESCRIPTION} |
| |
| ${URL} |
| EOF |
| |
| echo |
| echo "**** Manual steps to integrate your new package ****" |
| echo |
| |
| echo "Add the following line to ${CATEGORY_DIR}/Config.in" |
| echo "in an appropriate location:" |
| echo "source \"${CATEGORY_DIR}/${PACKAGE_NAME}/Config.in\"" |
| |
| if [ -n "$SUB_DIR" ]; then |
| echo |
| echo "Additionally add the following line to package/Config.in" |
| echo "in an appropriate location:" |
| echo "source \"${CATEGORY_DIR}/Config.in\"" |
| fi |
| |
| if [ -n "$EXTRA_DEPS" ]; then |
| echo |
| echo "You need to add \"depends on\" and/or \"select\" lines" |
| echo "to ${CATEGORY_DIR}/${PACKAGE_NAME}/Config.in" |
| echo "corresponding to the \"${NAME_UPPER}_DEPENDENCIES\" line" |
| echo "in ${CATEGORY_DIR}/${PACKAGE_NAME}/${PACKAGE_NAME}.mk" |
| fi |
| |
| echo |
| echo "After that run \"make menuconfig\", select your new package" |
| echo "and run \"make\" to build \"${PACKAGE_NAME}\"." |