bitkeeper revision 1.1159.223.44 (41f8c832pMZZ7WmykH_gAUBQHtPF1A)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Thu, 27 Jan 2005 10:53:38 +0000 (10:53 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Thu, 27 Jan 2005 10:53:38 +0000 (10:53 +0000)
Allow target architecture to be specified by specifying ARCH variable to
root Makefile (e.g, make ARCH=x86_32).

12 files changed:
.rootkeys
Makefile
tools/Make.defs [deleted file]
tools/Rules.mk [new file with mode: 0644]
tools/libxc/Makefile
tools/libxutil/Makefile
tools/misc/Makefile
tools/python/Makefile
tools/vnet/vnetd/Makefile
tools/x2d2/Makefile
tools/xentrace/Makefile
tools/xfrd/Makefile

index 4dde2f84604c986ad89d414002033651550d62db..b14c560ec86e660f5f18ced1145c658d09d9c3a4 100644 (file)
--- a/.rootkeys
+++ b/.rootkeys
 413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.9/agpgart.patch
 413aa1d0ewvSv-ohnNnQQNGsbPTTNA patches/linux-2.6.9/drm.patch
 418abc69J3F638vPO9MYoDGeYilxoQ patches/linux-2.6.9/nettel.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
index 33bac70d43dcf33cf4f79c299a9137c82092cd8c..094acb7fe40c806bee6ae6e4108b636d77ec1e91 100644 (file)
--- 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/Make.defs
deleted file mode 100644 (file)
index 132e434..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#  -*- mode: Makefile; -*-
-XEN_XC             = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
-XEN_LIBXC          = $(XEN_ROOT)/tools/libxc
-XEN_LIBXUTIL       = $(XEN_ROOT)/tools/libxutil
diff --git a/tools/Rules.mk b/tools/Rules.mk
new file mode 100644 (file)
index 0000000..2876c7e
--- /dev/null
@@ -0,0 +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
index a0f62b9c6f26a215a9bb00e33536572fe088402f..d25e653467a314ecc237b918dbc25efd718bb175 100644 (file)
@@ -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)
index bedbcc7c5c192d16ca39dedde5da04011b1bd3a8..67cfbe08fdc56ded7d607e8efb2b386d93bc5786 100644 (file)
@@ -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
 
index 84166c72fc0666331df863cadbade8ddf078e65d..b339e300dbe03eaa50db7eda5febb9f647f874a5 100644 (file)
@@ -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) *~
index 18bfeb1f7d50af262763942011122f6340fadd9a..7d152e12ae78c5d9f19370fc40e6e4a326133ac5 100644 (file)
@@ -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 *~
index a507666b5dabee7365205e495d89c1e4ab6f23ea..3783fa38336cc07396a960c135bf281ae3859293 100644 (file)
@@ -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
 
index fbe408107f1fcf00d5a9c01ba0d410cd99376195..43f6964caecb2b63d1a46c735c9d995db9e6d093 100644 (file)
@@ -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)
index 9133271b66deb2d54de67a7768d182d36057caae..5fe6a9d61dfc0b99e4d9181187570526f91b66f4 100644 (file)
@@ -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)
index 1b07ffa4980d2a5f71b0950fd13fc33caee07594..e98675514040d28a85f432141aa3684c53833a4f 100644 (file)
@@ -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