summaryrefslogtreecommitdiff
path: root/mk/Makefile.rpm
diff options
context:
space:
mode:
authorPhus Lu <phus.lu@citrix.com>2015-06-01 10:50:41 +0100
committerPhus Lu <phus.lu@citrix.com>2015-06-03 04:37:13 +0100
commitb27698cbb4ddeb06a52061cd669c510084c1f916 (patch)
tree1ddc39f8c2eee32dcf10bd6bed18b7a543caffa6 /mk/Makefile.rpm
parentfa78be4b463ee703c82c5b711520d3aa953ad846 (diff)
downloadvyos-xe-guest-utilities-b27698cbb4ddeb06a52061cd669c510084c1f916.tar.gz
vyos-xe-guest-utilities-b27698cbb4ddeb06a52061cd669c510084c1f916.zip
CP-12326: move guest-packages.hg/utils into xe-guest-utilities.git
Signed-off-by: Phus Lu <phus.lu@citrix.com>
Diffstat (limited to 'mk/Makefile.rpm')
-rw-r--r--mk/Makefile.rpm128
1 files changed, 128 insertions, 0 deletions
diff --git a/mk/Makefile.rpm b/mk/Makefile.rpm
new file mode 100644
index 0000000..b4d54a7
--- /dev/null
+++ b/mk/Makefile.rpm
@@ -0,0 +1,128 @@
+# -*- makefile -*-
+USE_BRANDING := yes
+IMPORT_VERSIONS := yes
+include $(B_BASE)/common.mk
+
+RPM_LOCAL_RPMBUILD_OPTIONS := -D '_source_payload w9.gzdio' -D '_binary_payload w9.gzdio' \
+ -D '_source_filedigest_algorithm 0' -D '_binary_filedigest_algorithm 0'
+include $(B_BASE)/rpmbuild.mk
+
+RPM_BUILT_COOKIE = $(MY_OBJ_DIR)/.rpm_built_cookie
+
+REPO= $(call git_loc,xe-guest-utilities)
+REPOSTAMP= $(call git_req,xe-guest-utilities)
+
+STAGING_DIR = $(MY_OBJ_DIR)/staging
+INSTALL_DIR = $(STAGING_DIR)/Linux/
+VERSIONS_FILE = $(MY_OBJ_DIR)/versions
+
+ARCHS = i386 x86_64
+
+VERSION = $(PRODUCT_VERSION)
+RELEASE := $(shell git --git-dir="$(REPO)/.git" rev-list HEAD | wc -l)
+
+SPEC= xe-guest-utilities.spec
+SRPM= xe-guest-utilities-$(VERSION)-$(RELEASE).src.rpm
+
+GOTARBALL = /distfiles/golang/go1.4.2.linux-386.tar.gz
+GOROOT = $(MY_OBJ_DIR)/go
+GOBIN = GOROOT=$(GOROOT) $(GOROOT)/bin/go
+GOFLAGS = -a -x
+GOBUILDDIR = $(MY_OBJ_DIR)/gobuild
+
+GO_SOURCE_REPO = $(call git_loc,xe-guest-utilities)
+
+XE_DAEMON_GO_SOURCES :=
+XE_DAEMON_GO_SOURCES += ./xe-daemon/xe-daemon.go # this should be the first one
+XE_DAEMON_GO_SOURCES += ./guestmetric/guestmetric.go
+XE_DAEMON_GO_SOURCES += ./guestmetric/guestmetric_linux.go
+XE_DAEMON_GO_SOURCES += ./xenstoreclient/xenstore.go
+
+XENSTORE_GO_SOURCES :=
+XENSTORE_GO_SOURCES += ./xenstore/xenstore.go # this should be the first one
+XENSTORE_GO_SOURCES += ./xenstoreclient/xenstore.go
+
+SOURCES :=
+SOURCES += $(RPM_SOURCESDIR)/xe-linux-distribution
+SOURCES += $(RPM_SOURCESDIR)/xe-linux-distribution.init
+SOURCES += $(RPM_SOURCESDIR)/xe-daemon
+SOURCES += $(RPM_SOURCESDIR)/xenstore
+
+SOURCES += $(RPM_SOURCESDIR)/Citrix.repo
+SOURCES += $(RPM_SOURCESDIR)/xen-vcpu-hotplug.rules
+SOURCES += $(RPM_SOURCESDIR)/LICENSE
+
+TOOLS_TARBALL = $(MY_OUTPUT_DIR)/tools-files.tar.bz2
+
+.PHONY: build
+build: $(RPM_BUILT_COOKIE) $(RPM_DIRECTORIES) $(TOOLS_TARBALL) $(ARCHS:%=$(MY_OUTPUT_DIR)/xe-guest-utilities.%.inc) $(MY_SOURCES)/MANIFEST
+ @ :
+
+.PHONY: clean
+clean:
+ rm -f $(RPM_SPECSDIR)/$(SPEC)
+ rm -rf $(RPM_BUILDDIR) $(RPM_SOURCESDIR) $(RPM_SPECSDIR)
+ rm -f $(RPM_BUILT_COOKIE)
+ rm -rf $(GOROOT)
+ rm -rf $(DESTDIR)
+
+$(RPM_SPECSDIR)/$(SPEC): $(SPEC).in
+ $(call brand,$<) | \
+ sed -e 's,@VERSION@,$(VERSION),g' \
+ -e 's,@RELEASE@,$(RELEASE),g' \
+ > $@
+
+$(MY_OUTPUT_DIR)/xe-guest-utilities.%.inc: $(MY_OUTPUT_DIR)/.dirstamp
+ ( echo XE_GUEST_UTILITIES_PKG_NAME := xe-guest-utilities ; \
+ echo XE_GUEST_UTILITIES_PKG_VERSION := $(VERSION)-$(RELEASE) ; \
+ echo XE_GUEST_UTILITIES_PKG_ARCH := $* ; \
+ echo XE_GUEST_UTILITIES_PKG_FILE := RPMS/$*/xe-guest-utilities-$(VERSION)-$(RELEASE).$*.rpm ; \
+ )>$@
+
+$(RPM_BUILT_COOKIE): $(RPM_DIRECTORIES) $(RPM_SPECSDIR)/$(SPEC) $(SOURCES)
+ $(RPMBUILD) -bs $(RPM_SPECSDIR)/$(SPEC)
+ set -ex ; for arch in $(ARCHS) ; do \
+ $(RPMBUILD) --target=$${arch} --rebuild $(RPM_SRPMSDIR)/$(SRPM) ; \
+ done
+
+$(MY_SOURCES)/MANIFEST: $(MY_SOURCES_DIRSTAMP)
+ ( echo "$(COMPONENT) GPL file $(RPM_SRPMSDIR)/$(SRPM)" ; \
+ ) >$@
+
+.PHONY: sources
+sources: $(MY_SOURCES)/MANIFEST
+ @ :
+
+$(RPM_SOURCESDIR)/%: $(REPO)/mk/%
+ mkdir -p $(RPM_SOURCESDIR)
+ $(call brand,$<) > $@
+
+$(RPM_SOURCESDIR)/xe-daemon: $(XE_DAEMON_GO_SOURCES:%=$(REPO)/%) $(GOROOT)
+ $(GOBIN) build $(GOFLAGS) -o $@ $<
+
+$(RPM_SOURCESDIR)/xenstore: $(XENSTORE_GO_SOURCES:%=$(REPO)/%) $(GOROOT)
+ $(GOBIN) build $(GOFLAGS) -o $@ $<
+
+$(RPM_SOURCESDIR)/LICENSE: $(REPO)/LICENSE
+ $(call brand,$<) > $@
+
+$(GOBUILDDIR)/%: $(GO_SOURCE_REPO)/%
+ mkdir -p $$(dirname $@)
+ $(call brand,$<) > $@
+
+$(TOOLS_TARBALL): $(RPM_BUILT_COOKIE)
+ mkdir -p $(INSTALL_DIR)
+ rm -f $(INSTALL_DIR)/versions.rpm
+ $(foreach arch,$(ARCHS),\
+ echo XE_GUEST_UTILITIES_PKG_FILE_$(arch)=\'xe-guest-utilities-$(VERSION)-$(RELEASE).$(arch).rpm xe-guest-utilities-xenstore-$(VERSION)-$(RELEASE).$(arch).rpm\' >> $(INSTALL_DIR)/versions.rpm ;\
+ cp -v $(MY_OUTPUT_DIR)/RPMS/$(arch)/xe-guest-utilities-$(VERSION)-$(RELEASE).$(arch).rpm $(INSTALL_DIR)/ ;\
+ cp -v $(MY_OUTPUT_DIR)/RPMS/$(arch)/xe-guest-utilities-xenstore-$(VERSION)-$(RELEASE).$(arch).rpm $(INSTALL_DIR)/ ;\
+ )
+ tar -C $(STAGING_DIR) -cjf $@ .
+
+$(GOROOT):
+ mkdir -p $(GOROOT)
+ ( cd $(GOROOT)/.. ; \
+ tar xf $(GOTARBALL) ;\
+ )
+