@@ -27,7 +27,7 @@ GOXL_GEN_FILES = types.gen.go helpers.gen.go
# so that it can find the actual library.
.PHONY: build
build: xenlight.go $(GOXL_GEN_FILES)
- CGO_CFLAGS="$(CFLAGS_libxenlight) $(CFLAGS_libxentoollog) $(APPEND_CFLAGS)" CGO_LDFLAGS="$(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) -L$(XEN_libxenlight) -L$(XEN_libxentoollog) $(APPEND_LDFLAGS)" $(GO) build -x
+ CGO_CFLAGS="$(CFLAGS_libxenlight) $(CFLAGS_libxentoollog) $(APPEND_CFLAGS)" CGO_LDFLAGS="$(call xenlibs-ldflags,light toollog) $(APPEND_LDFLAGS)" $(GO) build -x
.PHONY: install
install: build
@@ -105,6 +105,14 @@ define xenlibs-ldlibs
$(foreach lib,$(1),$(xenlibs-ldlibs-$(lib)))
endef
+# Provide needed flags for linking an in-tree Xen library by an external
+# project (or when it is necessary to link with "-lxen$(1)" instead of using
+# the full path to the library).
+define xenlibs-ldflags
+ $(call xenlibs-rpath,$(1)) \
+ $(foreach lib,$(1),-L$(XEN_ROOT)/tools/libs/$(lib))
+endef
+
define LIB_defs
FILENAME_$(1) ?= xen$(1)
XEN_libxen$(1) = $$(XEN_ROOT)/tools/libs/$(1)
This avoid the need to open-coding the list of flags needed to link with an in-tree Xen library when using -lxen*. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> --- tools/golang/xenlight/Makefile | 2 +- tools/Rules.mk | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-)