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@31 | 18 | THISDIR=`dirname "$0"` |
paul@31 | 19 | |
paul@31 | 20 | if [ ! -e linux ]; then |
paul@31 | 21 | if [ ! -e "$LINUXDIRNAME" ]; then |
paul@31 | 22 | if [ ! -e "$LINUXARCHIVE" ]; then |
paul@31 | 23 | echo "Getting the Linux kernel archive..." 1>&2 |
paul@31 | 24 | wget -O "$LINUXARCHIVE" "$LINUXADDRESS" |
paul@31 | 25 | fi |
paul@31 | 26 | |
paul@31 | 27 | echo "Unpacking the archive..." 1>&2 |
paul@31 | 28 | tar jxf "$LINUXARCHIVE" |
paul@31 | 29 | fi |
paul@31 | 30 | if [ ! -e "$LINUXDIRNAME/linux" ]; then |
paul@31 | 31 | |
paul@31 | 32 | # Copy our configuration into the unpacked directory. |
paul@31 | 33 | # Normally we would do this: |
paul@31 | 34 | # make defconfig ARCH=um |
paul@31 | 35 | # make menuconfig ARCH=um |
paul@31 | 36 | # In "File systems", "CD-ROM/DVD Filesystems", press Y for "ISO 9660...". |
paul@31 | 37 | # The supplied configuration file should include this information. |
paul@31 | 38 | echo "Adding configuration..." 1>&2 |
paul@31 | 39 | if [ -e "$LINUXDIRNAME/.config" ]; then |
paul@31 | 40 | if [ ! -e "$LINUXDIRNAME/.config.original" ]; then |
paul@31 | 41 | echo "$LINUXDIRNAME/.config -> $LINUXDIRNAME/.config.original" 1>&2 |
paul@31 | 42 | mv "$LINUXDIRNAME/.config" "$LINUXDIRNAME/.config.original" |
paul@31 | 43 | fi |
paul@31 | 44 | fi |
paul@31 | 45 | |
paul@31 | 46 | echo "uml-linux-build.config -> $LINUXDIRNAME/.config" |
paul@31 | 47 | cp "$THISDIR/uml-linux-build.config" "$LINUXDIRNAME/.config" |
paul@31 | 48 | fi |
paul@31 | 49 | |
paul@31 | 50 | # Enter the unpacked directory and build. |
paul@31 | 51 | cd "$LINUXDIRNAME" |
paul@31 | 52 | |
paul@31 | 53 | #echo "Patching hostaudio for SDL..." |
paul@31 | 54 | #patch -p0 < ../patches/hostaudio_kern.c.diff |
paul@31 | 55 | |
paul@31 | 56 | echo "Building..." 1>&2 |
paul@31 | 57 | make ARCH=um |
paul@31 | 58 | |
paul@31 | 59 | # Mount the root filesystem and install the modules. |
paul@31 | 60 | echo "Making the modules..." 1>&2 |
paul@31 | 61 | make modules ARCH=um |
paul@31 | 62 | |
paul@31 | 63 | echo "Installing the modules..." 1>&2 |
paul@31 | 64 | make modules_install INSTALL_MOD_PATH="$PACKAGEROOT" ARCH=um |
paul@31 | 65 | cd .. |
paul@31 | 66 | fi |
paul@31 | 67 | |
paul@31 | 68 | # Now get the executable and remove the build directory. |
paul@31 | 69 | if [ ! -e linux ]; then |
paul@31 | 70 | mv "$LINUXDIRNAME/linux" . |
paul@31 | 71 | fi |
paul@31 | 72 | |
paul@31 | 73 | if [ -e linux ]; then |
paul@31 | 74 | echo "To remove the Linux kernel sources, do this:" 1>&2 |
paul@31 | 75 | echo "rm -rf '$LINUXDIRNAME'" 1>&2 |
paul@31 | 76 | fi |