diff options
-rw-r--r-- | Config.mk | 39 | ||||
-rw-r--r-- | Makefile | 5 | ||||
-rw-r--r-- | buildconfigs/Rules.mk | 3 | ||||
-rw-r--r-- | config/Linux.mk | 34 | ||||
-rw-r--r-- | config/SunOS.mk | 27 | ||||
-rw-r--r-- | config/x86_64.mk | 2 | ||||
-rw-r--r-- | xen/Rules.mk | 6 |
7 files changed, 78 insertions, 38 deletions
@@ -4,43 +4,19 @@ debug ?= n XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \ - -e s/ppc/powerpc/) + -e s/ppc/powerpc/ -e s/i86pc/x86_32/) XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH) XEN_TARGET_X86_PAE ?= n +XEN_OS ?= $(shell uname -s) # Tools to run on system hosting the build HOSTCC = gcc HOSTCFLAGS = -Wall -Werror -Wstrict-prototypes -O2 -fomit-frame-pointer -AS = $(CROSS_COMPILE)as -LD = $(CROSS_COMPILE)ld -CC = $(CROSS_COMPILE)gcc -CPP = $(CROSS_COMPILE)gcc -E -AR = $(CROSS_COMPILE)ar -RANLIB = $(CROSS_COMPILE)ranlib -NM = $(CROSS_COMPILE)nm -STRIP = $(CROSS_COMPILE)strip -OBJCOPY = $(CROSS_COMPILE)objcopy -OBJDUMP = $(CROSS_COMPILE)objdump - DISTDIR ?= $(XEN_ROOT)/dist DESTDIR ?= / -INSTALL = install -INSTALL_DIR = $(INSTALL) -d -m0755 -INSTALL_DATA = $(INSTALL) -m0644 -INSTALL_PROG = $(INSTALL) -m0755 - -ifneq ($(debug),y) -# Optimisation flags are overridable -CFLAGS ?= -O2 -fomit-frame-pointer -CFLAGS += -DNDEBUG -else -# Less than -O1 produces bad code and large stack frames -CFLAGS ?= -O1 -fno-omit-frame-pointer -CFLAGS += -g -endif - +include $(XEN_ROOT)/config/$(XEN_OS).mk include $(XEN_ROOT)/config/$(XEN_TARGET_ARCH).mk ifneq ($(EXTRA_PREFIX),) @@ -50,6 +26,12 @@ endif test-gcc-flag = $(shell $(1) -v --help 2>&1 | grep -q " $(2) " && echo $(2)) +ifneq ($(debug),y) +CFLAGS += -DNDEBUG +else +CFLAGS += -g +endif + CFLAGS += -Wall -Wstrict-prototypes # -Wunused-value makes GCC 4.x too aggressive for my taste: ignoring the @@ -62,9 +44,6 @@ CFLAGS += $(call test-gcc-flag,$(CC),-Wdeclaration-after-statement) LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i)) CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i)) -# Choose the best mirror to download linux kernel -KERNEL_REPO = http://www.kernel.org - # If ACM_SECURITY = y, then the access control module is compiled # into Xen and the policy type can be set by the boot policy file # y - Build the Xen ACM framework @@ -2,11 +2,6 @@ # Grand Unified Makefile for Xen. # -KERNELS ?= linux-2.6-xen -# You may use wildcards in the above e.g. KERNELS=*2.6* - -XKERNELS := $(foreach kernel, $(KERNELS), $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.$(kernel))) ) - # Export target architecture overrides to Xen and Linux sub-trees. ifneq ($(XEN_TARGET_ARCH),) SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH)) diff --git a/buildconfigs/Rules.mk b/buildconfigs/Rules.mk index 6eca30ef0a..ae61ea0095 100644 --- a/buildconfigs/Rules.mk +++ b/buildconfigs/Rules.mk @@ -3,6 +3,9 @@ include Config.mk export DESTDIR +# Choose the best mirror to download linux kernel +KERNEL_REPO = http://www.kernel.org + ALLKERNELS = $(patsubst buildconfigs/mk.%,%,$(wildcard buildconfigs/mk.*)) ALLSPARSETREES = $(patsubst %-xen-sparse,%,$(wildcard *-xen-sparse)) diff --git a/config/Linux.mk b/config/Linux.mk new file mode 100644 index 0000000000..0e00d5520e --- /dev/null +++ b/config/Linux.mk @@ -0,0 +1,34 @@ +# -*- mode: Makefile; -*- + +AS = $(CROSS_COMPILE)as +LD = $(CROSS_COMPILE)ld +CC = $(CROSS_COMPILE)gcc +CPP = $(CROSS_COMPILE)gcc -E +AR = $(CROSS_COMPILE)ar +RANLIB = $(CROSS_COMPILE)ranlib +NM = $(CROSS_COMPILE)nm +STRIP = $(CROSS_COMPILE)strip +OBJCOPY = $(CROSS_COMPILE)objcopy +OBJDUMP = $(CROSS_COMPILE)objdump + +INSTALL = install +INSTALL_DIR = $(INSTALL) -d -m0755 +INSTALL_DATA = $(INSTALL) -m0644 +INSTALL_PROG = $(INSTALL) -m0755 + +LIB64DIR = lib64 + +ifneq ($(debug),y) +# Optimisation flags are overridable +CFLAGS ?= -O2 -fomit-frame-pointer +else +# Less than -O1 produces bad code and large stack frames +CFLAGS ?= -O1 -fno-omit-frame-pointer +endif + +# You may use wildcards, e.g. KERNELS=*2.6* +KERNELS ?= linux-2.6-xen + +XKERNELS := $(foreach kernel, $(KERNELS), \ + $(patsubst buildconfigs/mk.%,%, \ + $(wildcard buildconfigs/mk.$(kernel))) ) diff --git a/config/SunOS.mk b/config/SunOS.mk new file mode 100644 index 0000000000..9acfc03c5d --- /dev/null +++ b/config/SunOS.mk @@ -0,0 +1,27 @@ +# -*- mode: Makefile; -*- + +AS = $(CROSS_COMPILE)gas +LD = $(CROSS_COMPILE)gld +CC = $(CROSS_COMPILE)gcc +CPP = $(CROSS_COMPILE)gcc -E +AR = $(CROSS_COMPILE)gar +RANLIB = $(CROSS_COMPILE)granlib +NM = $(CROSS_COMPILE)gnm +STRIP = $(CROSS_COMPILE)gstrip +OBJCOPY = $(CROSS_COMPILE)gobjcopy +OBJDUMP = $(CROSS_COMPILE)gobjdump + +INSTALL = ginstall +INSTALL_DIR = $(INSTALL) -d -m0755 +INSTALL_DATA = $(INSTALL) -m0644 +INSTALL_PROG = $(INSTALL) -m0755 + +LIB64DIR = lib/amd64 + +ifneq ($(debug),y) +# Optimisation flags are overridable +CFLAGS ?= -O2 -fno-omit-frame-pointer +else +# Less than -O1 produces bad code and large stack frames +CFLAGS ?= -O1 -fno-omit-frame-pointer +endif diff --git a/config/x86_64.mk b/config/x86_64.mk index 82f7364d06..53883a6efc 100644 --- a/config/x86_64.mk +++ b/config/x86_64.mk @@ -6,4 +6,4 @@ CONFIG_IOEMU := y CFLAGS += -m64 LDFLAGS += -m64 -LIBDIR = lib64 +LIBDIR = $(LIB64DIR) diff --git a/xen/Rules.mk b/xen/Rules.mk index d3bdc92e88..b3ae01dfc2 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -24,9 +24,11 @@ endif override COMPILE_SUBARCH := $(XEN_COMPILE_ARCH) override TARGET_SUBARCH := $(XEN_TARGET_ARCH) override COMPILE_ARCH := $(shell echo $(XEN_COMPILE_ARCH) | \ - sed -e 's/\(x86\|powerpc\).*/\1/') + sed -e 's/x86.*/x86/' \ + -e 's/powerpc.*/powerpc/') override TARGET_ARCH := $(shell echo $(XEN_TARGET_ARCH) | \ - sed -e 's/\(x86\|powerpc\).*/\1/') + sed -e 's/x86.*/x86/' \ + -e 's/powerpc.*/powerpc/') TARGET := $(BASEDIR)/xen |