emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/bnf-mode bcad720 08/22: Optimize 'make help' target per


From: Stefan Monnier
Subject: [elpa] externals/bnf-mode bcad720 08/22: Optimize 'make help' target performance
Date: Tue, 3 Mar 2020 10:56:53 -0500 (EST)

branch: externals/bnf-mode
commit bcad720be8c1cc38c9842859d6f3f40cb1d13c58
Author: Serghei Iakovlev <address@hidden>
Commit: Serghei Iakovlev <address@hidden>

    Optimize 'make help' target performance
---
 Makefile | 32 +++++++++++++++++++++-----------
 1 file changed, 21 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index 81fc80a..a55c782 100644
--- a/Makefile
+++ b/Makefile
@@ -17,7 +17,8 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 # 02110-1301, USA.
 
-SHELL := $(shell which bash)
+## Sane defaults
+SHELL ?= $(shell which sh)
 ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
 
 EMACS ?= emacs
@@ -32,25 +33,24 @@ PANDOCLAGS ?= --fail-if-warnings \
        --atx-headers \
        -f org+empty_paragraphs
 
-PKGDIR := $(shell EMACS=$(EMACS) $(CASK) package-directory)
-
-## File lists
-
-SRCS = bnf-mode.el
-OBJS = $(SRCS:.el=.elc)
+PKGDIR = $(ROOT_DIR)
 
 ARCHIVE_NAME = bnf-mode
-VERSION ?= $(shell $(CASK) version)
+VERSION = $(shell sh -c "grep -oh -E 'Version:.*' bnf-mode.el | cut -d' ' -f2")
 PACKAGE_NAME = $(ARCHIVE_NAME)-$(VERSION)
 
+.DEFAULT_GOAL = build
+
 .SILENT: ;               # no need for @
 .ONESHELL: ;             # recipes execute in same shell
 .NOTPARALLEL: ;          # wait for this target to finish
 .EXPORT_ALL_VARIABLES: ; # send all vars to shell
 Makefile: ;              # skip prerequisite discovery
 
-# Run make help by default
-.DEFAULT_GOAL = build
+## File lists
+
+SRCS = bnf-mode.el
+OBJS = $(SRCS:.el=.elc)
 
 ## Internal variables
 
@@ -67,10 +67,20 @@ else
 RUNEMACS = $(CASK) exec $(EMACSBATCH)
 endif
 
+.PHONY: pkg-dir
+pkg-dir:
+ifeq ($(PKGDIR),$(ROOT_DIR))
+ifndef HAVE_CASK
+       $(error "$(CASK) is not available.  Please run make help")
+else
+       PKGDIR=$(shell EMACS=$(EMACS) $(CASK) package-directory)
+endif
+endif
+
 %.elc: %.el $(PKGDIR)
        $(RUNEMACS) --eval '(setq byte-compile-error-on-warn t)' -f 
batch-byte-compile $<
 
-$(PKGDIR): Cask
+$(PKGDIR): pkg-dir Cask
        $(CASK) install
        touch $(PKGDIR)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]