* [PATCH 1/2] build: Move variable definitions to Makefile.global
2016-11-19 17:44 provide elpa packages David Bremner
@ 2016-11-19 17:44 ` David Bremner
2016-11-19 17:44 ` [PATCH 2/2] build/emacs: add target to create elpa package David Bremner
2016-11-25 16:49 ` provide elpa packages Tomi Ollila
2 siblings, 0 replies; 7+ messages in thread
From: David Bremner @ 2016-11-19 17:44 UTC (permalink / raw)
To: notmuch
I noticed when trying to use VERSION (and derived variables) in a
subdirectory that the top level Makefile.local needed to be included
first. But according to c10085c77b407d9ea704f8b4f9e0a805f63e72cb it
actually needs to be last. To break this conflict, move the variables
definitions into a new Makefile.global.
---
Makefile | 2 ++
Makefile.global | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Makefile.local | 62 --------------------------------------------------------
3 files changed, 65 insertions(+), 62 deletions(-)
create mode 100644 Makefile.global
diff --git a/Makefile b/Makefile
index 4c0e8c6..6d06903 100644
--- a/Makefile
+++ b/Makefile
@@ -33,6 +33,8 @@ ifeq ($(configure_options),)
endif
$(srcdir)/configure $(configure_options)
+# runtime variable definitions available in all subdirs
+include Makefile.global
# Finally, include all of the Makefile.local fragments where all the
# real work is done.
diff --git a/Makefile.global b/Makefile.global
new file mode 100644
index 0000000..444e6bb
--- /dev/null
+++ b/Makefile.global
@@ -0,0 +1,63 @@
+# Here's the (hopefully simple) versioning scheme.
+#
+# Releases of notmuch have a two-digit version (0.1, 0.2, etc.). We
+# increment the second digit for each release and increment the first
+# digit when we reach particularly major milestones of usability.
+#
+# Between releases, (such as when compiling notmuch from the git
+# repository), we let git append identification of the actual commit.
+PACKAGE=notmuch
+
+IS_GIT:=$(if $(wildcard ${srcdir}/.git),yes,no)
+
+ifeq ($(IS_GIT),yes)
+DATE:=$(shell git --git-dir=${srcdir}/.git log --date=short -1 --pretty=format:%cd)
+else
+DATE:=$(shell date +%F)
+endif
+
+VERSION:=$(shell cat ${srcdir}/version)
+ELPA_VERSION:=$(subst ~,_,$(VERSION))
+ifeq ($(filter release release-message pre-release update-versions,$(MAKECMDGOALS)),)
+ifeq ($(IS_GIT),yes)
+VERSION:=$(shell git --git-dir=${srcdir}/.git describe --abbrev=7 --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/)
+# drop the ~g$sha1 part
+ELPA_VERSION:=$(word 1,$(subst ~, ,$(VERSION)))
+
+# Write the file 'version.stamp' in case its contents differ from $(VERSION)
+FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || vs=; echo $$vs)
+ifneq ($(FILE_VERSION),$(VERSION))
+ $(shell echo "$(VERSION)" > version.stamp)
+endif
+endif
+endif
+
+UPSTREAM_TAG=$(subst ~,_,$(VERSION))
+DEB_TAG=debian/$(UPSTREAM_TAG)-1
+
+RELEASE_HOST=notmuchmail.org
+RELEASE_DIR=/srv/notmuchmail.org/www/releases
+RELEASE_URL=https://notmuchmail.org/releases
+TAR_FILE=$(PACKAGE)-$(VERSION).tar.gz
+ELPA_FILE:=$(PACKAGE)-emacs-$(ELPA_VERSION).tar
+DEB_TAR_FILE=$(PACKAGE)_$(VERSION).orig.tar.gz
+SHA1_FILE=$(TAR_FILE).sha1
+GPG_FILE=$(SHA1_FILE).asc
+
+PV_FILE=bindings/python/notmuch/version.py
+
+# Smash together user's values with our extra values
+STD_CFLAGS := -std=gnu99
+FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CPPFLAGS) $(STD_CFLAGS) $(CFLAGS) $(WARN_CFLAGS) $(extra_cflags) $(CONFIGURE_CFLAGS)
+FINAL_CXXFLAGS = $(CPPFLAGS) $(CXXFLAGS) $(WARN_CXXFLAGS) $(extra_cflags) $(extra_cxxflags) $(CONFIGURE_CXXFLAGS)
+FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch
+ifeq ($(LIBDIR_IN_LDCONFIG),0)
+FINAL_NOTMUCH_LDFLAGS += $(RPATH_LDFLAGS)
+endif
+FINAL_NOTMUCH_LDFLAGS += $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(ZLIB_LDFLAGS)
+FINAL_NOTMUCH_LINKER = CC
+ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1)
+FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS)
+FINAL_NOTMUCH_LINKER = CXX
+endif
+FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
diff --git a/Makefile.local b/Makefile.local
index 0a122ab..2220823 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -1,67 +1,5 @@
# -*- makefile -*-
-# Here's the (hopefully simple) versioning scheme.
-#
-# Releases of notmuch have a two-digit version (0.1, 0.2, etc.). We
-# increment the second digit for each release and increment the first
-# digit when we reach particularly major milestones of usability.
-#
-# Between releases, (such as when compiling notmuch from the git
-# repository), we let git append identification of the actual commit.
-PACKAGE=notmuch
-
-IS_GIT:=$(if $(wildcard ${srcdir}/.git),yes,no)
-
-ifeq ($(IS_GIT),yes)
-DATE:=$(shell git --git-dir=${srcdir}/.git log --date=short -1 --pretty=format:%cd)
-else
-DATE:=$(shell date +%F)
-endif
-
-VERSION:=$(shell cat ${srcdir}/version)
-ELPA_VERSION:=$(subst ~,_,$(VERSION))
-ifeq ($(filter release release-message pre-release update-versions,$(MAKECMDGOALS)),)
-ifeq ($(IS_GIT),yes)
-VERSION:=$(shell git --git-dir=${srcdir}/.git describe --abbrev=7 --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/)
-# drop the ~g$sha1 part
-ELPA_VERSION:=$(word 1,$(subst ~, ,$(VERSION)))
-# Write the file 'version.stamp' in case its contents differ from $(VERSION)
-FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || vs=; echo $$vs)
-ifneq ($(FILE_VERSION),$(VERSION))
- $(shell echo "$(VERSION)" > version.stamp)
-endif
-endif
-endif
-
-UPSTREAM_TAG=$(subst ~,_,$(VERSION))
-DEB_TAG=debian/$(UPSTREAM_TAG)-1
-
-RELEASE_HOST=notmuchmail.org
-RELEASE_DIR=/srv/notmuchmail.org/www/releases
-RELEASE_URL=https://notmuchmail.org/releases
-TAR_FILE=$(PACKAGE)-$(VERSION).tar.gz
-DEB_TAR_FILE=$(PACKAGE)_$(VERSION).orig.tar.gz
-SHA1_FILE=$(TAR_FILE).sha1
-GPG_FILE=$(SHA1_FILE).asc
-
-PV_FILE=bindings/python/notmuch/version.py
-
-# Smash together user's values with our extra values
-STD_CFLAGS := -std=gnu99
-FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CPPFLAGS) $(STD_CFLAGS) $(CFLAGS) $(WARN_CFLAGS) $(extra_cflags) $(CONFIGURE_CFLAGS)
-FINAL_CXXFLAGS = $(CPPFLAGS) $(CXXFLAGS) $(WARN_CXXFLAGS) $(extra_cflags) $(extra_cxxflags) $(CONFIGURE_CXXFLAGS)
-FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Lutil -lutil -Llib -lnotmuch
-ifeq ($(LIBDIR_IN_LDCONFIG),0)
-FINAL_NOTMUCH_LDFLAGS += $(RPATH_LDFLAGS)
-endif
-FINAL_NOTMUCH_LDFLAGS += $(AS_NEEDED_LDFLAGS) $(GMIME_LDFLAGS) $(TALLOC_LDFLAGS) $(ZLIB_LDFLAGS)
-FINAL_NOTMUCH_LINKER = CC
-ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1)
-FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS)
-FINAL_NOTMUCH_LINKER = CXX
-endif
-FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(AS_NEEDED_LDFLAGS) $(CONFIGURE_LDFLAGS)
-
.PHONY: all
all: notmuch notmuch-shared build-man ruby-bindings
ifeq ($(MAKECMDGOALS),)
--
2.10.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] build/emacs: add target to create elpa package
2016-11-19 17:44 provide elpa packages David Bremner
2016-11-19 17:44 ` [PATCH 1/2] build: Move variable definitions to Makefile.global David Bremner
@ 2016-11-19 17:44 ` David Bremner
2016-11-25 16:49 ` provide elpa packages Tomi Ollila
2 siblings, 0 replies; 7+ messages in thread
From: David Bremner @ 2016-11-19 17:44 UTC (permalink / raw)
To: notmuch
This package can be created without emacs, but will only be usable in
versions of emacs supporting package.el
---
Makefile.global | 2 ++
emacs/Makefile.local | 10 ++++++++++
2 files changed, 12 insertions(+)
diff --git a/Makefile.global b/Makefile.global
index 444e6bb..d8f335a 100644
--- a/Makefile.global
+++ b/Makefile.global
@@ -23,6 +23,8 @@ ifeq ($(IS_GIT),yes)
VERSION:=$(shell git --git-dir=${srcdir}/.git describe --abbrev=7 --match '[0-9.]*'|sed -e s/_/~/ -e s/-/+/ -e s/-/~/)
# drop the ~g$sha1 part
ELPA_VERSION:=$(word 1,$(subst ~, ,$(VERSION)))
+# convert git version to package.el friendly form
+ELPA_VERSION:=$(subst +,snapshot,$(ELPA_VERSION))
# Write the file 'version.stamp' in case its contents differ from $(VERSION)
FILE_VERSION:=$(shell test -f version.stamp && read vs < version.stamp || vs=; echo $$vs)
diff --git a/emacs/Makefile.local b/emacs/Makefile.local
index 90a57cc..f163617 100644
--- a/emacs/Makefile.local
+++ b/emacs/Makefile.local
@@ -24,6 +24,8 @@ emacs_sources := \
$(dir)/notmuch-company.el \
$(dir)/notmuch-draft.el
+elpa_sources := ${emacs_sources} $(dir)/notmuch-pkg.el
+
$(dir)/notmuch-version.el: $(dir)/Makefile.local version.stamp
$(dir)/notmuch-version.el: $(srcdir)/$(dir)/notmuch-version.el.tmpl
@sed -e 's/%AG%/Generated file (from $(<F)) -- do not edit!/' \
@@ -73,6 +75,14 @@ ifeq ($(HAVE_EMACS),1)
$(call quiet,EMACS) --directory emacs -batch -f batch-byte-compile $<
endif
+elpa: $(ELPA_FILE)
+
+notmuch-emacs-%.tar: ${elpa_sources}
+ mkdir -p .elpa-build/notmuch-${ELPA_VERSION}
+ cp ${elpa_sources} .elpa-build/notmuch-${ELPA_VERSION}
+ tar -C .elpa-build -cf $@ notmuch-${ELPA_VERSION}
+ rm -r .elpa-build
+
ifeq ($(WITH_EMACS),1)
ifeq ($(HAVE_EMACS),1)
all: $(emacs_bytecode)
--
2.10.2
^ permalink raw reply related [flat|nested] 7+ messages in thread