path := base name := kernel suffix := gz version = $(if $(findstring raspberrypi,$(DESTINATION)),3.2.27,) version_of = src/linux latest_version = $(shell wget -q "http://www.kernel.org" -O - | egrep "http://[^\"]+3\.[0-9]+(\.[0-9]+)?.tar.bz2" | head -n 1 | sed "s/.*linux-\([0-9.]*\)\..*/\\1/") version_base = $(word 1,$(subst ., ,$(version))).$(word 2,$(subst ., ,$(version))) version_suffix = $(shell svn info src/linux_$(ARCH)$(if $(findstring raspberrypi,$(DESTINATION)),-raspberrypi,).config | grep Rev: | sed "s/.*: //") image = $(if $(findstring arm,$(ARCH)),zImage,bzImage) src_url = $(if $(findstring raspberrypi,$(DESTINATION)),https://github.com/raspberrypi/linux/tarball/rpi-3.2.27,http://www.kernel.org/pub/linux/kernel/v3.x/linux-$(version).tar.bz2) src_suffix = $(if $(findstring raspberrypi,$(DESTINATION)),tgz,bz2) src_files := linux aufs-standalone module-init-tools deps := gcc mercurial patch libncurses5-dev git lzma include ../Makefile.default include ../Makefile.tools all: $(name).$(suffix) clean: _clean rm -rf lib rm -f include rm -rf src/linux.$(src_suffix) rm -rf src/linux-$(version) rm -rf src/aufs rm -rf src/aufs-$(version_base) rm -rf src/aufs-standalone.tgz rm -rf src/raspberrypi.tgz rm -rf src/raspberrypi rm -rf src/module-init-tools.tgz rm -rf src/module-init-tools rm -f $(name).$(suffix) $(name).$(suffix): src/linux/arch/$(ARCH)/boot/$(image) lib include cp -up src/linux/arch/$(ARCH)/boot/$(image) $(modulname) ln -fs $(modulname) $@ src/linux/arch/$(ARCH)/boot/$(image): src/linux echo "$(indent)Build Kernel..." $(MAKE) -C src/linux touch src/linux-$(version) -r src/linux/.config lib: src/linux $(if $(findstring raspberrypi,$(DESTINATION)),src/module-init-tools/build/depmod,) echo "$(indent)Build Kernel Modules..." rm -rf lib $(MAKE) -C src/linux modules INSTALL_MOD_PATH=$$(pwd) $(MAKE) -C src/linux modules_install $(depmod) -m -b . $$(ls lib/modules) touch src/linux-$(version) -r src/linux/.config include: src/linux $(MAKE) -C src/linux headers_install ln -fns src/linux/usr/include include touch src/linux-$(version) -r src/linux/.config src/linux: src/linux-$(version) src/linux-$(version)/.config ln -fns linux-$(version) $@ src/linux-$(version): src/linux.$(src_suffix) src/aufs $(if $(findstring arm,$(ARCH)),, src/bootsplash.patch) rm -rf $@ tar xf src/linux.$(src_suffix) -C src if [ "$(DESTINATION)" = "raspberrypi" ]; then \ mv src/raspberrypi-linux-* $@; \ fi $(MAKE) patch src_path=$@ src_name=aufs/aufs3-kbuild $(MAKE) patch src_path=$@ src_name=aufs/aufs3-base $(MAKE) patch src_path=$@ src_name=aufs/aufs3-mmap cp -r src/aufs/{Documentation,fs,include} $@ if [ "$(ARCH)" != "arm" ]; then \ $(MAKE) patch src_path=$@ src_name=bootsplash; \ $(MAKE) patch src_path=$@ src_name=hda_hdmi; \ $(MAKE) patch src_path=$@ src_name=hid_rcking; \ fi src/linux.$(src_suffix): $(MAKE) -f ../Makefile.getfile file=$@ version=$(version) url="$(src_url)" src/linux-$(version)/.config: src/linux_$(ARCH)$(if $(findstring raspberrypi,$(DESTINATION)),-raspberrypi,).config cp src/linux_$(ARCH)$(if $(findstring raspberrypi,$(DESTINATION)),-raspberrypi,)-$(version).config $@ 2>/dev/null || cp src/linux_$(ARCH)$(if $(findstring raspberrypi,$(DESTINATION)),-raspberrypi,).config $@; \ sed "s/CONFIG_LOCALVERSION=\".*\"/CONFIG_LOCALVERSION=\"$(version_suffix)\"/" -i $@ cd $(@D); yes "" | $(MAKE) oldconfig src/bootsplash.patch: echo "Bootsplash deactivated" # path=$$(wget -q "http://x-softsi.com.br/site/?p=26" -O - | egrep "bootsplash-[0-9.]+-$(version_base).patch" | sed "s/.*\"\([^\"]\+$(version_base).patch\)\".*/\\1/"); \ # $(MAKE) -f ../Makefile.getfile file=$@ version=$(version_base) url="$(test -n "$$path" && echo "http://x-softsi.com.br$$path)" src/aufs: src/aufs-$(version_base) ln -fns $(^F) $@ src/aufs-$(version_base): src/aufs-standalone.tgz rm -rf $@* mkdir -p $@-src tar xf $^ -C $@-src mv $@-src/* $@ rm -r $@-src touch $@ cd $@; patch -p1 -i ../aufs_cpup.patch cd $@; patch -p1 -i ../aufs_create.patch sed 's/#define AUFS_VERSION.*/#define AUFS_VERSION "3.x-rcN"/' -i $@/include/uapi/linux/aufs_type.h src/aufs-standalone.tgz: $(MAKE) -f ../Makefile.getfile version=$(version_base) file=$@ rule=src/aufs-HEAD src/aufs-HEAD: git clone git://git.code.sf.net/p/aufs/aufs3-standalone $@ # cd $@; git checkout origin/aufs3.x-rcN # feste aufs-Version fuer Kernel 3.12.x vom 12.11.2013 cd $@; git checkout 8e9c589e2184bf5622a3abd4c7654636c9f08f97 tar -caf $(file) -C $(@D) $(@F) rm -rf $@ src/module-init-tools/build/depmod: src/module-init-tools cd $^; autoreconf -i cd $^; ./configure $(MAKE) -C $^ $(@F) src/module-init-tools: src/module-init-tools.tgz rm -rf $@ tar xf $^ -C $(@D) mv src/opensuse-$(@F) $@ src/module-init-tools.tgz: wget "http://gitorious.org/opensuse/module-init-tools/archive-tarball/master" -O /dev/null sleep 10 $(MAKE) -f ../Makefile.getfile file=$@ url="http://gitorious.org/opensuse/module-init-tools/archive-tarball/master"