create_ipkgs 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/bin/sh
  2. # this script is very *alpha* so be gentle...
  3. # change these lines to your arch and maintainer name
  4. ARCH="avr32"
  5. PACK_MAINTAINER="John Voltz <john.voltz@gmail.com>"
  6. BUILDROOT_DIR=`pwd`
  7. echo "Creating ipkgs from your build directory..."
  8. echo "Please be patient, as this can take a long time.
  9. "
  10. # create the ipkg directories
  11. mkdir -p ${BUILDROOT_DIR}/ipkg-temp
  12. mkdir -p ${BUILDROOT_DIR}/ipkg-out
  13. for PACKAGE in `ls -d ./build_*/*`; do
  14. # extract some info
  15. NAME_WITHOUT_VER=${PACKAGE%-*}
  16. VERSION=${PACKAGE#${NAME_WITHOUT_VER}-}
  17. NAME_WITHOUT_DIR=${NAME_WITHOUT_VER#*/*/}
  18. CLEAN_NAME=${NAME_WITHOUT_DIR//_/-}
  19. # clean out the temp directory
  20. rm -rf ${BUILDROOT_DIR}/ipkg-temp/*
  21. # install the package to temp directory
  22. cd ${PACKAGE}
  23. echo "Installing ${NAME_WITHOUT_DIR} to ./ipkg-temp"
  24. make DESTDIR=${BUILDROOT_DIR}/ipkg-temp DSTROOT=${BUILDROOT_DIR}/ipkg-temp install &> /dev/null
  25. # create the control file
  26. cd ${BUILDROOT_DIR}
  27. mkdir ${BUILDROOT_DIR}/ipkg-temp/CONTROL
  28. # find it's corresponding buildroot package directory
  29. PACK_NAME=`find ./package -path './package/config' -prune -o -name ${NAME_WITHOUT_DIR}`
  30. PACK_NAME=${PACK_NAME%./package/config}
  31. PACK_NAME=${PACK_NAME#./package/config}
  32. PACK_NAME=`echo -n ${PACK_NAME}`
  33. # there must be an better way to extract the description and
  34. # dependencies from the Config.in and *.mk file.
  35. # Haven't figured it out just yet.
  36. CONF_FILE=`cat ${PACK_NAME}/Config.in`
  37. #MAKE_FILE=`cat ${PACK_NAME}/*.mk`
  38. HELP_STR=${CONF_FILE#*help}
  39. HELP_STR=${HELP_STR%%comment*}
  40. HELP_STR=${HELP_STR%%choice*}
  41. HELP_STR=${HELP_STR%%depends*}
  42. HELP_STR=${HELP_STR%%http*}
  43. HELP_STR=`echo -n ${HELP_STR}`
  44. echo ${HELP_STR}
  45. if [ "${PACK_NAME}" != "" ]; then
  46. echo "Creating ipkg of: ${PACKAGE}"
  47. cat > ${BUILDROOT_DIR}/ipkg-temp/CONTROL/control <<EOF
  48. Package: ${CLEAN_NAME}
  49. Priority: optional
  50. Version: ${VERSION}
  51. Architecture: ${ARCH}
  52. Maintainer: ${PACK_MAINTAINER}
  53. Depends: uclibc
  54. Description: ${HELP_STR}
  55. EOF
  56. # build the package
  57. package/ipkg/ipkg-build ${BUILDROOT_DIR}/ipkg-temp ${BUILDROOT_DIR}/ipkg-out
  58. fi
  59. echo "Complete.
  60. "
  61. done
  62. echo "ipkg builds are finished."