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 | |