diff --git a/.rootkeys b/.rootkeys index 7fd3ddd868..9f2d05bfcc 100644 --- a/.rootkeys +++ b/.rootkeys @@ -313,8 +313,8 @@ 413cb3b5F56TvQWAmO5TsuzhtzLFPQ netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c 413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs 413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.9/agpgart.patch -40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Make.defs 3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile +40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Rules.mk 4124b307nRyK3dhn1hAsvrY76NuV3g tools/check/Makefile 4124b307vHLUWbfpemVefmaWDcdfag tools/check/README 4124b307jt7T3CHysgl9LijNHSe1tA tools/check/check_brctl diff --git a/Makefile b/Makefile index 33bac70d43..094acb7fe4 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,12 @@ XKERNELS := $(foreach kernel, $(KERNELS), $(patsubst buildconfigs/mk.%,%,$(wildc export DESTDIR +# Export target architecture overrides to Xen and Linux sub-trees. +ifneq ($(ARCH),) +export TARGET_SUBARCH := $(ARCH) +export SUBARCH := $(subst x86_32,i386,$(ARCH)) +endif + include buildconfigs/Rules.mk .PHONY: all dist install xen tools kernels docs world clean mkpatches mrproper @@ -36,8 +42,8 @@ install: xen checked-tools kernels docs # Only check for install req'mts on 'make install', not on 'make dist'. checked-tools: - $(MAKE) -C tools/check install - $(MAKE) -C tools install + $(MAKE) ARCH=$(ARCH) -C tools/check install + $(MAKE) ARCH=$(ARCH) -C tools install # build and install everything into local dist directory dist: xen tools kernels docs @@ -51,7 +57,7 @@ xen: $(MAKE) -C xen install tools: - $(MAKE) -C tools install + $(MAKE) ARCH=$(ARCH) -C tools install kernels: for i in $(XKERNELS) ; do $(MAKE) $$i-build || exit 1; done @@ -86,7 +92,7 @@ world: # clean doesn't do a kclean clean: $(MAKE) -C xen clean - $(MAKE) -C tools clean + $(MAKE) ARCH=$(ARCH) -C tools clean $(MAKE) -C docs clean # clean, but blow away kernel build tree plus tar balls diff --git a/tools/Make.defs b/tools/Rules.mk similarity index 54% rename from tools/Make.defs rename to tools/Rules.mk index 132e4347cc..2876c7eb61 100644 --- a/tools/Make.defs +++ b/tools/Rules.mk @@ -1,4 +1,15 @@ # -*- mode: Makefile; -*- + XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc XEN_LIBXC = $(XEN_ROOT)/tools/libxc XEN_LIBXUTIL = $(XEN_ROOT)/tools/libxutil + +ifeq ($(ARCH),x86_32) +CFLAGS += -m32 -march=i686 +LDFLAGS += -m elf_i386 +endif + +ifeq ($(ARCH),x86_64) +CFLAGS += -m64 +LDFLAGS += -m elf_x86_64 +endif diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile index bbbbe897af..ef41c2ed40 100644 --- a/tools/libxc/Makefile +++ b/tools/libxc/Makefile @@ -10,7 +10,7 @@ SONAME = libxc.so.$(MAJOR) CC = gcc XEN_ROOT = ../.. -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk vpath %c $(XEN_LIBXUTIL) INCLUDES += -I $(XEN_LIBXUTIL) diff --git a/tools/libxutil/Makefile b/tools/libxutil/Makefile index 63cb4fe0d1..1fb2da295d 100644 --- a/tools/libxutil/Makefile +++ b/tools/libxutil/Makefile @@ -4,7 +4,7 @@ INSTALL_DATA = $(INSTALL) -m0644 INSTALL_PROG = $(INSTALL) -m0755 INSTALL_DIR = $(INSTALL) -d -m0755 -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk CC = gcc diff --git a/tools/misc/Makefile b/tools/misc/Makefile index 84166c72fc..b339e300db 100644 --- a/tools/misc/Makefile +++ b/tools/misc/Makefile @@ -3,10 +3,10 @@ INSTALL_PROG = $(INSTALL) -m0755 INSTALL_DIR = $(INSTALL) -d -m0755 XEN_ROOT=../.. -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk -CC = gcc -CFLAGS = -Wall -Werror -O3 +CC = gcc +CFLAGS += -Wall -Werror -O3 INCLUDES += -I $(XEN_XC) INCLUDES += -I $(XEN_LIBXC) @@ -27,7 +27,8 @@ install: all $(INSTALL_DIR) $(DESTDIR)/usr/sbin $(INSTALL_PROG) $(INSTALL_BIN) $(DESTDIR)/usr/bin $(INSTALL_PROG) $(INSTALL_SBIN) $(DESTDIR)/usr/sbin - $(MAKE) -C miniterm install +# No sense in installing miniterm on the Xen box. +# $(MAKE) -C miniterm install clean: $(RM) *.o $(TARGETS) *~ diff --git a/tools/python/Makefile b/tools/python/Makefile index 18bfeb1f7d..7d152e12ae 100644 --- a/tools/python/Makefile +++ b/tools/python/Makefile @@ -1,9 +1,12 @@ +XEN_ROOT = ../.. +include $(XEN_ROOT)/tools/Rules.mk + all: - python setup.py build + CFLAGS="$(CFLAGS)" python setup.py build install: all - python setup.py install --home="$(DESTDIR)/usr" + CFLAGS="$(CFLAGS)" python setup.py install --home="$(DESTDIR)/usr" clean: rm -rf build *.pyc *.pyo *.o *.a *~ diff --git a/tools/vnet/vnetd/Makefile b/tools/vnet/vnetd/Makefile index a507666b5d..3783fa3833 100644 --- a/tools/vnet/vnetd/Makefile +++ b/tools/vnet/vnetd/Makefile @@ -21,7 +21,7 @@ all: vnetd #---------------------------------------------------------------------------- XEN_ROOT = ../../.. -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk VNETD_INSTALL_DIR = /usr/sbin diff --git a/tools/x2d2/Makefile b/tools/x2d2/Makefile index fbe408107f..43f6964cae 100644 --- a/tools/x2d2/Makefile +++ b/tools/x2d2/Makefile @@ -1,8 +1,8 @@ XEN_ROOT=../.. -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk CC = gcc -CFLAGS = -Wall -Werror -O3 -fno-strict-aliasing +CFLAGS += -Wall -Werror -O3 -fno-strict-aliasing CFLAGS += -I $(XEN_XC) CFLAGS += -I $(XEN_LIBXC) diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile index 9133271b66..5fe6a9d61d 100644 --- a/tools/xentrace/Makefile +++ b/tools/xentrace/Makefile @@ -4,10 +4,10 @@ INSTALL_DIR = $(INSTALL) -d -m0755 INSTALL_DATA = $(INSTALL) -m0644 XEN_ROOT=../.. -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk CC = gcc -CFLAGS = -Wall -Werror -O3 +CFLAGS += -Wall -Werror -O3 CFLAGS += -I $(XEN_XC) CFLAGS += -I $(XEN_LIBXC) diff --git a/tools/xfrd/Makefile b/tools/xfrd/Makefile index 1b07ffa498..e986755140 100644 --- a/tools/xfrd/Makefile +++ b/tools/xfrd/Makefile @@ -9,7 +9,7 @@ INSTALL_PROG = $(INSTALL) -m0755 INSTALL_DIR = $(INSTALL) -d -m0755 XEN_ROOT = ../.. -include $(XEN_ROOT)/tools/Make.defs +include $(XEN_ROOT)/tools/Rules.mk XFRD_INSTALL_DIR = /usr/sbin