home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6-686 / scripts / package / buildtar < prev    next >
Encoding:
Text File  |  2006-08-11  |  2.4 KB  |  107 lines

  1. #!/bin/sh
  2.  
  3. #
  4. # buildtar 0.0.4
  5. #
  6. # (C) 2004-2006 by Jan-Benedict Glaw <jbglaw@lug-owl.de>
  7. #
  8. # This script is used to compile a tarball from the currently
  9. # prepared kernel. Based upon the builddeb script from
  10. # Wichert Akkerman <wichert@wiggy.net>.
  11. #
  12.  
  13. set -e
  14.  
  15. #
  16. # Some variables and settings used throughout the script
  17. #
  18. tmpdir="${objtree}/tar-install"
  19. tarball="${objtree}/linux-${KERNELRELEASE}.tar"
  20.  
  21.  
  22. #
  23. # Figure out how to compress, if requested at all
  24. #
  25. case "${1}" in
  26.     tar-pkg)
  27.         compress="cat"
  28.         file_ext=""
  29.         ;;
  30.     targz-pkg)
  31.         compress="gzip -c9"
  32.         file_ext=".gz"
  33.         ;;
  34.     tarbz2-pkg)
  35.         compress="bzip2 -c9"
  36.         file_ext=".bz2"
  37.         ;;
  38.     *)
  39.         echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2
  40.         exit 1
  41.         ;;
  42. esac
  43.  
  44.  
  45. #
  46. # Clean-up and re-create the temporary directory
  47. #
  48. rm -rf -- "${tmpdir}"
  49. mkdir -p -- "${tmpdir}/boot"
  50.  
  51.  
  52. #
  53. # Try to install modules
  54. #
  55. if grep -q '^CONFIG_MODULES=y' "${objtree}/.config"; then
  56.     make ARCH="${ARCH}" O="${objtree}" KBUILD_SRC= INSTALL_MOD_PATH="${tmpdir}" modules_install
  57. fi
  58.  
  59.  
  60. #
  61. # Install basic kernel files
  62. #
  63. cp -v -- "${objtree}/System.map" "${tmpdir}/boot/System.map-${KERNELRELEASE}"
  64. cp -v -- "${objtree}/.config" "${tmpdir}/boot/config-${KERNELRELEASE}"
  65. cp -v -- "${objtree}/vmlinux" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}"
  66.  
  67.  
  68. #
  69. # Install arch-specific kernel image(s)
  70. #
  71. case "${ARCH}" in
  72.     i386)
  73.         [ -f "${objtree}/arch/i386/boot/bzImage" ] && cp -v -- "${objtree}/arch/i386/boot/bzImage" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
  74.         ;;
  75.     alpha)
  76.         [ -f "${objtree}/arch/alpha/boot/vmlinux.gz" ] && cp -v -- "${objtree}/arch/alpha/boot/vmlinux.gz" "${tmpdir}/boot/vmlinuz-${KERNELRELEASE}"
  77.         ;;
  78.     vax)
  79.         [ -f "${objtree}/vmlinux.SYS" ] && cp -v -- "${objtree}/vmlinux.SYS" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.SYS"
  80.         [ -f "${objtree}/vmlinux.dsk" ] && cp -v -- "${objtree}/vmlinux.dsk" "${tmpdir}/boot/vmlinux-${KERNELRELEASE}.dsk"
  81.         ;;
  82.     *)
  83.         [ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${KERNELRELEASE}"
  84.         echo "" >&2
  85.         echo '** ** **  WARNING  ** ** **' >&2
  86.         echo "" >&2
  87.         echo "Your architecture did not define any architecture-dependant files" >&2
  88.         echo "to be placed into the tarball. Please add those to ${0} ..." >&2
  89.         echo "" >&2
  90.         sleep 5
  91.         ;;
  92. esac
  93.  
  94.  
  95. #
  96. # Create the tarball
  97. #
  98. (
  99.     cd "${tmpdir}"
  100.     tar cf - . | ${compress} > "${tarball}${file_ext}"
  101. )
  102.  
  103. echo "Tarball successfully created in ${tarball}${file_ext}"
  104.  
  105. exit 0
  106.  
  107.