1
0
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-12-28 10:56:57 +00:00

move all version strings into org-install.el

* targets.mk: check for release and git version and record this
	into environment variables for use in sub-make invocations; add
	new target "compile-dirty" that does not invoke "make clean" first
	* doc/Makefile, lisp/Makefile: remove git version check, since
	they are now provided by first-level make
	* lisp/Makefile: add insertion of version information into
	org-install.el, have org-install.el depend on LISPF rather than
	LISPC so that autoloads can be produced without compiling
	everything and remove insertion into org.el and re-compilation
	during install; add new target "compile-dirty" to support
	invocation from first-level make
	* lisp/org.el (org-version): remove determination of version
	information, show "N/A" if the information is not provided via
	org-install.el
This commit is contained in:
Achim Gratz 2011-11-06 17:53:45 +01:00
parent 306c748f63
commit 6da2d089b0
4 changed files with 20 additions and 45 deletions

View File

@ -2,14 +2,6 @@ ifeq ($(MAKELEVEL), 0)
$(error This make needs to be started as a sub-make from the toplevel directory.)
endif
GITVERSION = $(shell git describe --abbrev=6 HEAD)
ORGVERSION = $(subst release_,,$(shell git describe --abbrev=0 HEAD))
GITSTATUS = $(shell git status -uno --porcelain)
DATE = $(shell date +%Y-%m-%d)
ifneq ("$(GITSTATUS)", "")
GITVERSION := $(GITVERSION).dirty
endif
.PHONY: all info html pdf card manual guide install clean cleanall clean-install
all: info html pdf card

View File

@ -2,36 +2,32 @@ ifeq ($(MAKELEVEL), 0)
$(error This make needs to be started as a sub-make from the toplevel directory.)
endif
GITVERSION = $(shell git describe --abbrev=6 HEAD)
GITSTATUS = $(shell git status -uno --porcelain)
ifneq ("$(GITSTATUS)", "")
GITVERSION := $(GITVERSION).dirty
endif
LISPO = org-install.el
LISPF = $(subst $(LISPO),,$(wildcard *.el))
LISPC = $(LISPF:%el=%elc)
.PHONY: all autoloads compile install clean cleanall clean-install
all compile: $(LISPC)
all \
compile \
compile-dirty: $(LISPC)
autoloads: $(LISPO)
org-install.el: $(LISPC)
org-install.el: $(LISPF)
$(BATCH) \
--eval "(require 'autoload)" \
--eval '(find-file "$(LISPO)")' \
--eval '(erase-buffer)' \
--eval '(mapc (lambda (x) (generate-file-autoloads (symbol-name x))) (quote ($(LISPF))))' \
--eval '(insert "\n(provide (quote org-install))\n")' \
--eval '(insert "\n(defconst org-release \"$(ORGVERSION)\"\n \"The release version of org-mode. Inserted by installing org-mode\n or when a release is made.\")\n")' \
--eval '(insert "\n(defconst org-git-version \"$(GITVERSION)\"\n \"The Git version of org-mode. Inserted by installing org-mode\n or when a release is made.\")\n")' \
--eval '(save-buffer)'
install: $(LISPF) compile autoloads
if [ ! -d $(lispdir) ]; then $(MKDIR) $(lispdir); else true; fi ;
$(CP) $(LISPC) $(LISPF) $(LISPO) $(lispdir)
-$(SED) -e 's/^\((defconst org-git-version \).*/\1 "$(GITVERSION)"/;' org.el > $(lispdir)/org.el
$(MAKE) $(lispdir)/org.elc
clean:
$(RM) *.elc

View File

@ -7,7 +7,6 @@
;; Maintainer: Bastien Guerry <bzg at gnu dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;; Version: 7.8.09
;;
;; This file is part of GNU Emacs.
;;
@ -209,37 +208,14 @@ identifier."
;;; Version
(defconst org-version "7.8.09"
"The version number of the file org.el.")
(defconst org-git-version "N/A"
"The Git version of org-mode. Inserted by installing org-mode
or when a release is made.")
;;;###autoload
(defun org-version (&optional here)
"Show the org-mode version in the echo area.
With prefix arg HERE, insert it at point."
(interactive "P")
(let* ((origin default-directory)
(version org-version)
(git-version org-git-version)
(version (if (boundp 'org-release) org-release "N/A"))
(git-version (if (boundp 'org-git-version) org-git-version "N/A"))
(dir (concat (file-name-directory (locate-library "org")) "../" )))
(when (and (file-exists-p (expand-file-name ".git" dir))
(executable-find "git"))
(unwind-protect
(progn
(cd dir)
(when (eql 0 (shell-command "git describe --abbrev=4 HEAD"))
(with-current-buffer "*Shell Command Output*"
(goto-char (point-min))
(setq git-version (buffer-substring (point) (point-at-eol))))
(subst-char-in-string ?- ?. git-version t)
(when (string-match "\\S-"
(shell-command-to-string "git status -uno --porcelain"))
(setq git-version (concat git-version ".dirty")))
(setq version (concat version " (" git-version ")"))))
(cd origin)))
(setq version (format "Org-mode version %s (%s)" version git-version))
(if here (insert version))
(message version)))

View File

@ -7,12 +7,23 @@ LISPDIRS = lisp
SUBDIRS = doc $(LISPDIRS)
INSTSUB = $(SUBDIRS:%=install-%)
GITVERSION = $(shell git describe --abbrev=6 HEAD)
ORGVERSION = $(subst release_,,$(shell git describe --abbrev=0 HEAD))
GITSTATUS = $(shell git status -uno --porcelain)
DATE = $(shell date +%Y-%m-%d)
ifneq ("$(GITSTATUS)", "")
GITVERSION := $(GITVERSION).dirty
endif
.PHONY: default all up2 update compile lisp doc \
install info html pdf card docs $(INSTSUB) \
autoloads cleanall clean cleancontrib cleanelc cleandoc cleanrel
compile: lisp
compile:: lisp
$(MAKE) -C $< clean
compile \
compile-dirty:: lisp
$(MAKE) -C $< $@
all \