summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAchim Gratz <Stromeko@Stromeko.DE>2011-11-06 17:53:45 +0100
committerAchim Gratz <Stromeko@Stromeko.DE>2012-04-20 21:04:10 +0200
commit6da2d089b0c0f165134e33e12267a51a9ac41f52 (patch)
tree69121a73343f6cf4c131062561d1e4954392b57b
parent306c748f6380c6c555f84f2079c4d57f9810b4d6 (diff)
downloadorg-mode-6da2d089b0c0f165134e33e12267a51a9ac41f52.tar.gz
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
-rw-r--r--doc/Makefile8
-rw-r--r--lisp/Makefile16
-rw-r--r--lisp/org.el28
-rw-r--r--targets.mk13
4 files changed, 20 insertions, 45 deletions
diff --git a/doc/Makefile b/doc/Makefile
index 3ca0448..04c4fb8 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -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
diff --git a/lisp/Makefile b/lisp/Makefile
index 6ac5447..6b67392 100644
--- a/lisp/Makefile
+++ b/lisp/Makefile
@@ -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
diff --git a/lisp/org.el b/lisp/org.el
index c761038..9888157 100644
--- a/lisp/org.el
+++ b/lisp/org.el
@@ -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)))
diff --git a/targets.mk b/targets.mk
index d61b6e2..ab333a2 100644
--- a/targets.mk
+++ b/targets.mk
@@ -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 \