]> git.notmuchmail.org Git - notmuch/blobdiff - Makefile.local
make release: Provide a kinder message when VERSION is forgotten.
[notmuch] / Makefile.local
index 8b926f8d71e4d65a186e57eeabd5aa85e5a6d507..98d69c4d8dfa44772499c14793bb069201c2343b 100644 (file)
@@ -7,10 +7,9 @@
 # digit when we reach particularly major milestones of usability.
 #
 # Between releases, (such as when compiling notmuch from the git
-# repository), we let git to append identification of the actual
-# commit.
+# repository), we let git append identification of the actual commit.
 PACKAGE=notmuch
-VERSION:=$(shell if [ -f version ]; then cat version; else git describe --match '[0-9].[0-9]*'; fi)
+VERSION:=$(shell if [ -f version ]; then cat version; else git describe --match '[0-9.]*'; fi)
 
 RELEASE_HOST=notmuchmail.org
 RELEASE_DIR=/srv/notmuchmail.org/www/releases
@@ -19,29 +18,13 @@ TAR_FILE=$(PACKAGE)-$(VERSION).tar.gz
 SHA1_FILE=$(TAR_FILE).sha1
 GPG_FILE=$(SHA1_FILE).asc
 
-# Get settings from the output of configure by running it to generate
-# Makefile.config if it doesn't exist yet. And add Makefile.config to
-# our global dependency list.
-include Makefile.config
-global_deps += Makefile.config
-Makefile.config: configure
-       @echo ""
-       @echo "Note: Calling ./configure with no command-line arguments. This is often fine,"
-       @echo "      but if you want to specify any arguments (such as an alternate prefix"
-       @echo "      into which to install), call ./configure explicitly and then make again."
-       @echo "      See \"./configure --help\" for more details."
-       @echo ""
-       ./configure
-
-# Sub-directory Makefile.local fragments can append to these variables
-# to have directory-specific cflags as necessary.
-extra_cflags :=
-extra_cxxflags :=
-
 # Smash together user's values with our extra values
 FINAL_CFLAGS = -DNOTMUCH_VERSION=$(VERSION) $(CFLAGS) $(WARN_CFLAGS) $(CONFIGURE_CFLAGS) $(extra_cflags)
 FINAL_CXXFLAGS = $(CXXFLAGS) $(WARN_CXXFLAGS) $(CONFIGURE_CXXFLAGS) $(extra_cflags) $(extra_cxxflags)
 FINAL_NOTMUCH_LDFLAGS = $(LDFLAGS) -Llib -lnotmuch
+ifneq ($(LINKER_RESOLVES_LIBRARY_DEPENDENCIES),1)
+FINAL_NOTMUCH_LDFLAGS += $(CONFIGURE_LDFLAGS)
+endif
 FINAL_LIBNOTMUCH_LDFLAGS = $(LDFLAGS) $(CONFIGURE_LDFLAGS)
 
 .PHONY: all
@@ -61,6 +44,10 @@ ifeq ($(shell cat .first-build-message),)
 endif
 endif
 
+.PHONY: test
+test: all
+       @./test/notmuch-test
+
 $(TAR_FILE):
        git archive --format=tar --prefix=$(PACKAGE)-$(VERSION)/ HEAD > $(TAR_FILE).tmp
        echo $(VERSION) > version
@@ -82,23 +69,22 @@ dist: $(TAR_FILE)
 # We invoke make recursively only to force ordering of our phony
 # targets in the case of parallel invocation of make (-j).
 .PHONY: release
-release: release-verify-newer
-       $(MAKE) release-upload
+release: verify-version
+       $(MAKE) test
+       $(MAKE) $(GPG_FILE)
+       $(MAKE) verify-newer
+       scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR)
+       ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)"
+       mkdir -p releases
+       mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases
+       git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION)
+       git push origin $(VERSION)
        @echo "Please send a release announcement as follows:"
        @echo ""
        $(MAKE) release-message
        $(MAKE) release-message > $(PACKAGE)-$(VERSION).announce
        @echo "(This message is also available in $(PACKAGE)-$(VERSION).announce"
 
-.PHONY: release-upload
-release-upload: $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE)
-       mkdir -p releases
-       scp $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) $(RELEASE_HOST):$(RELEASE_DIR)
-       mv $(TAR_FILE) $(SHA1_FILE) $(GPG_FILE) releases
-       ssh $(RELEASE_HOST) "rm -f $(RELEASE_DIR)/LATEST-$(PACKAGE)-[0-9]* && ln -s $(TAR_FILE) $(RELEASE_DIR)/LATEST-$(PACKAGE)-$(VERSION)"
-       git tag -s -m "$(PACKAGE) $(VERSION) release" $(VERSION)
-       git push origin $(VERSION)
-
 .PHONY: release-message
 release-message:
        @echo "To: notmuch@notmuchmail.org"
@@ -131,17 +117,21 @@ release-message:
        @echo "For more about notmuch, see http://notmuchmail.org"
 
 
-.PHONY: release-verify-version
-release-verify-version:
-       @echo -n "Checking that $(VERSION) is a two-component version..."
-       @if echo $(VERSION) | grep -q -v -x '[0-9]*\.[0-9]*'; then \
-               (echo "Ouch." && \
-                echo "Before releasing the notmuch version should be a two-component value." && false);\
+.PHONY: verify-version
+verify-version:
+       @echo -n "Checking that $(VERSION) consists only of digits and periods..."
+       @if echo $(VERSION) | grep -q -v -x '[0-9.]*'; then \
+               (echo "No." && \
+                echo "Remember: You need to use:" && \
+                echo "" && \
+                echo " make VERSION=X.Y release" && \
+                echo "" && \
+                echo "to release notmuch." && false); \
         else :; fi
        @echo "Good."
 
-.PHONY: release-verify-newer
-release-verify-newer: release-verify-version
+.PHONY: verify-newer
+verify-newer:
        @echo -n "Checking that no $(VERSION) release already exists..."
        @ssh $(RELEASE_HOST) test ! -e $(RELEASE_DIR)/$(TAR_FILE) \
                || (echo "Ouch." && echo "Found: $(RELEASE_HOST):$(RELEASE_DIR)/$(TAR_FILE)" \
@@ -193,7 +183,6 @@ clean:
 distclean: clean
 
 notmuch_client_srcs =          \
-       $(notmuch_compat_srcs)  \
        debugger.c              \
        gmime-filter-reply.c    \
        gmime-filter-headers.c  \
@@ -219,7 +208,7 @@ notmuch_client_modules = $(notmuch_client_srcs:.c=.o)
 notmuch: $(notmuch_client_modules) lib/libnotmuch.a
        $(call quiet,CXX $(CFLAGS)) $^ $(FINAL_LIBNOTMUCH_LDFLAGS) -o $@
 
-notmuch-shared: $(notmuch_client_modules) lib/libnotmuch.so
+notmuch-shared: $(notmuch_client_modules) lib/$(LINKER_NAME)
        $(call quiet,CXX $(CFLAGS)) $(notmuch_client_modules) $(FINAL_NOTMUCH_LDFLAGS) -o $@
 
 notmuch.1.gz: notmuch.1