LINUX_SERIES = 2.6 LINUX_VER = 2.6.18 EXTRAVERSION ?= xen LINUX_SRCDIR = linux-$(LINUX_VER)-xen LINUX_DIR = build-linux-$(LINUX_VER)-$(EXTRAVERSION)_$(XEN_TARGET_ARCH) IMAGE_TARGET ?= vmlinuz INSTALL_BOOT_PATH ?= $(DESTDIR) ifeq ($(XEN_TARGET_ARCH),ia64) INSTALL_BOOT_PATH := $(DESTDIR)/boot endif LINUX_VER3 := $(LINUX_SERIES).$(word 3, $(subst ., ,$(LINUX_VER))) include buildconfigs/Rules.mk # The real action starts here! .PHONY: build build: $(LINUX_DIR)/include/linux/autoconf.h if grep "^CONFIG_MODULES=" $(LINUX_DIR)/.config ; then \ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) modules ; \ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_MOD_PATH=$(DESTDIR) modules_install ; \ fi $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(DESTDIR) $(IMAGE_TARGET) mkdir -p $(INSTALL_BOOT_PATH) $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) INSTALL_PATH=$(INSTALL_BOOT_PATH) install $(LINUX_SRCDIR)/.valid-src: ref-linux-$(LINUX_VER)/.valid-ref rm -rf $(LINUX_SRCDIR) cp -al $(Mk.tmp ; \ rm -f Makefile ; mv Mk.tmp Makefile ) touch $@ $(LINUX_DIR)/include/linux/autoconf.h: $(LINUX_SRCDIR)/.valid-src rm -rf $(LINUX_DIR) mkdir -p $(LINUX_DIR) # Re-use config from install dir if one exits else use default config CONFIG_VERSION=$$(sed -ne 's/$$(XENGUEST)//; s/^EXTRAVERSION = //p' $(LINUX_SRCDIR)/Makefile); \ [ -r $(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) ] && \ cp $(DESTDIR)/boot/config-$(LINUX_VER3)$$CONFIG_VERSION-$(EXTRAVERSION) $(LINUX_DIR)/.config \ || sh buildconfigs/create_config.sh $(LINUX_DIR)/.config $(EXTRAVERSION) $(XEN_TARGET_ARCH) $(XEN_SYSTYPE) # See if we need to munge config to enable PAE $(MAKE) CONFIG_FILE=$(LINUX_DIR)/.config -f buildconfigs/Rules.mk config-update-pae echo "-$(EXTRAVERSION)" >$(LINUX_DIR)/.xenguest $(MAKE) -C $(LINUX_SRCDIR) ARCH=$(LINUX_ARCH) oldconfig O=$$(/bin/pwd)/$(LINUX_DIR) .PHONY: prep prep: $(LINUX_DIR)/include/linux/autoconf.h .PHONY: config config: CONFIGMODE = menuconfig config: $(LINUX_DIR)/include/linux/autoconf.h $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) $(CONFIGMODE) .PHONY: clean clean:: [ ! -d $(LINUX_DIR) ] || \ $(MAKE) -C $(LINUX_DIR) ARCH=$(LINUX_ARCH) clean .PHONY: delete delete: rm -rf tmp-linux-$(LINUX_VER) $(LINUX_DIR) .PHONY: mrpropper mrpropper: rm -rf $(LINUX_SRCDIR) rm -f linux-$(LINUX_VER).tar.bz2