paul@31 | 1 | #!/bin/sh |
paul@31 | 2 | |
paul@31 | 3 | # Configuration: |
paul@31 | 4 | if [ -e userinstall-defaults-uml ]; then |
paul@31 | 5 | . "$PWD/userinstall-defaults-uml" |
paul@31 | 6 | elif [ -e /etc/default/userinstall-uml ]; then |
paul@31 | 7 | . /etc/default/userinstall-uml |
paul@31 | 8 | else |
paul@31 | 9 | echo "No defaults found for userinstall (UML)." 1>&2 |
paul@31 | 10 | exit 1 |
paul@31 | 11 | fi |
paul@31 | 12 | |
paul@31 | 13 | if [ ! -e "$PACKAGEROOT" ]; then |
paul@31 | 14 | echo "A package root must first be made using user-setup." 1>&2 |
paul@31 | 15 | exit 1 |
paul@31 | 16 | fi |
paul@31 | 17 | |
paul@35 | 18 | if [ "$1" = '--root' ]; then |
paul@35 | 19 | AS_USER="sudo" |
paul@35 | 20 | fi |
paul@35 | 21 | |
paul@31 | 22 | THISDIR=`dirname "$0"` |
paul@31 | 23 | |
paul@31 | 24 | if [ ! -e linux ]; then |
paul@31 | 25 | if [ ! -e "$LINUXDIRNAME" ]; then |
paul@31 | 26 | if [ ! -e "$LINUXARCHIVE" ]; then |
paul@31 | 27 | echo "Getting the Linux kernel archive..." 1>&2 |
paul@31 | 28 | wget -O "$LINUXARCHIVE" "$LINUXADDRESS" |
paul@31 | 29 | fi |
paul@31 | 30 | |
paul@31 | 31 | echo "Unpacking the archive..." 1>&2 |
paul@31 | 32 | tar jxf "$LINUXARCHIVE" |
paul@31 | 33 | fi |
paul@31 | 34 | if [ ! -e "$LINUXDIRNAME/linux" ]; then |
paul@31 | 35 | |
paul@31 | 36 | # Copy our configuration into the unpacked directory. |
paul@31 | 37 | # Normally we would do this: |
paul@31 | 38 | # make defconfig ARCH=um |
paul@31 | 39 | # make menuconfig ARCH=um |
paul@31 | 40 | # In "File systems", "CD-ROM/DVD Filesystems", press Y for "ISO 9660...". |
paul@31 | 41 | # The supplied configuration file should include this information. |
paul@31 | 42 | echo "Adding configuration..." 1>&2 |
paul@31 | 43 | if [ -e "$LINUXDIRNAME/.config" ]; then |
paul@31 | 44 | if [ ! -e "$LINUXDIRNAME/.config.original" ]; then |
paul@31 | 45 | echo "$LINUXDIRNAME/.config -> $LINUXDIRNAME/.config.original" 1>&2 |
paul@31 | 46 | mv "$LINUXDIRNAME/.config" "$LINUXDIRNAME/.config.original" |
paul@31 | 47 | fi |
paul@31 | 48 | fi |
paul@31 | 49 | |
paul@31 | 50 | echo "uml-linux-build.config -> $LINUXDIRNAME/.config" |
paul@31 | 51 | cp "$THISDIR/uml-linux-build.config" "$LINUXDIRNAME/.config" |
paul@31 | 52 | fi |
paul@31 | 53 | |
paul@31 | 54 | # Enter the unpacked directory and build. |
paul@31 | 55 | cd "$LINUXDIRNAME" |
paul@31 | 56 | |
paul@31 | 57 | #echo "Patching hostaudio for SDL..." |
paul@31 | 58 | #patch -p0 < ../patches/hostaudio_kern.c.diff |
paul@31 | 59 | |
paul@31 | 60 | echo "Building..." 1>&2 |
paul@31 | 61 | make ARCH=um |
paul@31 | 62 | |
paul@35 | 63 | echo "Making the modules..." 1>&2 |
paul@35 | 64 | make modules ARCH=um |
paul@31 | 65 | |
paul@31 | 66 | cd .. |
paul@31 | 67 | fi |
paul@31 | 68 | |
paul@35 | 69 | echo "Installing the modules..." 1>&2 |
paul@35 | 70 | "$THISDIR/uml-access-image" "$AS_USER" make -C "$LINUXDIRNAME" modules_install INSTALL_MOD_PATH="$IMAGEDIR" ARCH=um |
paul@35 | 71 | |
paul@31 | 72 | # Now get the executable and remove the build directory. |
paul@31 | 73 | if [ ! -e linux ]; then |
paul@31 | 74 | mv "$LINUXDIRNAME/linux" . |
paul@31 | 75 | fi |
paul@31 | 76 | |
paul@31 | 77 | if [ -e linux ]; then |
paul@31 | 78 | echo "To remove the Linux kernel sources, do this:" 1>&2 |
paul@31 | 79 | echo "rm -rf '$LINUXDIRNAME'" 1>&2 |
paul@31 | 80 | fi |