aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.rootkeys1
-rw-r--r--Config.mk33
-rw-r--r--Makefile1
-rw-r--r--tools/Rules.mk5
-rw-r--r--tools/libxc/Makefile2
-rw-r--r--tools/libxutil/Makefile2
-rw-r--r--tools/misc/Makefile1
-rw-r--r--tools/xentrace/Makefile1
-rw-r--r--xen/Rules.mk8
-rw-r--r--xen/arch/x86/Rules.mk9
-rw-r--r--xen/tools/figlet/Makefile4
11 files changed, 45 insertions, 22 deletions
diff --git a/.rootkeys b/.rootkeys
index a9c385aaa3..3e3af9bdf9 100644
--- a/.rootkeys
+++ b/.rootkeys
@@ -3,6 +3,7 @@
3ddb6b0buTaC5zg1_a8FoAR9FWi_mw BitKeeper/etc/ignore
3ddb79c9_hgSp-gsQm8HqWM_9W3B_A BitKeeper/etc/logging_ok
4177dbbfqsi01p2zgZa0geUOgScONw COPYING
+423fdd91sxkCMaKFcDsEdhsZer54vA Config.mk
3eb788d6Kleck_Cut0ouGneviGzliQ Makefile
3f5ef5a24IaQasQE2tyMxrfxskMmvw README
41880852AtdVfSsfKGtrLdajX1vEXQ buildconfigs/Rules.mk
diff --git a/Config.mk b/Config.mk
new file mode 100644
index 0000000000..368d3832e8
--- /dev/null
+++ b/Config.mk
@@ -0,0 +1,33 @@
+# -*- mode: Makefile; -*-
+# Currently supported architectures: x86_32, x86_64
+XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
+XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
+
+#
+# Tool configuration Makefile fragment
+#
+HOSTCC = gcc
+HOSTCFLAGS = -Wall -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
+NM = $(CROSS_COMPILE)nm
+STRIP = $(CROSS_COMPILE)strip
+OBJCOPY = $(CROSS_COMPILE)objcopy
+OBJDUMP = $(CROSS_COMPILE)objdump
+
+
+ifneq ($(EXTRA_PREFIX),)
+EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
+EXTRA_LIB += $(EXTRA_PREFIX)/lib
+endif
+
+LDFLAGS += $(foreach i, $(EXTRA_LIB), -L$(i))
+CFLAGS += $(foreach i, $(EXTRA_INCLUDES), -I$(i))
+
+CFLAGS += -g
+
+
diff --git a/Makefile b/Makefile
index 2de7e5ba30..403321912c 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ SUBARCH := $(subst x86_32,i386,$(XEN_TARGET_ARCH))
export XEN_TARGET_ARCH SUBARCH
endif
+include Config.mk
include buildconfigs/Rules.mk
.PHONY: all dist install xen tools kernels docs world clean mkpatches mrproper
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 4fb4551aeb..ea6d5baa2b 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -1,12 +1,11 @@
# -*- mode: Makefile; -*-
+include $(XEN_ROOT)/Config.mk
+
XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
XEN_LIBXC = $(XEN_ROOT)/tools/libxc
XEN_LIBXUTIL = $(XEN_ROOT)/tools/libxutil
-XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
-XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
-
ifeq ($(XEN_TARGET_ARCH),x86_32)
CFLAGS += -m32 -march=i686
LDFLAGS += -m elf_i386
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index 3739d5b173..cc72924724 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -105,6 +105,6 @@ libxc.so.$(MAJOR): libxc.so.$(MAJOR).$(MINOR)
ln -sf $< $@
libxc.so.$(MAJOR).$(MINOR): $(PIC_OBJS)
- $(CC) $(CFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -L../libxutil -lxutil -lz
+ $(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxc.so.$(MAJOR) -shared -o $@ $^ -L../libxutil -lxutil -lz
-include $(DEPS)
diff --git a/tools/libxutil/Makefile b/tools/libxutil/Makefile
index 2989f45960..90a83223cf 100644
--- a/tools/libxutil/Makefile
+++ b/tools/libxutil/Makefile
@@ -7,8 +7,6 @@ INSTALL_DIR = $(INSTALL) -d -m0755
include $(XEN_ROOT)/tools/Rules.mk
-CC = gcc
-
LIB_SRCS :=
LIB_SRCS += allocate.c
LIB_SRCS += enum.c
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index 7bfe0fad6b..b815072184 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -5,7 +5,6 @@ INSTALL_DIR = $(INSTALL) -d -m0755
XEN_ROOT=../..
include $(XEN_ROOT)/tools/Rules.mk
-CC = gcc
CFLAGS += -Wall -Werror -O3
INCLUDES += -I $(XEN_XC)
diff --git a/tools/xentrace/Makefile b/tools/xentrace/Makefile
index 3ee097ee31..5498c458e1 100644
--- a/tools/xentrace/Makefile
+++ b/tools/xentrace/Makefile
@@ -6,7 +6,6 @@ INSTALL_DATA = $(INSTALL) -m0644
XEN_ROOT=../..
include $(XEN_ROOT)/tools/Rules.mk
-CC = gcc
CFLAGS += -Wall -Werror -O3
CFLAGS += -I $(XEN_XC)
diff --git a/xen/Rules.mk b/xen/Rules.mk
index e604985ee8..f9650fc744 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -7,9 +7,7 @@ optimize ?= y
domu_debug ?= n
crash_debug ?= n
-# Currently supported architectures: x86_32, x86_64
-XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/)
-XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH)
+include $(BASEDIR)/../Config.mk
# Set ARCH/SUBARCH appropriately.
override COMPILE_SUBARCH := $(XEN_COMPILE_ARCH)
@@ -39,10 +37,8 @@ ALL_OBJS += $(BASEDIR)/drivers/acpi/driver.o
ALL_OBJS += $(BASEDIR)/drivers/pci/driver.o
ALL_OBJS += $(BASEDIR)/arch/$(TARGET_ARCH)/arch.o
-HOSTCC = gcc
-HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-test-gcc-flag = $(shell gcc -v --help 2>&1 | grep -q " $(1) " && echo $(1))
+test-gcc-flag = $(shell $(CC) -v --help 2>&1 | grep -q " $(1) " && echo $(1))
include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk
index 1eda23b416..370bf3d0a8 100644
--- a/xen/arch/x86/Rules.mk
+++ b/xen/arch/x86/Rules.mk
@@ -1,10 +1,7 @@
########################################
# x86-specific definitions
-CC := gcc
-LD := ld
-
-CFLAGS := -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
+CFLAGS += -nostdinc -fno-builtin -fno-common -fno-strict-aliasing
CFLAGS += -iwithprefix include -Wall -Werror -Wno-format -pipe
CFLAGS += -I$(BASEDIR)/include -Wno-pointer-arith -Wredundant-decls
@@ -24,13 +21,13 @@ CFLAGS += $(call test-gcc-flag,-fno-stack-protector-all)
ifeq ($(TARGET_SUBARCH),x86_32)
CFLAGS += -m32 -march=i686
-LDFLAGS := -m elf_i386
+LDFLAGS += -m elf_i386
endif
ifeq ($(TARGET_SUBARCH),x86_64)
CFLAGS += -m64 -mno-red-zone -fpic -fno-reorder-blocks
CFLAGS += -fno-asynchronous-unwind-tables
-LDFLAGS := -m elf_x86_64
+LDFLAGS += -m elf_x86_64
endif
# Test for at least GCC v3.2.x.
diff --git a/xen/tools/figlet/Makefile b/xen/tools/figlet/Makefile
index 9ed8fdff9c..ed4d3fa574 100644
--- a/xen/tools/figlet/Makefile
+++ b/xen/tools/figlet/Makefile
@@ -1,8 +1,8 @@
-CC := gcc
+include ../../Config.mk
figlet: figlet.c
- $(CC) -o $@ $<
+ $(HOSTCC) -o $@ $<
clean:
rm -f *.o figlet