# Grand Unified Makefile for Xen.
#
+INSTALL_DIR ?= $(shell pwd)/install
+
all: make-symlinks
$(MAKE) -C xen
$(MAKE) -C tools
install: all
$(MAKE) -C xen install
$(MAKE) -C tools install
+ $(shell cp -a install/boot/*$(LINUX_VER)* /boot/)
dist: all
- $(MAKE) prefix=`pwd`/install dist=yes -C xen install
- $(MAKE) prefix=`pwd`/install dist=yes -C tools install
+ $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C xen install
+ $(MAKE) prefix=$(INSTALL_DIR) dist=yes -C tools install
LINUX_VER ?= $(shell ( /bin/ls -ld linux-*-xen-sparse ) 2>/dev/null | sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!' )
LINUX_SRC ?= linux-$(LINUX_VER).tar.gz
-LINUX_CONFIG_DIR ?= install/boot
-
-linux:
- # build whatever is in the current linux directory
- ( cd ../linux-$(LINUX_VER)-xen ; ARCH=xen make bzImage )
+LINUX_CONFIG_DIR ?= $(INSTALL_DIR)/boot
-linux-src:
- [ -e $(LINUX_SRC) ] || wget ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-$(LINUX_VER).tar.gz -O- > linux-$(LINUX_VER).tar.gz
+pristine-linux-src:
+ [ -e $(LINUX_SRC) ] || wget ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-$(LINUX_VER).tar.gz -O- > $(LINUX_SRC)
-mklinux-xen-tree: linux-src
+linux-$(LINUX_VER)-xen: pristine-linux-src
$(RM) -rf linux-$(LINUX_VER)-xen
tar -x -z -f $(LINUX_SRC)
mv linux-$(LINUX_VER) linux-$(LINUX_VER)-xen
( cd linux-$(LINUX_VER)-xen-sparse ; ./mkbuildtree ../linux-$(LINUX_VER)-xen )
-world: dist mklinux-xen-tree
- cp ../$(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-xenU .config || make -C linux-$(LINUX_VER)-xen ARCH=xen xenU_config
- make -C linux-$(LINUX_VER)-xen ARCH=xen oldconfig
- make -C linux-$(LINUX_VER)-xen ARCH=xen dep
- make -C linux-$(LINUX_VER)-xen ARCH=xen bzImage
- INSTALLSUFFIX=U make -C linux-$(LINUX_VER)-xen ARCH=xen dist
- make -C linux-$(LINUX_VER)-xen ARCH=xen mrproper
- cp ../$(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-xen0 .config || ARCH=xen make ARCH=xen xen0_config
- make -C linux-$(LINUX_VER)-xen ARCH=xen oldconfig
- make -C linux-$(LINUX_VER)-xen ARCH=xen dep
- make -C linux-$(LINUX_VER)-xen ARCH=xen bzImage
- INSTALLSUFFIX=0 make -C linux-$(LINUX_VER)-xen ARCH=xen dist
+config_%: linux-$(LINUX_VER)-xen
+ $(MAKE) -C linux-$(LINUX_VER)-xen ARCH=xen mrproper
+ cp $(LINUX_CONFIG_DIR)/config-$(LINUX_VER)-$(subst config_,,$(@)) .config || $(MAKE) -C linux-$(LINUX_VER)-xen ARCH=xen $(subst config_,,$(@))_config
+ $(MAKE) -C linux-$(LINUX_VER)-xen ARCH=xen oldconfig
+ $(MAKE) -C linux-$(LINUX_VER)-xen ARCH=xen dep
+
+build_%:
+ $(MAKE) -C linux-$(LINUX_VER)-xen ARCH=xen bzImage
+ $(MAKE) -C linux-$(LINUX_VER)-xen ARCH=xen INSTALL_NAME=$(subst linux_,$(LINUX_VER)-,$(@)) prefix=$(INSTALL_DIR) install
+
+
+world: dist
+ $(MAKE) config_xenU
+ $(MAKE) build_xenU
+ $(MAKE) config_xen0
+ $(MAKE) build_xen0
+
clean: delete-symlinks
$(MAKE) -C xen clean
$(MAKE) -C tools clean
+mrproper: clean
+ rm -rf install linux-$(LINUX_VER)-xen linux-$(LINUX_VER).tar.gz
+
+
make-symlinks: delete-symlinks
ln -sf linux-$(LINUX_VER)-xen-sparse linux-xen-sparse
delete-symlinks:
$(RM) linux-xen-sparse
-
+
+
install: bzImage
mkdir -p $(prefix)/boot
- install -m0644 arch/$(ARCH)/boot/bzImage $(prefix)/boot/vmlinuz-$(KERNELRELEASE)$(INSTALLSUFFIX)
- install -m0644 vmlinux $(prefix)/boot/vmlinux-syms-$(KERNELRELEASE)$(INSTALLSUFFIX)
- install -m0664 .config $(prefix)/boot/config-$(KERNELRELEASE)$(INSTALLSUFFIX)
+ install -m0644 arch/$(ARCH)/boot/bzImage $(prefix)/boot/vmlinuz-$(INSTALL_NAME)
+ install -m0644 vmlinux $(prefix)/boot/vmlinux-syms-$(INSTALL_NAME)
+ install -m0664 .config $(prefix)/boot/config-$(INSTALL_NAME)
dist: bzImage
mkdir -p ../install/boot
- install -m0644 arch/$(ARCH)/boot/bzImage ../install/boot/vmlinuz-$(KERNELRELEASE)$(INSTALLSUFFIX)
- install -m0644 vmlinux ../install/boot/vmlinux-syms-$(KERNELRELEASE)$(INSTALLSUFFIX)
- install -m0664 .config ../install/boot/config-$(KERNELRELEASE)$(INSTALLSUFFIX)
+ install -m0644 arch/$(ARCH)/boot/bzImage ../install/boot/vmlinuz-$(INSTALL_NAME)
+ install -m0644 vmlinux ../install/boot/vmlinux-syms-$(INSTALL_NAME)
+ install -m0664 .config ../install/boot/config-$(INSTALL_NAME)
%_config: arch/xen/defconfig-%
rm -f .config arch/xen/defconfig
LINUX_VER=`( /bin/ls -ld ${DEST_BK_REP}/*linux-*-xen-sparse ) 2>/dev/null | sed -e 's!^.*linux-\(.\+\)-xen-sparse!\1!'`
if [ -e ${LINUX_DIR}/linux-${LINUX_VER}.tar.gz ]
- LINUX_SRC=${LINUX_DIR}/linux-${LINUX_VER}.tar.gz
- elif
- wget ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-${LINUX_VER}.tar.gz -O- > linux-${LINUX_VER}.tar.gz
- LINUX_SRC=''
+ export LINUX_SRC=${LINUX_DIR}/linux-${LINUX_VER}.tar.gz
fi
cd ${DEST_BK_REP}
+ ln -sf ../install install
make world
cd ../install/boot
- ln -s vmlinux-${LINUX_VER}-xen0 xenolinux.gz
+ [ -r vmlinuz-${LINUX_VER}-xen0 ] && ln -s vmlinuz-${LINUX_VER}-xen0 xenolinux.gz
else
# old style repository without 'make world'