diff options
-rw-r--r-- | .rootkeys | 1 | ||||
-rw-r--r-- | Config.mk | 33 | ||||
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | tools/Rules.mk | 5 | ||||
-rw-r--r-- | tools/libxc/Makefile | 2 | ||||
-rw-r--r-- | tools/libxutil/Makefile | 2 | ||||
-rw-r--r-- | tools/misc/Makefile | 1 | ||||
-rw-r--r-- | tools/xentrace/Makefile | 1 | ||||
-rw-r--r-- | xen/Rules.mk | 8 | ||||
-rw-r--r-- | xen/arch/x86/Rules.mk | 9 | ||||
-rw-r--r-- | xen/tools/figlet/Makefile | 4 |
11 files changed, 45 insertions, 22 deletions
@@ -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 + + @@ -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 |