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