---
tools/Rules.mk | 70 ++++++++++---------------------
tools/libs/call/Makefile | 2 -
tools/libs/devicemodel/Makefile | 2 -
tools/libs/evtchn/Makefile | 2 -
tools/libs/foreignmemory/Makefile | 2 -
tools/libs/gnttab/Makefile | 2 -
tools/libs/hypfs/Makefile | 2 -
tools/libs/libs.mk | 8 ++--
tools/libs/toolcore/Makefile | 1 -
tools/libs/toollog/Makefile | 1 -
10 files changed, 27 insertions(+), 65 deletions(-)
diff --git a/tools/Rules.mk b/tools/Rules.mk
index 5d699cfd39..06827ad1d8 100644
--- a/tools/Rules.mk
+++ b/tools/Rules.mk
@@ -12,14 +12,24 @@ INSTALL = $(XEN_ROOT)/tools/cross-install
LDFLAGS += $(PREPEND_LDFLAGS_XEN_TOOLS)
XEN_INCLUDE = $(XEN_ROOT)/tools/include
-XEN_libxentoolcore = $(XEN_ROOT)/tools/libs/toolcore
-XEN_libxentoollog = $(XEN_ROOT)/tools/libs/toollog
-XEN_libxenevtchn = $(XEN_ROOT)/tools/libs/evtchn
-XEN_libxengnttab = $(XEN_ROOT)/tools/libs/gnttab
-XEN_libxencall = $(XEN_ROOT)/tools/libs/call
-XEN_libxenforeignmemory = $(XEN_ROOT)/tools/libs/foreignmemory
-XEN_libxendevicemodel = $(XEN_ROOT)/tools/libs/devicemodel
-XEN_libxenhypfs = $(XEN_ROOT)/tools/libs/hypfs
+
+LIBS_LIBS += toolcore
+USELIBS_toolcore :=
+LIBS_LIBS += toollog
+USELIBS_toollog :=
+LIBS_LIBS += evtchn
+USELIBS_evtchn := toollog toolcore
+LIBS_LIBS += gnttab
+USELIBS_gnttab := toollog toolcore
+LIBS_LIBS += call
+USELIBS_call := toollog toolcore
+LIBS_LIBS += foreignmemory
+USELIBS_foreignmemory := toollog toolcore
+LIBS_LIBS += devicemodel
+USELIBS_devicemodel := toollog toolcore call
+LIBS_LIBS += hypfs
+USELIBS_hypfs := toollog toolcore call
+
XEN_libxenctrl = $(XEN_ROOT)/tools/libxc
# Currently libxenguest lives in the same directory as libxenctrl
XEN_libxenguest = $(XEN_libxenctrl)
@@ -99,45 +109,11 @@ endif
# Consumers of libfoo should not directly use $(SHDEPS_libfoo) or
# $(SHLIB_libfoo)
-CFLAGS_libxentoollog = -I$(XEN_libxentoollog)/include $(CFLAGS_xeninclude)
-SHDEPS_libxentoollog =
-LDLIBS_libxentoollog = $(SHDEPS_libxentoollog)
$(XEN_libxentoollog)/libxentoollog$(libextension)
-SHLIB_libxentoollog = $(SHDEPS_libxentoollog)
-Wl,-rpath-link=$(XEN_libxentoollog)
-
-CFLAGS_libxentoolcore = -I$(XEN_libxentoolcore)/include $(CFLAGS_xeninclude)
-SHDEPS_libxentoolcore =
-LDLIBS_libxentoolcore = $(SHDEPS_libxentoolcore)
$(XEN_libxentoolcore)/libxentoolcore$(libextension)
-SHLIB_libxentoolcore = $(SHDEPS_libxentoolcore)
-Wl,-rpath-link=$(XEN_libxentoolcore)
-
-CFLAGS_libxenevtchn = -I$(XEN_libxenevtchn)/include $(CFLAGS_xeninclude)
-SHDEPS_libxenevtchn = $(SHLIB_libxentoolcore)
-LDLIBS_libxenevtchn = $(SHDEPS_libxenevtchn)
$(XEN_libxenevtchn)/libxenevtchn$(libextension)
-SHLIB_libxenevtchn = $(SHDEPS_libxenevtchn)
-Wl,-rpath-link=$(XEN_libxenevtchn)
-
-CFLAGS_libxengnttab = -I$(XEN_libxengnttab)/include $(CFLAGS_xeninclude)
-SHDEPS_libxengnttab = $(SHLIB_libxentoollog) $(SHLIB_libxentoolcore)
-LDLIBS_libxengnttab = $(SHDEPS_libxengnttab)
$(XEN_libxengnttab)/libxengnttab$(libextension)
-SHLIB_libxengnttab = $(SHDEPS_libxengnttab)
-Wl,-rpath-link=$(XEN_libxengnttab)
-
-CFLAGS_libxencall = -I$(XEN_libxencall)/include $(CFLAGS_xeninclude)
-SHDEPS_libxencall = $(SHLIB_libxentoolcore)
-LDLIBS_libxencall = $(SHDEPS_libxencall)
$(XEN_libxencall)/libxencall$(libextension)
-SHLIB_libxencall = $(SHDEPS_libxencall) -Wl,-rpath-link=$(XEN_libxencall)
-
-CFLAGS_libxenforeignmemory = -I$(XEN_libxenforeignmemory)/include
$(CFLAGS_xeninclude)
-SHDEPS_libxenforeignmemory = $(SHLIB_libxentoolcore)
-LDLIBS_libxenforeignmemory = $(SHDEPS_libxenforeignmemory)
$(XEN_libxenforeignmemory)/libxenforeignmemory$(libextension)
-SHLIB_libxenforeignmemory = $(SHDEPS_libxenforeignmemory)
-Wl,-rpath-link=$(XEN_libxenforeignmemory)
-
-CFLAGS_libxendevicemodel = -I$(XEN_libxendevicemodel)/include
$(CFLAGS_xeninclude)
-SHDEPS_libxendevicemodel = $(SHLIB_libxentoollog) $(SHLIB_libxentoolcore)
$(SHLIB_libxencall)
-LDLIBS_libxendevicemodel = $(SHDEPS_libxendevicemodel)
$(XEN_libxendevicemodel)/libxendevicemodel$(libextension)
-SHLIB_libxendevicemodel = $(SHDEPS_libxendevicemodel)
-Wl,-rpath-link=$(XEN_libxendevicemodel)
-
-CFLAGS_libxenhypfs = -I$(XEN_libxenhypfs)/include $(CFLAGS_xeninclude)
-SHDEPS_libxenhypfs = $(SHLIB_libxentoollog) $(SHLIB_libxentoolcore)
$(SHLIB_libxencall)
-LDLIBS_libxenhypfs = $(SHDEPS_libxenhypfs)
$(XEN_libxenhypfs)/libxenhypfs$(libextension)
-SHLIB_libxenhypfs = $(SHDEPS_libxenhypfs) -Wl,-rpath-link=$(XEN_libxenhypfs)
+$(foreach lib,$(LIBS_LIBS),$(eval XEN_libxen$(lib) =
$(XEN_ROOT)/tools/libs/$(lib)))
+$(foreach lib,$(LIBS_LIBS),$(eval CFLAGS_libxen$(lib) =
-I$(XEN_libxen$(lib))/include $(CFLAGS_xeninclude)))
+$(foreach lib,$(LIBS_LIBS),$(eval SHDEPS_libxen$(lib) = $(foreach
use,$(USELIBS_$(lib)),$(SHLIB_libxen$(use)))))
+$(foreach lib,$(LIBS_LIBS),$(eval LDLIBS_libxen$(lib) = $(SHDEPS_libxen$(lib))
$(XEN_libxen$(lib))/libxen$(lib)$(libextension)))
+$(foreach lib,$(LIBS_LIBS),$(eval SHLIB_libxen$(lib) = $(SHDEPS_libxen$(lib))
-Wl,-rpath-link=$(XEN_libxen$(lib))))
# code which compiles against libxenctrl get __XEN_TOOLS__ and
# therefore sees the unstable hypercall interfaces.
diff --git a/tools/libs/call/Makefile b/tools/libs/call/Makefile
index 7994b411fa..81c7478efd 100644
--- a/tools/libs/call/Makefile
+++ b/tools/libs/call/Makefile
@@ -3,8 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 2
-LIBNAME := call
-USELIBS := toollog toolcore
SRCS-y += core.c buffer.c
SRCS-$(CONFIG_Linux) += linux.c
diff --git a/tools/libs/devicemodel/Makefile b/tools/libs/devicemodel/Makefile
index d9d1d1b850..42417958f2 100644
--- a/tools/libs/devicemodel/Makefile
+++ b/tools/libs/devicemodel/Makefile
@@ -3,8 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 3
-LIBNAME := devicemodel
-USELIBS := toollog toolcore call
SRCS-y += core.c
SRCS-$(CONFIG_Linux) += linux.c
diff --git a/tools/libs/evtchn/Makefile b/tools/libs/evtchn/Makefile
index d7aa4d402f..aec76641e8 100644
--- a/tools/libs/evtchn/Makefile
+++ b/tools/libs/evtchn/Makefile
@@ -3,8 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 1
-LIBNAME := evtchn
-USELIBS := toollog toolcore
SRCS-y += core.c
SRCS-$(CONFIG_Linux) += linux.c
diff --git a/tools/libs/foreignmemory/Makefile
b/tools/libs/foreignmemory/Makefile
index 823989681d..cf444d3c1a 100644
--- a/tools/libs/foreignmemory/Makefile
+++ b/tools/libs/foreignmemory/Makefile
@@ -3,8 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 3
-LIBNAME := foreignmemory
-USELIBS := toollog toolcore
SRCS-y += core.c
SRCS-$(CONFIG_Linux) += linux.c
diff --git a/tools/libs/gnttab/Makefile b/tools/libs/gnttab/Makefile
index c0fffdac71..d8d4d55e27 100644
--- a/tools/libs/gnttab/Makefile
+++ b/tools/libs/gnttab/Makefile
@@ -3,8 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 2
-LIBNAME := gnttab
-USELIBS := toollog toolcore
SRCS-GNTTAB += gnttab_core.c
SRCS-GNTSHR += gntshr_core.c
diff --git a/tools/libs/hypfs/Makefile b/tools/libs/hypfs/Makefile
index b4c41f6189..668d68853f 100644
--- a/tools/libs/hypfs/Makefile
+++ b/tools/libs/hypfs/Makefile
@@ -3,8 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 0
-LIBNAME := hypfs
-USELIBS := toollog toolcore call
APPEND_LDFLAGS += -lz
diff --git a/tools/libs/libs.mk b/tools/libs/libs.mk
index 764f5441e2..19efc5e743 100644
--- a/tools/libs/libs.mk
+++ b/tools/libs/libs.mk
@@ -1,18 +1,18 @@
# Common Makefile for building a lib.
#
# Variables taken as input:
-# LIBNAME: name of lib to build, will be prepended with "libxen"
# MAJOR: major version of lib
# MINOR: minor version of lib
-# USELIBS: xen libs to use (e.g. "toolcore toollog")
+
+LIBNAME := $(notdir $(CURDIR))
SHLIB_LDFLAGS += -Wl,--version-script=libxen$(LIBNAME).map
CFLAGS += -Werror -Wmissing-prototypes
CFLAGS += -I./include $(CFLAGS_xeninclude)
-CFLAGS += $(foreach lib, $(USELIBS), $(CFLAGS_libxen$(lib)))
+CFLAGS += $(foreach lib, $(USELIBS_$(LIBNAME)), $(CFLAGS_libxen$(lib)))
-LDUSELIBS = $(foreach lib, $(USELIBS), $(LDLIBS_libxen$(lib)))
+LDUSELIBS = $(foreach lib, $(USELIBS_$(LIBNAME)), $(LDLIBS_libxen$(lib)))
LIB_OBJS := $(SRCS-y:.c=.o)
PIC_OBJS := $(SRCS-y:.c=.opic)
diff --git a/tools/libs/toolcore/Makefile b/tools/libs/toolcore/Makefile
index 85ff2b26fd..34b08a4236 100644
--- a/tools/libs/toolcore/Makefile
+++ b/tools/libs/toolcore/Makefile
@@ -3,7 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 0
-LIBNAME := toolcore
AUTOINCS := include/_xentoolcore_list.h
SRCS-y += handlereg.c
diff --git a/tools/libs/toollog/Makefile b/tools/libs/toollog/Makefile
index 2d3ae4e627..3f986835d6 100644
--- a/tools/libs/toollog/Makefile
+++ b/tools/libs/toollog/Makefile
@@ -3,7 +3,6 @@ include $(XEN_ROOT)/tools/Rules.mk
MAJOR = 1
MINOR = 0
-LIBNAME := toollog
SRCS-y += xtl_core.c
SRCS-y += xtl_logger_stdio.c