mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
golang/xenlight: Get rid of GOPATH-based build artefacts
The original build setup used a "fake GOPATH" in tools/golang to test the mechanism of building from go package files installed on a filesystem. With the move to modules, this isn't necessary, and leads to potentially confusing directories being created. (I.e., it might not be obvious that files under tools/golang/src shouldn't be edited.) Get rid of the code that creates this (now unused) intermediate directory. Add direct dependencies from 'build' onto the source files. Signed-off-by: George Dunlap <george.dunlap@citrix.com> Reviewed-by: Nick Rosbrook <rosbrookn@ainfosec.com>
This commit is contained in:
1 parent
60db5da62a
commit
b84c47221d
3 files changed
+5
-28
No files matched your search
@@ -35,7 +35,6 @@ XENSTORE_XENSTORED ?= y
|
||||
debug ?= y
|
||||
debug_symbols ?= $(debug)
|
||||
|
||||
XEN_GOPATH = $(XEN_ROOT)/tools/golang
|
||||
XEN_GOCODE_URL = golang.xenproject.org
|
||||
|
||||
ifeq ($(debug_symbols),y)
|
||||
|
||||
@@ -1,16 +1,6 @@
|
||||
XEN_ROOT=$(CURDIR)/../..
|
||||
include $(XEN_ROOT)/tools/Rules.mk
|
||||
|
||||
# In order to link against a package in Go, the package must live in a
|
||||
# directory tree in the way that Go expects. To make this possible,
|
||||
# there must be a directory such that we can set GOPATH=${dir}, and
|
||||
# the package will be under $GOPATH/src/${full-package-path}.
|
||||
|
||||
# So we set XEN_GOPATH to $XEN_ROOT/tools/golang. The xenlight
|
||||
# "package build" directory ($PWD/xenlight) will create the "package
|
||||
# source" directory in the proper place. Go programs can use this
|
||||
# package by setting GOPATH=$(XEN_GOPATH).
|
||||
|
||||
SUBDIRS-y = xenlight
|
||||
|
||||
.PHONY: build all
|
||||
|
||||
@@ -4,8 +4,7 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
# Standing boldly against convention, we insist on installing the
|
||||
# package source under $(prefix)/share/gocode
|
||||
GOCODE_DIR ?= $(prefix)/share/gocode/
|
||||
GOXL_PKG_DIR = /src/$(XEN_GOCODE_URL)/xenlight/
|
||||
GOXL_INSTALL_DIR = $(GOCODE_DIR)$(GOXL_PKG_DIR)
|
||||
GOXL_INSTALL_DIR = $(GOCODE_DIR)/src/$(XEN_GOCODE_URL)/xenlight/
|
||||
|
||||
GO ?= go
|
||||
|
||||
@@ -14,17 +13,8 @@ LIBXL_SRC_DIR = ../../libxl
|
||||
.PHONY: all
|
||||
all: build
|
||||
|
||||
.PHONY: package
|
||||
package: $(XEN_GOPATH)$(GOXL_PKG_DIR)
|
||||
|
||||
GOXL_GEN_FILES = types.gen.go helpers.gen.go
|
||||
|
||||
$(XEN_GOPATH)/src/$(XEN_GOCODE_URL)/xenlight/: xenlight.go $(GOXL_GEN_FILES)
|
||||
$(INSTALL_DIR) $(XEN_GOPATH)$(GOXL_PKG_DIR)
|
||||
$(INSTALL_DATA) xenlight.go $(XEN_GOPATH)$(GOXL_PKG_DIR)
|
||||
$(INSTALL_DATA) types.gen.go $(XEN_GOPATH)$(GOXL_PKG_DIR)
|
||||
$(INSTALL_DATA) helpers.gen.go $(XEN_GOPATH)$(GOXL_PKG_DIR)
|
||||
|
||||
# NOTE: This target is called from libxl/Makefile:all. Since that
|
||||
# target must finish before golang/Makefile is called, this is
|
||||
# currently safe. It must not be called from anywhere else in the
|
||||
@@ -43,23 +33,21 @@ idl-gen: $(GOXL_GEN_FILES)
|
||||
# in the LDFLAGS; and thus we need to add -L$(XEN_XENLIGHT) here
|
||||
# so that it can find the actual library.
|
||||
.PHONY: build
|
||||
build: package
|
||||
build: xenlight.go $(GOXL_GEN_FILES)
|
||||
CGO_CFLAGS="$(CFLAGS_libxenlight) $(CFLAGS_libxentoollog)" CGO_LDFLAGS="$(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) -L$(XEN_XENLIGHT) -L$(XEN_LIBXENTOOLLOG)" $(GO) build -x
|
||||
|
||||
.PHONY: install
|
||||
install: build
|
||||
$(INSTALL_DIR) $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
$(INSTALL_DATA) $(XEN_GOPATH)$(GOXL_PKG_DIR)xenlight.go $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
$(INSTALL_DATA) $(XEN_GOPATH)$(GOXL_PKG_DIR)types.gen.go $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
$(INSTALL_DATA) $(XEN_GOPATH)$(GOXL_PKG_DIR)helpers.gen.go $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
$(INSTALL_DATA) xenlight.go $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
$(INSTALL_DATA) types.gen.go $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
$(INSTALL_DATA) helpers.gen.go $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
|
||||
.PHONY: uninstall
|
||||
rm -rf $(DESTDIR)$(GOXL_INSTALL_DIR)
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
$(RM) -r $(XEN_GOPATH)$(GOXL_PKG_DIR)
|
||||
$(RM) $(XEN_GOPATH)/pkg/*/$(XEN_GOCODE_URL)/xenlight.a
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean
|
||||
|
||||