aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Config.mk14
-rw-r--r--config/ia64.mk4
-rw-r--r--config/x86_32.mk9
-rw-r--r--config/x86_64.mk9
-rw-r--r--extras/mini-os/Makefile3
-rw-r--r--tools/Makefile45
-rw-r--r--tools/Rules.mk2
-rw-r--r--tools/libxc/Makefile77
-rw-r--r--tools/libxc/xc_core.c2
-rw-r--r--tools/libxc/xc_hvm_build.c2
-rw-r--r--tools/libxc/xc_linux_build.c8
-rw-r--r--tools/libxc/xc_load_elf.c8
-rw-r--r--tools/libxc/xg_private.c15
-rw-r--r--tools/libxc/xg_private.h8
-rw-r--r--tools/misc/Makefile2
-rw-r--r--xen/tools/Makefile3
-rw-r--r--xen/tools/figlet/Makefile3
17 files changed, 110 insertions, 104 deletions
diff --git a/Config.mk b/Config.mk
index 2b15addd12..b4ea2cab39 100644
--- a/Config.mk
+++ b/Config.mk
@@ -39,19 +39,7 @@ else
CFLAGS += -g
endif
-ifeq ($(XEN_TARGET_ARCH),x86_32)
-CFLAGS += -m32 -march=i686
-endif
-
-ifeq ($(XEN_TARGET_ARCH),x86_64)
-CFLAGS += -m64
-endif
-
-ifeq ($(XEN_TARGET_ARCH),x86_64)
-LIBDIR = lib64
-else
-LIBDIR = lib
-endif
+include $(XEN_ROOT)/config/$(XEN_TARGET_ARCH).mk
ifneq ($(EXTRA_PREFIX),)
EXTRA_INCLUDES += $(EXTRA_PREFIX)/include
diff --git a/config/ia64.mk b/config/ia64.mk
new file mode 100644
index 0000000000..a951514dae
--- /dev/null
+++ b/config/ia64.mk
@@ -0,0 +1,4 @@
+CONFIG_IA64 := y
+CONFIG_IOEMU := y
+
+LIBDIR := lib
diff --git a/config/x86_32.mk b/config/x86_32.mk
new file mode 100644
index 0000000000..b2afb68e7d
--- /dev/null
+++ b/config/x86_32.mk
@@ -0,0 +1,9 @@
+CONFIG_X86 := y
+CONFIG_PLAN9 := y
+CONFIG_HVM := y
+CONFIG_MIGRATE := y
+CONFIG_IOEMU := y
+CONFIG_MBOOTPACK := y
+
+CFLAGS += -m32 -march=i686
+LIBDIR := lib
diff --git a/config/x86_64.mk b/config/x86_64.mk
new file mode 100644
index 0000000000..1e81e9eb06
--- /dev/null
+++ b/config/x86_64.mk
@@ -0,0 +1,9 @@
+CONFIG_X86 := y
+CONFIG_PLAN9 := y
+CONFIG_HVM := y
+CONFIG_MIGRATE := y
+CONFIG_IOEMU := y
+CONFIG_MBOOTPACK := y
+
+CFLAGS += -m64
+LIBDIR = lib64
diff --git a/extras/mini-os/Makefile b/extras/mini-os/Makefile
index e92681c1ab..e53c281c0f 100644
--- a/extras/mini-os/Makefile
+++ b/extras/mini-os/Makefile
@@ -1,7 +1,8 @@
debug ?= y
pae ?= n
-include $(CURDIR)/../../Config.mk
+XEN_ROOT = ../..
+include $(XEN_ROOT)/Config.mk
# Set TARGET_ARCH
override TARGET_ARCH := $(XEN_TARGET_ARCH)
diff --git a/tools/Makefile b/tools/Makefile
index 5be02fa8b4..54d738aa28 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -1,39 +1,38 @@
XEN_ROOT = ../
include $(XEN_ROOT)/tools/Rules.mk
-SUBDIRS :=
-SUBDIRS += libxc
-SUBDIRS += xenstore
-SUBDIRS += misc
-SUBDIRS += examples
-SUBDIRS += xentrace
-SUBDIRS += xcutils
-SUBDIRS += firmware
-SUBDIRS += security
-SUBDIRS += console
-SUBDIRS += xenmon
-SUBDIRS += guest-headers
-ifeq ($(VTPM_TOOLS),y)
-SUBDIRS += vtpm_manager
-SUBDIRS += vtpm
-endif
-SUBDIRS += xenstat
+SUBDIRS-y :=
+SUBDIRS-y += libxc
+SUBDIRS-y += xenstore
+SUBDIRS-y += misc
+SUBDIRS-y += examples
+SUBDIRS-y += xentrace
+SUBDIRS-$(CONFIG_X86) += xcutils
+SUBDIRS-y += firmware
+SUBDIRS-y += security
+SUBDIRS-y += console
+SUBDIRS-y += xenmon
+SUBDIRS-y += guest-headers
+SUBDIRS-$(VTPM_TOOLS) += vtpm_manager
+SUBDIRS-$(VTPM_TOOLS) += vtpm
+SUBDIRS-y += xenstat
+
# These don't cross-compile
ifeq ($(XEN_COMPILE_ARCH),$(XEN_TARGET_ARCH))
-SUBDIRS += python
-SUBDIRS += pygrub
+SUBDIRS-y += python
+SUBDIRS-y += pygrub
endif
.PHONY: all
all: check
- @set -e; for subdir in $(SUBDIRS); do \
+ @set -e; for subdir in $(SUBDIRS-y); do \
$(MAKE) -C $$subdir $@; \
done
$(MAKE) ioemu
.PHONY: install
install: check
- @set -e; for subdir in $(SUBDIRS); do \
+ @set -e; for subdir in $(SUBDIRS-y); do \
$(MAKE) -C $$subdir $@; \
done
$(MAKE) ioemuinstall
@@ -41,7 +40,7 @@ install: check
.PHONY: clean
clean: check_clean
- @set -e; for subdir in $(SUBDIRS); do \
+ @set -e; for subdir in $(SUBDIRS-y); do \
$(MAKE) -C $$subdir $@; \
done
$(MAKE) ioemuclean
@@ -55,7 +54,7 @@ check_clean:
$(MAKE) -C check clean
.PHONY: ioemu ioemuinstall ioemuclean
-ifndef XEN_NO_IOEMU
+ifdef CONFIG_IOEMU
ioemu ioemuinstall ioemuclean:
[ -f ioemu/config-host.h ] || \
(cd ioemu; sh ./configure --prefix=usr)
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 0b83f77b2d..bb6cdaf286 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -5,6 +5,8 @@ all:
include $(XEN_ROOT)/Config.mk
+CONFIG_$(shell uname -s) := y
+
XEN_XC = $(XEN_ROOT)/tools/python/xen/lowlevel/xc
XEN_LIBXC = $(XEN_ROOT)/tools/libxc
XEN_XENSTORE = $(XEN_ROOT)/tools/xenstore
diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
index 43a8f4ab5d..2adbf61928 100644
--- a/tools/libxc/Makefile
+++ b/tools/libxc/Makefile
@@ -10,43 +10,30 @@ MINOR = 0
XEN_ROOT = ../..
include $(XEN_ROOT)/tools/Rules.mk
-SRCS :=
-SRCS += xc_bvtsched.c
-SRCS += xc_core.c
-SRCS += xc_domain.c
-SRCS += xc_evtchn.c
-SRCS += xc_misc.c
-SRCS += xc_acm.c
-SRCS += xc_physdev.c
-SRCS += xc_private.c
-SRCS += xc_sedf.c
-SRCS += xc_csched.c
-SRCS += xc_tbuf.c
-
-ifeq ($(patsubst x86%,x86,$(XEN_TARGET_ARCH)),x86)
-SRCS += xc_ptrace.c
-SRCS += xc_ptrace_core.c
-SRCS += xc_pagetab.c
-endif
-
-SRCS_Linux += xc_linux.c
-
-SRCS += $(SRCS_Linux)
-
-BUILD_SRCS :=
-BUILD_SRCS += xc_linux_build.c
-BUILD_SRCS += xc_load_bin.c
-BUILD_SRCS += xc_load_elf.c
-BUILD_SRCS += xg_private.c
-
-ifeq ($(XEN_TARGET_ARCH),ia64)
-BUILD_SRCS += xc_ia64_stubs.c
-else
-BUILD_SRCS += xc_load_aout9.c
-BUILD_SRCS += xc_linux_restore.c
-BUILD_SRCS += xc_linux_save.c
-BUILD_SRCS += xc_hvm_build.c
-endif
+CTRL_SRCS-y :=
+CTRL_SRCS-y += xc_bvtsched.c
+CTRL_SRCS-y += xc_core.c
+CTRL_SRCS-y += xc_domain.c
+CTRL_SRCS-y += xc_evtchn.c
+CTRL_SRCS-y += xc_misc.c
+CTRL_SRCS-y += xc_acm.c
+CTRL_SRCS-y += xc_physdev.c
+CTRL_SRCS-y += xc_private.c
+CTRL_SRCS-y += xc_sedf.c
+CTRL_SRCS-y += xc_csched.c
+CTRL_SRCS-y += xc_tbuf.c
+CTRL_SRCS-$(CONFIG_X86) += xc_ptrace.c xc_ptrace_core.c xc_pagetab.c
+CTRL_SRCS-$(CONFIG_Linux) += xc_linux.c
+
+GUEST_SRCS-y :=
+GUEST_SRCS-y += xc_linux_build.c
+GUEST_SRCS-y += xc_load_bin.c
+GUEST_SRCS-y += xc_load_elf.c
+GUEST_SRCS-y += xg_private.c
+GUEST_SRCS-$(CONFIG_IA64) += xc_ia64_stubs.c
+GUEST_SRCS-$(CONFIG_PLAN9) += xc_load_aout9.c
+GUEST_SRCS-$(CONFIG_MIGRATE) += xc_linux_restore.c xc_linux_save.c
+GUEST_SRCS-$(CONFIG_HVM) += xc_hvm_build.c
CFLAGS += -Werror
CFLAGS += -fno-strict-aliasing
@@ -61,11 +48,11 @@ CFLAGS += -Wp,-MD,.$(@F).d
LDFLAGS += -L.
DEPS = .*.d
-LIB_OBJS := $(patsubst %.c,%.o,$(SRCS))
-PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS))
+CTRL_LIB_OBJS := $(patsubst %.c,%.o,$(CTRL_SRCS-y))
+CTRL_PIC_OBJS := $(patsubst %.c,%.opic,$(CTRL_SRCS-y))
-LIB_BUILD_OBJS := $(patsubst %.c,%.o,$(BUILD_SRCS))
-PIC_BUILD_OBJS := $(patsubst %.c,%.opic,$(BUILD_SRCS))
+GUEST_LIB_OBJS := $(patsubst %.c,%.o,$(GUEST_SRCS-y))
+GUEST_PIC_OBJS := $(patsubst %.c,%.opic,$(GUEST_SRCS-y))
LIB := libxenctrl.a
LIB += libxenctrl.so libxenctrl.so.$(MAJOR) libxenctrl.so.$(MAJOR).$(MINOR)
@@ -125,7 +112,7 @@ rpm: build
# libxenctrl
-libxenctrl.a: $(LIB_OBJS)
+libxenctrl.a: $(CTRL_LIB_OBJS)
$(AR) rc $@ $^
libxenctrl.so: libxenctrl.so.$(MAJOR)
@@ -133,12 +120,12 @@ libxenctrl.so: libxenctrl.so.$(MAJOR)
libxenctrl.so.$(MAJOR): libxenctrl.so.$(MAJOR).$(MINOR)
ln -sf $< $@
-libxenctrl.so.$(MAJOR).$(MINOR): $(PIC_OBJS)
+libxenctrl.so.$(MAJOR).$(MINOR): $(CTRL_PIC_OBJS)
$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenctrl.so.$(MAJOR) -shared -o $@ $^
# libxenguest
-libxenguest.a: $(LIB_BUILD_OBJS)
+libxenguest.a: $(GUEST_LIB_OBJS)
$(AR) rc $@ $^
libxenguest.so: libxenguest.so.$(MAJOR)
@@ -146,7 +133,7 @@ libxenguest.so: libxenguest.so.$(MAJOR)
libxenguest.so.$(MAJOR): libxenguest.so.$(MAJOR).$(MINOR)
ln -sf $< $@
-libxenguest.so.$(MAJOR).$(MINOR): $(PIC_BUILD_OBJS) libxenctrl.so
+libxenguest.so.$(MAJOR).$(MINOR): $(GUEST_PIC_OBJS) libxenctrl.so
$(CC) $(CFLAGS) $(LDFLAGS) -Wl,-soname -Wl,libxenguest.so.$(MAJOR) -shared -o $@ $^ -lz -lxenctrl
-include $(DEPS)
diff --git a/tools/libxc/xc_core.c b/tools/libxc/xc_core.c
index 04f1b7867b..c5ddeb37ec 100644
--- a/tools/libxc/xc_core.c
+++ b/tools/libxc/xc_core.c
@@ -1,6 +1,4 @@
#include "xg_private.h"
-#define ELFSIZE 32
-#include "xc_elf.h"
#include <stdlib.h>
#include <unistd.h>
diff --git a/tools/libxc/xc_hvm_build.c b/tools/libxc/xc_hvm_build.c
index 3cf9d276cd..135b0f0736 100644
--- a/tools/libxc/xc_hvm_build.c
+++ b/tools/libxc/xc_hvm_build.c
@@ -2,9 +2,9 @@
* xc_hvm_build.c
*/
+#define ELFSIZE 32
#include <stddef.h>
#include "xg_private.h"
-#define ELFSIZE 32
#include "xc_elf.h"
#include <stdlib.h>
#include <unistd.h>
diff --git a/tools/libxc/xc_linux_build.c b/tools/libxc/xc_linux_build.c
index 260b03d33e..1db2d904d3 100644
--- a/tools/libxc/xc_linux_build.c
+++ b/tools/libxc/xc_linux_build.c
@@ -6,14 +6,6 @@
#include "xc_private.h"
#include <xenctrl.h>
-#if defined(__i386__)
-#define ELFSIZE 32
-#endif
-
-#if defined(__x86_64__) || defined(__ia64__)
-#define ELFSIZE 64
-#endif
-
#include "xc_elf.h"
#include "xc_aout9.h"
#include <stdlib.h>
diff --git a/tools/libxc/xc_load_elf.c b/tools/libxc/xc_load_elf.c
index 0c60f683cd..89396efd14 100644
--- a/tools/libxc/xc_load_elf.c
+++ b/tools/libxc/xc_load_elf.c
@@ -3,14 +3,6 @@
*/
#include "xg_private.h"
-
-#if defined(__i386__)
-#define ELFSIZE 32
-#endif
-#if defined(__x86_64__) || defined(__ia64__)
-#define ELFSIZE 64
-#endif
-
#include "xc_elf.h"
#include <stdlib.h>
diff --git a/tools/libxc/xg_private.c b/tools/libxc/xg_private.c
index b94f74f273..083aafa7e6 100644
--- a/tools/libxc/xg_private.c
+++ b/tools/libxc/xg_private.c
@@ -145,3 +145,18 @@ unsigned long csum_page(void *page)
return sum ^ (sum>>32);
}
+
+__attribute__((weak)) int xc_hvm_build(
+ int xc_handle,
+ uint32_t domid,
+ int memsize,
+ const char *image_name,
+ unsigned int vcpus,
+ unsigned int pae,
+ unsigned int acpi,
+ unsigned int apic,
+ unsigned int store_evtchn,
+ unsigned long *store_mfn)
+{
+ return -ENOSYS;
+}
diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h
index 99c9d0ff7c..8fbf047d17 100644
--- a/tools/libxc/xg_private.h
+++ b/tools/libxc/xg_private.h
@@ -25,6 +25,14 @@
#define DECLARE_DOM0_OP dom0_op_t op
#endif
+#ifndef ELFSIZE
+#include <limits.h>
+#if UINT_MAX == ULONG_MAX
+#define ELFSIZE 32
+#else
+#define ELFSIZE 64
+#endif
+#endif
char *xc_read_image(const char *filename, unsigned long *size);
char *xc_inflate_buffer(const char *in_buf,
diff --git a/tools/misc/Makefile b/tools/misc/Makefile
index eb110d7e2b..6d1944a37f 100644
--- a/tools/misc/Makefile
+++ b/tools/misc/Makefile
@@ -25,7 +25,7 @@ all: build
build: $(TARGETS)
$(MAKE) -C miniterm
$(MAKE) -C cpuperf
-ifneq ($(XEN_TARGET_ARCH),ia64)
+ifeq ($(CONFIG_MBOOTPACK),y)
$(MAKE) -C mbootpack
endif
$(MAKE) -C lomount
diff --git a/xen/tools/Makefile b/xen/tools/Makefile
index 70a37092db..1609289c47 100644
--- a/xen/tools/Makefile
+++ b/xen/tools/Makefile
@@ -1,5 +1,6 @@
-include $(BASEDIR)/../Config.mk
+XEN_ROOT = $(BASEDIR)/..
+include $(XEN_ROOT)/Config.mk
.PHONY: default
default:
diff --git a/xen/tools/figlet/Makefile b/xen/tools/figlet/Makefile
index cc44294dad..8b649375cd 100644
--- a/xen/tools/figlet/Makefile
+++ b/xen/tools/figlet/Makefile
@@ -1,5 +1,6 @@
-include $(BASEDIR)/../Config.mk
+XEN_ROOT = $(BASEDIR)/..
+include $(XEN_ROOT)/Config.mk
figlet: figlet.c
$(HOSTCC) -o $@ $<