| Jan-Benedict Glaw | 6d983fe | 2005-05-24 11:27:37 +0200 | [diff] [blame] | 1 | #!/bin/sh | 
|  | 2 |  | 
|  | 3 | # | 
|  | 4 | # buildtar 0.0.3 | 
|  | 5 | # | 
|  | 6 | # (C) 2004-2005 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 | version="${VERSION}.${PATCHLEVEL}.${SUBLEVEL}${EXTRAVERSION}${EXTRANAME}" | 
|  | 19 | tmpdir="${objtree}/tar-install" | 
|  | 20 | tarball="${objtree}/linux-${version}.tar" | 
|  | 21 |  | 
|  | 22 |  | 
|  | 23 | # | 
|  | 24 | # Figure out how to compress, if requested at all | 
|  | 25 | # | 
|  | 26 | case "${1}" in | 
|  | 27 | tar-pkg) | 
|  | 28 | compress="cat" | 
|  | 29 | file_ext="" | 
|  | 30 | ;; | 
|  | 31 | targz-pkg) | 
|  | 32 | compress="gzip -c9" | 
|  | 33 | file_ext=".gz" | 
|  | 34 | ;; | 
|  | 35 | tarbz2-pkg) | 
|  | 36 | compress="bzip2 -c9" | 
|  | 37 | file_ext=".bz2" | 
|  | 38 | ;; | 
|  | 39 | *) | 
|  | 40 | echo "Unknown tarball target \"${1}\" requested, please add it to ${0}." >&2 | 
|  | 41 | exit 1 | 
|  | 42 | ;; | 
|  | 43 | esac | 
|  | 44 |  | 
|  | 45 |  | 
|  | 46 | # | 
|  | 47 | # Clean-up and re-create the temporary directory | 
|  | 48 | # | 
|  | 49 | rm -rf -- "${tmpdir}" | 
|  | 50 | mkdir -p -- "${tmpdir}/boot" | 
|  | 51 |  | 
|  | 52 |  | 
|  | 53 | # | 
|  | 54 | # Try to install modules | 
|  | 55 | # | 
|  | 56 | if ! make INSTALL_MOD_PATH="${tmpdir}" modules_install; then | 
|  | 57 | echo "" >&2 | 
|  | 58 | echo "Ignoring error at module_install time, since that could be" >&2 | 
|  | 59 | echo "a result of missing local modutils/module-init-tools," >&2 | 
|  | 60 | echo "or you just didn't compile in module support at all..." >&2 | 
|  | 61 | echo "" >&2 | 
|  | 62 | fi | 
|  | 63 |  | 
|  | 64 |  | 
|  | 65 | # | 
|  | 66 | # Install basic kernel files | 
|  | 67 | # | 
|  | 68 | cp -v -- System.map "${tmpdir}/boot/System.map-${version}" | 
|  | 69 | cp -v -- .config "${tmpdir}/boot/config-${version}" | 
|  | 70 | cp -v -- vmlinux "${tmpdir}/boot/vmlinux-${version}" | 
|  | 71 |  | 
|  | 72 |  | 
|  | 73 | # | 
|  | 74 | # Install arch-specific kernel image(s) | 
|  | 75 | # | 
|  | 76 | case "${ARCH}" in | 
|  | 77 | i386) | 
|  | 78 | [ -f arch/i386/boot/bzImage ] && cp -v -- arch/i386/boot/bzImage "${tmpdir}/boot/vmlinuz-${version}" | 
|  | 79 | ;; | 
|  | 80 | alpha) | 
|  | 81 | [ -f arch/alpha/boot/vmlinux.gz ] && cp -v -- arch/alpha/boot/vmlinux.gz "${tmpdir}/boot/vmlinuz-${version}" | 
|  | 82 | ;; | 
|  | 83 | vax) | 
|  | 84 | [ -f vmlinux.SYS ] && cp -v -- vmlinux.SYS "${tmpdir}/boot/vmlinux-${version}.SYS" | 
|  | 85 | [ -f vmlinux.dsk ] && cp -v -- vmlinux.dsk "${tmpdir}/boot/vmlinux-${version}.dsk" | 
|  | 86 | ;; | 
|  | 87 | *) | 
|  | 88 | [ -f "${KBUILD_IMAGE}" ] && cp -v -- "${KBUILD_IMAGE}" "${tmpdir}/boot/vmlinux-kbuild-${version}" | 
|  | 89 | echo "" >&2 | 
|  | 90 | echo '** ** **  WARNING  ** ** **' >&2 | 
|  | 91 | echo "" >&2 | 
|  | 92 | echo "Your architecture did not define any architecture-dependant files" >&2 | 
|  | 93 | echo "to be placed into the tarball. Please add those to ${0} ..." >&2 | 
|  | 94 | echo "" >&2 | 
|  | 95 | sleep 5 | 
|  | 96 | ;; | 
|  | 97 | esac | 
|  | 98 |  | 
|  | 99 |  | 
|  | 100 | # | 
|  | 101 | # Create the tarball | 
|  | 102 | # | 
|  | 103 | ( | 
|  | 104 | cd "${tmpdir}" | 
|  | 105 | tar cf - . | ${compress} > "${tarball}${file_ext}" | 
|  | 106 | ) | 
|  | 107 |  | 
|  | 108 | echo "Tarball successfully created in ${tarball}${file_ext}" | 
|  | 109 |  | 
|  | 110 | exit 0 | 
|  | 111 |  |