diff options
author | John Voltz <john.voltz@gmail.com> | 2008-03-06 17:52:37 +0000 |
---|---|---|
committer | John Voltz <john.voltz@gmail.com> | 2008-03-06 17:52:37 +0000 |
commit | ab063ab0af7dbd92140dad0f20ad396ba2d45d3d (patch) | |
tree | 40021894c9bbbe1b3162dc1c92370480a33ccdbc /scripts/create_ipkgs | |
parent | 494a273b15ff64b7d59272e77520358896bbe6ff (diff) |
some buildroot helper scripts
Diffstat (limited to 'scripts/create_ipkgs')
-rwxr-xr-x | scripts/create_ipkgs | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/scripts/create_ipkgs b/scripts/create_ipkgs new file mode 100755 index 000000000..3b9b8af39 --- /dev/null +++ b/scripts/create_ipkgs @@ -0,0 +1,82 @@ +#!/bin/sh + +# this script is very *alpha* so be gentle... + +# change these lines to your arch and maintainer name +ARCH="avr32" +PACK_MAINTAINER="John Voltz <john.voltz@gmail.com>" + +BUILDROOT_DIR=`pwd` + +echo "Creating ipkgs from your build directory..." +echo "Please be patient, as this can take a long time. + " + +# create the ipkg directories +mkdir -p ${BUILDROOT_DIR}/ipkg-temp +mkdir -p ${BUILDROOT_DIR}/ipkg-out + +for PACKAGE in `ls -d ./build_*/*`; do + + # extract some info + NAME_WITHOUT_VER=${PACKAGE%-*} + VERSION=${PACKAGE#${NAME_WITHOUT_VER}-} + NAME_WITHOUT_DIR=${NAME_WITHOUT_VER#*/*/} + CLEAN_NAME=${NAME_WITHOUT_DIR//_/-} + + # clean out the temp directory + rm -rf ${BUILDROOT_DIR}/ipkg-temp/* + + # install the package to temp directory + cd ${PACKAGE} + echo "Installing ${NAME_WITHOUT_DIR} to ./ipkg-temp" + make DESTDIR=${BUILDROOT_DIR}/ipkg-temp DSTROOT=${BUILDROOT_DIR}/ipkg-temp install &> /dev/null + + # create the control file + cd ${BUILDROOT_DIR} + mkdir ${BUILDROOT_DIR}/ipkg-temp/CONTROL + + # find it's corresponding buildroot package directory + PACK_NAME=`find ./package -path './package/config' -prune -o -name ${NAME_WITHOUT_DIR}` + PACK_NAME=${PACK_NAME%./package/config} + PACK_NAME=${PACK_NAME#./package/config} + PACK_NAME=`echo -n ${PACK_NAME}` + + # there must be an better way to extract the description and + # dependencies from the Config.in and *.mk file. + # Haven't figured it out just yet. + CONF_FILE=`cat ${PACK_NAME}/Config.in` + #MAKE_FILE=`cat ${PACK_NAME}/*.mk` + HELP_STR=${CONF_FILE#*help} + HELP_STR=${HELP_STR%%comment*} + HELP_STR=${HELP_STR%%choice*} + HELP_STR=${HELP_STR%%depends*} + HELP_STR=${HELP_STR%%http*} + HELP_STR=`echo -n ${HELP_STR}` + + echo ${HELP_STR} + + if [ "${PACK_NAME}" != "" ]; then + echo "Creating ipkg of: ${PACKAGE}" + +cat > ${BUILDROOT_DIR}/ipkg-temp/CONTROL/control <<EOF +Package: ${CLEAN_NAME} +Priority: optional +Version: ${VERSION} +Architecture: ${ARCH} +Maintainer: ${PACK_MAINTAINER} +Depends: uclibc +Description: ${HELP_STR} +EOF + + # build the package + package/ipkg/ipkg-build ${BUILDROOT_DIR}/ipkg-temp ${BUILDROOT_DIR}/ipkg-out + + fi + + echo "Complete. + " + +done + +echo "ipkg builds are finished." |