1XEN_ROOT=$(CURDIR)/../../..
2include $(XEN_ROOT)/tools/Rules.mk
3
4# Standing boldly against convention, we insist on installing the
5# package source under $(prefix)/share/gocode
6GOCODE_DIR ?= $(prefix)/share/gocode/
7GOXL_PKG_DIR = /src/$(XEN_GOCODE_URL)/xenlight/
8GOXL_INSTALL_DIR = $(GOCODE_DIR)$(GOXL_PKG_DIR)
9
10# PKGSOURCES: Files which comprise the distributed source package
11PKGSOURCES = xenlight.go
12
13GO ?= go
14
15.PHONY: all
16all: build
17
18.PHONY: package
19package: $(XEN_GOPATH)$(GOXL_PKG_DIR)$(PKGSOURCES)
20
21$(XEN_GOPATH)/src/$(XEN_GOCODE_URL)/xenlight/$(PKGSOURCES): $(PKGSOURCES)
22	$(INSTALL_DIR) $(XEN_GOPATH)$(GOXL_PKG_DIR)
23	$(INSTALL_DATA) $(PKGSOURCES) $(XEN_GOPATH)$(GOXL_PKG_DIR)
24
25# Go will do its own dependency checking, and not actuall go through
26# with the build if none of the input files have changed.
27#
28# NB that because the users of this library need to be able to
29# recompile the library from source, it needs to include '-lxenlight'
30# in the LDFLAGS; and thus we need to add -L$(XEN_XENLIGHT) here
31# so that it can find the actual library.
32.PHONY: build
33build: package
34	CGO_CFLAGS="$(CFLAGS_libxenlight) $(CFLAGS_libxentoollog)" CGO_LDFLAGS="$(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) -L$(XEN_XENLIGHT) -L$(XEN_LIBXENTOOLLOG)" GOPATH=$(XEN_GOPATH) $(GO) install -x $(XEN_GOCODE_URL)/xenlight
35
36.PHONY: install
37install: build
38	$(INSTALL_DIR) $(DESTDIR)$(GOXL_INSTALL_DIR)
39	$(INSTALL_DATA) $(XEN_GOPATH)$(GOXL_PKG_DIR)$(PKGSOURCES) $(DESTDIR)$(GOXL_INSTALL_DIR)
40
41.PHONY: uninstall
42	rm -f $(addprefix $(DESTDIR)$(GOXL_INSTALL_DIR)/, $(PKGSOURCES))
43
44.PHONY: clean
45clean:
46	$(RM) -r $(XEN_GOPATH)$(GOXL_PKG_DIR)
47	$(RM) $(XEN_GOPATH)/pkg/*/$(XEN_GOCODE_URL)/xenlight.a
48
49.PHONY: distclean
50distclean: clean
51
52-include $(DEPS_INCLUDE)
53