1 KERNEL_VERSION = 3.10.17 2 KERNEL_URL = http://www.kernel.org/pub/linux/kernel/v3.x/linux-$(KERNEL_VERSION).tar.xz 3 4 SLIRP_VERSION = 1.0.16 5 SLIRP_URL = http://sourceforge.net/projects/slirp/files/slirp/$(SLIRP_VERSION)/slirp-$(SLIRP_VERSION).tar.gz 6 7 all: linux slirp 8 9 include ../Makefile.common 10 11 archive/linux-$(KERNEL_VERSION).tar.xz: 12 -mkdir archive >/dev/null 2>/dev/null 13 wget -O archive/linux-$(KERNEL_VERSION).tar.xz.new $(KERNEL_URL) 14 xz -dc archive/linux-$(KERNEL_VERSION).tar.xz.new | tar -tf - >/dev/null 15 mv archive/linux-$(KERNEL_VERSION).tar.xz.new archive/linux-$(KERNEL_VERSION).tar.xz 16 17 archive/slirp-$(SLIRP_VERSION).tar.gz: 18 -mkdir archive >/dev/null 2>/dev/null 19 wget -O archive/slirp-$(SLIRP_VERSION).tar.gz.new $(SLIRP_URL) 20 gzip -dc archive/slirp-$(SLIRP_VERSION).tar.gz.new | tar -tf - >/dev/null 21 mv archive/slirp-$(SLIRP_VERSION).tar.gz.new archive/slirp-$(SLIRP_VERSION).tar.gz 22 23 linux-$(KERNEL_VERSION)/linux: archive/linux-$(KERNEL_VERSION).tar.xz 24 rm -rf linux-$(KERNEL_VERSION) 25 xz -dc archive/linux-$(KERNEL_VERSION).tar.xz | tar -xf - 26 $(MAKE) -C linux-$(KERNEL_VERSION) ARCH=um defconfig 27 if file /bin/bash | grep '64-bit' >/dev/null; then echo 'CONFIG_64BIT=y' >> linux-$(KERNEL_VERSION)/.config; fi 28 echo 'CONFIG_BLK_DEV_INITRD=y' >> linux-$(KERNEL_VERSION)/.config 29 echo 'CONFIG_BLK_DEV_LOOP=y' >> linux-$(KERNEL_VERSION)/.config 30 echo 'CONFIG_MODULES=n' >> linux-$(KERNEL_VERSION)/.config 31 $(MAKE) -C linux-$(KERNEL_VERSION) ARCH=um olddefconfig 32 $(MAKE) -C linux-$(KERNEL_VERSION) ARCH=um linux 33 34 linux: linux-$(KERNEL_VERSION)/linux Makefile 35 cat linux-$(KERNEL_VERSION)/linux > linux.new 36 chmod 755 linux.new 37 strip linux.new 38 mv linux.new linux 39 40 slirp-$(SLIRP_VERSION)/src/slirp: archive/slirp-$(SLIRP_VERSION).tar.gz 41 rm -rf slirp-$(SLIRP_VERSION) 42 gzip -dc archive/slirp-$(SLIRP_VERSION).tar.gz | tar -xf - 43 cd slirp-$(SLIRP_VERSION) && patch -p1 < ../patches/slirp/slirp-$(SLIRP_VERSION)-cloudseed.patch && touch src/debug.p 44 cd slirp-$(SLIRP_VERSION)/src && ( echo '#define inline /**/'; cat slirp.h ) > slirp.h.new && mv slirp.h.new slirp.h 45 cd slirp-$(SLIRP_VERSION)/src && sed -i 's@ttyname([0-9][0-9]*)@((&) ? (&) : "")@g' main.c && touch main.p 46 cd slirp-$(SLIRP_VERSION)/src && ./configure 47 echo '#define FULL_BOLT 1' >> slirp-$(SLIRP_VERSION)/src/config.h 48 $(MAKE) -C slirp-$(SLIRP_VERSION)/src 49 50 slirp: slirp-$(SLIRP_VERSION)/src/slirp 51 cat slirp-$(SLIRP_VERSION)/src/slirp > slirp.new 52 chmod 755 slirp.new 53 mv slirp.new slirp 54 55 fakeroot: linux slirp 56 57 clean: 58 rm -rf linux-* slirp-* 59 rm -f linux linux.new slirp slirp.new 60 rm -f uml_root.img uml_root.img.new 61 rm -rf uml_root uml_root.new 62 63 distclean: clean 64 rm -f archive/linux-*.tar.xz archive/slirp-*.tar.gz 65 rm -f archive/*.new 66 -rmdir archive 67 68 .PHONY: all clean distclean |