diff options
author | Bastien Guerry <bzg@altern.org> | 2012-04-21 10:02:28 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2012-04-21 10:02:28 +0200 |
commit | 08bd0b8892644c3bd10e8f081dc765ada53b8bf9 (patch) | |
tree | bcf00be7c52ba819c2cece3841527482be1daaaf | |
parent | 501b76ad365f85750490abc05b20446fba4d409a (diff) | |
parent | e102e411e4c9a70823b10b25e748f9c1e829b956 (diff) | |
download | org-mode-08bd0b8892644c3bd10e8f081dc765ada53b8bf9.tar.gz |
Merge branch 'local-Makefile' into test-makefile-merge
-rw-r--r-- | .gitignore | 11 | ||||
-rw-r--r-- | Makefile | 600 | ||||
-rwxr-xr-x | UTILITIES/make_emacs_changelog | 4 | ||||
-rw-r--r-- | default.mk | 100 | ||||
-rw-r--r-- | doc/Makefile | 70 | ||||
-rw-r--r-- | doc/org.texi | 3 | ||||
-rw-r--r-- | etc/Makefile | 31 | ||||
-rw-r--r-- | etc/schema/od-manifest-schema-v1.2-cs01.rnc (renamed from contrib/odt/etc/schema/od-manifest-schema-v1.2-cs01.rnc) | 0 | ||||
-rw-r--r-- | etc/schema/od-schema-v1.2-cs01.rnc (renamed from contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc) | 0 | ||||
-rw-r--r-- | etc/schema/schemas.xml (renamed from contrib/odt/etc/schema/schemas.xml) | 0 | ||||
-rw-r--r-- | lisp/Makefile | 79 | ||||
-rw-r--r-- | lisp/org.el | 33 | ||||
-rw-r--r-- | targets.mk | 100 |
13 files changed, 432 insertions, 599 deletions
@@ -31,11 +31,18 @@ orgcard_letter.tex orgcard.txt org org-install.el +org-version.* org-*.tar.gz org-*.zip manual org_dual_license.texi ORGWEBPAGE/Changes.txt +local*.mk +.gitattributes + +# texi2pdf --tidy + +doc/*.t2d # aspell word and replacement lists @@ -56,10 +63,8 @@ TODO .DS_Store *# .#* +/UTILITIES/x11idle # # Local variables: -# fill-column: 72 -# mode: conf # End: -/UTILITIES/x11idle @@ -1,575 +1,39 @@ # Makefile - for the org-mode distribution # -# Maintainer: Carsten Dominik <dominik@science.uva.nl> -# Version: VERSIONTAG -# -# To install org-mode, edit the Makefile, type `make', then `make install'. -# To create the PDF and HTML documentation files, type `make doc'. - -##---------------------------------------------------------------------- -## YOU MUST EDIT THE FOLLOWING LINES -##---------------------------------------------------------------------- - -# Name of your emacs binary -EMACS=emacs - -# Where local software is found -prefix=/usr/local - -# Where local lisp files go -lispdir = $(prefix)/share/emacs/site-lisp - -# Where data files go -# $(datadir) contains auxiliary files for use with ODT exporter. -# See comments under DATAFILES. -datadir = $(prefix)/share/emacs/etc - -# Where info files go -infodir = $(prefix)/share/info - -##---------------------------------------------------------------------- -## YOU MAY NEED TO EDIT THESE -##---------------------------------------------------------------------- - -# Using emacs in batch mode. - -BATCH=$(EMACS) -batch -q -no-site-file -eval \ - "(setq load-path (cons (expand-file-name \"./lisp/\") (cons \"$(lispdir)\" load-path)))" $(BATCH_EXTRA) - -# Specify the byte-compiler for compiling org-mode files -ELC= $(BATCH) -f batch-byte-compile - -# How to make a pdf file from a texinfo file -TEXI2PDF = texi2pdf - -# How to create directories -MKDIR = mkdir -p - -# How to create the info files from the texinfo file -MAKEINFO = makeinfo - -# How to create the HTML file -TEXI2HTML = makeinfo --html --number-sections -TEXI2HTMLNOPSLIT = makeinfo --html --no-split --number-sections - -# How to copy the lisp files and elc files to their distination. -CP = cp -pr - -# Name of the program to install info files -INSTALL_INFO=install-info - -##---------------------------------------------------------------------- -## BELOW THIS LINE ON YOUR OWN RISK! -##---------------------------------------------------------------------- - -# The following variables need to be defined by the maintainer -LISPF = org.el \ - org-agenda.el \ - org-ascii.el \ - org-attach.el \ - org-archive.el \ - org-bbdb.el \ - org-beamer.el \ - org-bibtex.el \ - org-capture.el \ - org-clock.el \ - org-colview.el \ - org-colview-xemacs.el \ - org-compat.el \ - org-pcomplete.el \ - org-crypt.el \ - org-ctags.el \ - org-datetree.el \ - org-docview.el \ - org-entities.el \ - org-exp.el \ - org-exp-blocks.el \ - org-docbook.el \ - org-faces.el \ - org-feed.el \ - org-footnote.el \ - org-freemind.el \ - org-gnus.el \ - org-eshell.el \ - org-habit.el \ - org-html.el \ - org-icalendar.el \ - org-id.el \ - org-indent.el \ - org-info.el \ - org-inlinetask.el \ - org-jsinfo.el \ - org-irc.el \ - org-latex.el \ - org-list.el \ - org-lparse.el \ - org-mac-message.el \ - org-macs.el \ - org-mew.el \ - org-mhe.el \ - org-mks.el \ - org-mobile.el \ - org-mouse.el \ - org-odt.el \ - org-publish.el \ - org-plot.el \ - org-protocol.el \ - org-remember.el \ - org-rmail.el \ - org-special-blocks.el \ - org-src.el \ - org-table.el \ - org-taskjuggler.el \ - org-timer.el \ - org-vm.el \ - org-w3m.el \ - org-wl.el \ - org-xoxo.el \ - ob.el \ - ob-table.el \ - ob-lob.el \ - ob-ref.el \ - ob-exp.el \ - ob-tangle.el \ - ob-comint.el \ - ob-eval.el \ - ob-keys.el \ - ob-awk.el \ - ob-C.el \ - ob-calc.el \ - ob-ditaa.el \ - ob-haskell.el \ - ob-perl.el \ - ob-sh.el \ - ob-R.el \ - ob-dot.el \ - ob-mscgen.el \ - ob-latex.el \ - ob-lisp.el \ - ob-ledger.el \ - ob-python.el \ - ob-sql.el \ - ob-asymptote.el \ - ob-emacs-lisp.el \ - ob-matlab.el \ - ob-ruby.el \ - ob-sqlite.el \ - ob-clojure.el \ - ob-ocaml.el \ - ob-sass.el \ - ob-css.el \ - ob-gnuplot.el \ - ob-octave.el \ - ob-screen.el \ - ob-plantuml.el \ - ob-org.el \ - ob-js.el \ - ob-scheme.el \ - ob-lilypond.el \ - ob-java.el \ - ob-shen.el \ - ob-fortran.el \ - ob-picolisp.el \ - ob-maxima.el \ - ob-io.el \ - ob-scala.el - -LISPFILES0 = $(LISPF:%=lisp/%) -LISPFILES = $(LISPFILES0) lisp/org-install.el -ELCFILES0 = $(LISPFILES0:.el=.elc) -ELCFILES = $(LISPFILES:.el=.elc) -DOCFILES = doc/org.texi doc/org.pdf doc/org doc/dir \ - doc/pdflayout.sty doc/.nosearch \ - doc/orgguide.texi doc/orgguide.pdf -CARDFILES = doc/orgcard.tex doc/orgcard.pdf doc/orgcard_letter.pdf -TEXIFILES = doc/org.texi -INFOFILES = doc/org - -# etc/styles contains OpenDocument style files. These files *must* be -# installed for the ODT exporter to function. These files are -# distirbuted with GNU ELPA as well as with stock Emacs >= 24.1. - -# contrib/odt/etc/schema contains OpenDocument schema files. It is -# *desirable* but *not* mandatory that these files be installed. -# These files are not distributed with stock Emacs. This is because -# the terms under which OASIS distributes these files are not -# agreeable to FSF. - -# BasicODConverter-x.y.z.oxt is a LibreOffice extension for converting -# OpenDocument files to numerous other formats. It is similar to -# unoconv and is implemented in StarBasic. It is *desirable* but -# *not* *mandatory* that the converter be installed. It is -# distributed under the same license as GNU Emacs. This file is *not* -# part of GNU Emacs. -DATAFILES = etc/styles \ - # contrib/odt/BasicODConverter/BasicODConverter*.oxt \ - # contrib/odt/etc/schema \ - -# Package Manager (ELPA) -PKG_TAG = $(shell date +%Y%m%d) -PKG_DOC = "Outline-based notes management and organizer" -PKG_REQ = "nil" - -PKG_FILES = $(LISPFILES0) \ - doc/dir doc/org \ - doc/pdflayout.sty \ - doc/org.pdf \ - doc/orgguide.pdf \ - doc/orgcard.tex \ - doc/orgcard.pdf \ - doc/orgcard_letter.pdf \ - etc/ - -.SUFFIXES: .el .elc .texi -SHELL = /bin/sh - -# Additional distribution files -DISTFILES_extra= Makefile request-assign-future.txt contrib etc - -default: $(ELCFILES) $(ELCBFILES) - -all: $(ELCFILES) $(ELCBFILES) $(INFOFILES) - -up2: update - sudo ${MAKE} install - -update: - git pull - ${MAKE} clean - ${MAKE} all - -compile: $(ELCFILES0) $(ELCBFILES) - -install: install-lisp install-data - -doc: doc/org.html doc/org.pdf doc/orgcard.pdf doc/orgcard_letter.pdf doc/orgguide.pdf doc/orgcard.txt - -p: - ${MAKE} pdf && open doc/org.pdf - -g: - ${MAKE} pdf && open doc/orgguide.pdf - -# Always force re-compilation of org-odt -lisp/org-odt.elc: org-odt-data-dir -org-odt-data-dir: - -# Sleight of hand to "hard code" the value of $(datadir) in -# org-odt.el. See variables `org-odt-styles-dir-list' and -# `org-odt-schema-dir-list'. -install-lisp: BATCH_EXTRA = -eval "(setq org-odt-data-dir (expand-file-name \"$(datadir)\"))" - -install-lisp: $(LISPFILES) $(ELCFILES) - if [ ! -d $(DESTDIR)$(lispdir) ]; then \ - $(MKDIR) $(DESTDIR)$(lispdir); else true; fi ; - $(CP) $(LISPFILES) $(DESTDIR)$(lispdir) - $(CP) $(ELCFILES) $(DESTDIR)$(lispdir) - -install-info: $(INFOFILES) - if [ ! -d $(DESTDIR)$(infodir) ]; then \ - $(MKDIR) $(DESTDIR)$(infodir); else true; fi ; - $(CP) $(INFOFILES) $(DESTDIR)$(infodir) - $(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) $(INFOFILES) - -install-data: $(DATAFILES) - if [ ! -d $(DESTDIR)$(datadir) ]; then \ - $(MKDIR) $(DESTDIR)$(datadir); else true; fi ; - $(CP) $(DATAFILES) $(DESTDIR)$(datadir) - -autoloads: lisp/org-install.el +# This file is not part of GNU Emacs -lisp/org-install.el: $(LISPFILES0) Makefile - $(BATCH) --eval "(require 'autoload)" \ - --eval '(find-file "lisp/org-install.el")' \ - --eval '(erase-buffer)' \ - --eval '(mapc (lambda (x) (generate-file-autoloads (symbol-name x))) (quote ($(LISPF))))' \ - --eval '(insert "\n(provide (quote org-install))\n")' \ - --eval '(save-buffer)' - -doc/org: doc/org.texi - (cd doc && $(MAKEINFO) --no-split org.texi -o org) - -doc/org.pdf: doc/org.texi - (cd doc && $(TEXI2PDF) org.texi) - -doc/orgguide.pdf: doc/orgguide.texi - (cd doc && $(TEXI2PDF) orgguide.texi) - -doc/org.html: doc/org.texi - (cd doc && $(TEXI2HTML) --no-split -o org.html org.texi) - UTILITIES/manfull.pl doc/org.html - -doc/orgcard.pdf: doc/orgcard.tex - (cd doc && pdftex orgcard.tex) - -doc/orgcard.txt: doc/orgcard.tex - (cd doc && perl ../UTILITIES/orgcard2txt.pl orgcard.tex > orgcard.txt) - -doc/orgcard_letter.tex: doc/orgcard.tex - perl -pe 's/\\pdflayout=\(0l\)/\\pdflayout=(1l)/' \ - doc/orgcard.tex > doc/orgcard_letter.tex - -doc/orgcard_letter.pdf: doc/orgcard_letter.tex - (cd doc && pdftex orgcard_letter.tex) - -# Below here are special targets for maintenance only - -html: doc/org.html - -html_manual: doc/org.texi - rm -rf doc/manual - mkdir doc/manual - $(TEXI2HTML) -o doc/manual doc/org.texi - UTILITIES/mansplit.pl doc/manual/*.html - -html_guide: doc/orgguide.texi - rm -rf doc/guide - mkdir doc/guide - $(TEXI2HTML) -o doc/guide doc/orgguide.texi - UTILITIES/guidesplit.pl doc/guide/*.html - -info: doc/org - -pdf: doc/org.pdf doc/orgguide.pdf - -card: doc/orgcard.pdf doc/orgcard_letter.pdf doc/orgcard.txt - -testrelease: - git checkout -b testrelease origin/maint - git merge -s recursive -X theirs master - UTILITIES/set-version.pl testing - git commit -a -m "Release testing" - make distfile TAG=testversion - make cleanrel - rm -rf org-testversion* - git reset --hard - git checkout master - git branch -D testrelease - -# The following target makes a full release for the stuff that is -# currently on master. Do it like this: -# -# make release TAG=7.01 - -release: - git checkout maint - git merge -s recursive -X theirs master - UTILITIES/set-version.pl $(TAG) - git commit -a -m "Major release $(TAG) from master" - make relup TAG=$(TAG) - make cleanrel - make pushreleasetag TAG=$(TAG) - git push -f origin maint - git checkout master - git merge -s ours maint - UTILITIES/set-version.pl -a $(TAG) - git commit -a -m "Bump to version $(TAG) as current release from master" - git push - -# The following target makes a release, but from the stuff that is on -# maint, not from the stuff that is on master. The idea is that it pushes -# out a minor fix into a minor update, while development on master -# already went full steam ahead. To make a micro-relesse, cherry-pick -# the necessary changes into maint, then run (with proper version number) -# This is just like release, but we skip the step which merges master -# into maint. -# -# make fixrelease TAG=7.01.02 - -fixrelease: - git checkout maint - UTILITIES/set-version.pl $(TAG) - git commit -a -m "Bugfix release $(TAG) from maint" - make relup TAG=$(TAG) - make cleanrel - make pushreleasetag TAG=$(TAG) - git push -f origin maint - git checkout master - git merge -s ours maint - UTILITIES/set-version.pl -o $(TAG) - git commit -a -m "Bump to version $(TAG) as current release from maint" - git push - -# ~$ make relup only makes sense from orgmode.org server -# Don't call it from your computer! -relup: - ${MAKE} makerelease - ${MAKE} sync_release - ${MAKE} sync_manual - -makerelease: - @if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi - ${MAKE} distfile - ${MAKE} doc - UTILITIES/gplmanual.pl - ${MAKE} html_manual - ${MAKE} html_guide - rm -rf RELEASEDIR - $(MKDIR) RELEASEDIR - cp org-$(TAG).zip org-$(TAG).tar.gz RELEASEDIR - cp doc/org.pdf doc/orgcard.pdf doc/org.texi doc/org.html RELEASEDIR - cp doc/org_dual_license.texi RELEASEDIR - cp doc/orgguide.pdf doc/orgcard.txt RELEASEDIR - cp RELEASEDIR/org-$(TAG).zip RELEASEDIR/org.zip - cp RELEASEDIR/org-$(TAG).tar.gz RELEASEDIR/org.tar.gz - -# ~$ make sync_release only makes sense from orgmode.org server -# Don't call it from your computer! -sync_release: - rsync -avuz RELEASEDIR/ /var/www/orgmode.org/ - -# ~$ make sync_manual only makes sense from orgmode.org server -# Don't call it from your computer! -sync_manual: - rsync -avuz --delete doc/manual/ /var/www/orgmode.org/manual/ - rsync -avuz --delete doc/guide/ /var/www/orgmode.org/guide/ - -distfile: - @if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi - touch doc/org.texi doc/orgcard.tex # force update - ${MAKE} cleancontrib - ${MAKE} info - ${MAKE} doc - ${MAKE} lisp/org-install.el - rm -rf org-$(TAG) org-$(TAG).zip - $(MKDIR) org-$(TAG) - $(MKDIR) org-$(TAG)/doc - $(MKDIR) org-$(TAG)/lisp - cp -r $(LISPFILES) org-$(TAG)/lisp - cp -r $(DOCFILES) $(CARDFILES) org-$(TAG)/doc - cp -r $(DISTFILES_extra) org-$(TAG)/ - cp -r README_DIST org-$(TAG)/README - zip -r org-$(TAG).zip org-$(TAG) - tar zcvf org-$(TAG).tar.gz org-$(TAG) - -pkg: - @if [ "X$(PKG_TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi - touch doc/org.texi doc/orgcard.tex # force update - ${MAKE} info - ${MAKE} doc - rm -rf org-$(PKG_TAG) org-$(PKG_TAG).tar - $(MKDIR) org-$(PKG_TAG) - cp -r $(PKG_FILES) org-$(PKG_TAG) - echo "(define-package \"org\" \"$(PKG_TAG)\" \"$(PKG_DOC)\" $(PKG_REQ))" > org-$(PKG_TAG)/org-pkg.el - tar cf org-$(PKG_TAG).tar org-$(PKG_TAG) --remove-files - -cleanall: - ${MAKE} clean - rm -f lisp/org-install.el - -clean: - ${MAKE} cleanelc - ${MAKE} cleandoc - ${MAKE} cleanrel - rm -f *~ */*~ */*/*~ - -cleancontrib: - find contrib -name \*~ -exec rm {} \; - -cleanelc: - rm -f $(ELCFILES) -cleandoc: - -(cd doc && rm -f org.pdf org org.html orgcard.pdf orgguide.pdf) - -(cd doc && rm -f *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.pg *.pgs) - -(cd doc && rm -f *.toc *.tp *.tps *.vr *.vrs *.log *.html *.ps) - -(cd doc && rm -f orgcard_letter.tex orgcard_letter.pdf) - -(cd doc && rm -rf manual) - -cleanrel: - rm -rf RELEASEDIR - rm -rf org-7.* - rm -rf org-7*zip org-7*tar.gz - -.el.elc: - $(ELC) $< - - -push: - git push orgmode@orgmode.org:org-mode.git master - -pushtag: - git tag -m "Adding tag" -a $(TAG) - git push orgmode@orgmode.org:org-mode.git $(TAG) - -pushreleasetag: - git tag -m "Adding release tag" -a release_$(TAG) - git push orgmode@orgmode.org:org-mode.git release_$(TAG) - -# Dependencies - -lisp/org.elc: lisp/org-macs.el lisp/org-compat.el lisp/org-faces.el -lisp/org-agenda.elc: lisp/org.el -lisp/org-ascii.elc: lisp/org-exp.el -lisp/org-attach.elc: lisp/org.el lisp/org-id.el -lisp/org-archive.elc: lisp/org.el -lisp/org-bbdb.elc: lisp/org.el -lisp/org-beamer.elc: lisp/org.el -lisp/org-bibtex.elc: lisp/org.el -lisp/org-capture.elc: lisp/org.el lisp/org-mks.el -lisp/org-clock.elc: lisp/org.el -lisp/org-colview.elc: lisp/org.el -lisp/org-colview-xemacs.elc: lisp/org.el -lisp/org-compat.elc: lisp/org-macs.el -lisp/org-crypt.elc: lisp/org-crypt.el lisp/org.el -lisp/org-ctags.elc: lisp/org.el -lisp/org-datetree.elc: lisp/org.el -lisp/org-docview.elc: lisp/org.el -lisp/org-entities.elc: -lisp/org-exp.elc: lisp/org.el lisp/org-agenda.el -lisp/org-exp-blocks.elc: lisp/org.el -lisp/org-latex.elc: lisp/org.el lisp/org-exp.el lisp/org-beamer.el -lisp/org-docbook.elc: lisp/org.el lisp/org-exp.el -lisp/org-faces.elc: lisp/org-macs.el lisp/org-compat.el -lisp/org-feed.elc: lisp/org.el -lisp/org-footnotes.elc: lisp/org-macs.el lisp/org-compat.el -lisp/org-freemind.elc: lisp/org.el -lisp/org-gnus.elc: lisp/org.el -lisp/org-html.elc: lisp/org-exp.el -lisp/org-habit.elc: lisp/org.el lisp/org-agenda.el -lisp/org-icalendar.elc: lisp/org-exp.el -lisp/org-id.elc: lisp/org.el -lisp/org-indent.elc: lisp/org.el lisp/org-macs.el lisp/org-compat.el -lisp/org-info.elc: lisp/org.el -lisp/org-inlinetask.elc: -lisp/org-irc.elc: lisp/org.el -lisp/org-jsinfo.elc: lisp/org.el lisp/org-exp.el -lisp/org-list.elc: lisp/org-macs.el lisp/org-compat.el -lisp/org-lparse.elc: lisp/org-exp.el -lisp/org-mac-message.elc: lisp/org.el -lisp/org-macs.elc: -lisp/org-mew.elc: lisp/org.el -lisp/org-mhe.elc: lisp/org.el -lisp/org-mks.elc: -lisp/org-mobile.elc: lisp/org.el -lisp/org-mouse.elc: lisp/org.el -lisp/org-odt.elc: lisp/org-lparse.el -lisp/org-plot.elc: lisp/org.el lisp/org-exp.el lisp/org-table.el -lisp/org-publish.elc: -lisp/org-protocol.elc: lisp/org.el -lisp/org-remember.elc: lisp/org.el -lisp/org-rmail.elc: lisp/org.el -lisp/org-special-blocks.elc: lisp/org-compat.el -lisp/org-src.elc: lisp/org-macs.el lisp/org-compat.el -lisp/org-table.elc: lisp/org.el -lisp/org-taskjuggler.elc: lisp/org.el lisp/org-exp.el -lisp/org-timer.elc: lisp/org.el -lisp/org-vm.elc: lisp/org.el -lisp/org-w3m.elc: lisp/org.el -lisp/org-wl.elc: lisp/org.el -lisp/org-xoxo.elc: lisp/org-exp.el +# default target is "all" +all:: # Describe valid make targets for org-mode. +.PHONY: targets help targets help: - @echo "make - compile Org ELisp files" - @echo "make clean - clean Elisp and documentation files" - @echo "make all - compile Org ELisp files and documentation" + $(info ) + $(info make - show this help) + $(info make all - cleanly compile Org ELisp files and documentation) + $(info ) + $(info Installation) + $(info ============) + $(info make install - install Org, both ELisp and Info files) + $(info make install-lisp - install Org, only ELisp files) + $(info make install-info - install Org, only Info file) + $(info ) + $(info Maintenance) + $(info ===========) + $(info make docs - make all documentation) + $(info make info - make Info documentation) + $(info make html - make HTML documentation) + $(info make pdf - make pdf documentation) + $(info make card - make refcards documentation) + $(info ) + $(info make check - build org and run complete test suite) + $(info make clean - clean Org ELisp and documentation files) + $(info make compile - cleanly compile Org ELisp files) + $(info make compile-dirty - compile Org ELisp without cleaning) + $(info ) + $(info make clean-install - remove installed Org ELisp and documentation files) @echo "" - @echo "make doc - make all documentation" - @echo "make info - make Info documentation" - @echo "make html - make HTML documentation" - @echo "make pdf - make pdf documentation" - @echo "make card - make refcards documentation" - @echo "" - @echo "make install - install Org" - @echo "make install-lisp - install Org ELisp files" - @echo "make install-info - install Org Info file" + + include default.mk # defaults, customizable via "local.mk" +-include local.mk # optional local customization, use default.mk as template + include targets.mk # toplevel make machinery diff --git a/UTILITIES/make_emacs_changelog b/UTILITIES/make_emacs_changelog index 8d14a75..565bc64 100755 --- a/UTILITIES/make_emacs_changelog +++ b/UTILITIES/make_emacs_changelog @@ -59,8 +59,8 @@ for $i (0..$#commits) { # remove stuff which is not for this output if ($kind =~ /\S/) { - remove_parts("contrib/","testing/","xemacs/"); - remove_parts("Makefile","README"); + remove_parts("contrib/","testing/","xemacs/","UTILITIES/"); + remove_parts(".*Makefile","README",".+\.mk"); } if ($kind eq "lisp") { remove_parts("doc/") } if ($kind eq "texi") { remove_parts("lisp/","doc/orgcard","doc/orgguide") } diff --git a/default.mk b/default.mk new file mode 100644 index 0000000..45e6fbf --- /dev/null +++ b/default.mk @@ -0,0 +1,100 @@ +##---------------------------------------------------------------------- +## NEVER EDIT THIS FILE, PUT ANY ADAPTATIONS INTO local.mk +##---------------------------------------------------------------------- +## CHECK AND ADAPT THE FOLLOWING DEFINITIONS +##---------------------------------------------------------------------- + +# Name of your emacs binary +EMACS = emacs + +# Where local software is found +prefix = /usr/share + +# Where local lisp files go. +lispdir= $(prefix)/emacs/site-lisp/org + +# Where local data files go. +datadir = $(prefix)/emacs/etc/org + +# Where info files go. +infodir = $(prefix)/info + +# Where to create temporary files for the testsuite +TMPDIR ?= /tmp +testdir = $(TMPDIR)/tmp-orgtest + +# Configuration for testing +BTEST_PRE = # add options before standard load-path +BTEST_POST = # add options after standard load path + # -L <path-to>/ert # needed for Emacs23, Emacs24 has ert built in + # -L <path-to>/htmlize # need at least version 1.34 for source code formatting +BTEST_OB_LANGUAGES = awk C fortran maxima lilypond octave python sh # R + # R is not activated by default because it requires ess to be installed and configured +BTEST_EXTRA = # extra packages to require for testing + +##---------------------------------------------------------------------- +## YOU MAY NEED TO ADAPT THESE DEFINITIONS +##---------------------------------------------------------------------- + +# How to run tests +req-ob-lang = --eval '(require '"'"'ob-$(ob-lang))' +req-extra = --eval '(require '"'"'$(req))' +BTEST = $(EMACS) -batch -Q \ + $(BTEST_PRE) -L lisp/ -L testing/ $(BTEST_POST) \ + --eval '(defconst org-release "$(ORGVERSION)-Test")' \ + -l testing/org-test.el \ + $(foreach ob-lang,$(BTEST_OB_LANGUAGES),$(req-ob-lang)) \ + $(foreach req,$(BTEST_EXTRA),$(req-extra)) \ + --eval '(setq org-confirm-babel-evaluate nil)' \ + -f org-test-run-batch-tests + +# Using emacs in batch mode. +BATCH = $(EMACS) -batch -Q \ + -L . \ + --eval '(defconst org-release "$(ORGVERSION)-Make")' \ + +# How to byte-compile the whole source directory +ELCDIR = $(BATCH) \ + --eval '(batch-byte-recompile-directory 0)' + +# How to byte-compile a single source file +ELC = $(BATCH) -f batch-byte-compile + +# How to make a pdf file from a texinfo file +TEXI2PDF = texi2pdf --batch --clean + +# How to make a pdf file from a tex file +PDFTEX = pdftex + +# How to create directories +MKDIR = mkdir -p + +# How to create the info files from the texinfo file +MAKEINFO = makeinfo + +# How to create the HTML file +TEXI2HTML = makeinfo --html --number-sections + +# How to find files +FIND = find + +# How to remove files +RM = rm -f + +# How to remove files recursively +RMR = rm -fr + +# How to stream edit a file +SED = sed + +# How to copy the lisp files and elc files to their destination. +# CP = cp -p # try this if there is no install +CP = install -p + +# How to obtain administrative privileges +# SUDO = # leave blank if you don't need this +SUDO = sudo + +# Name of the program to install info files +# INSTALL_INFO = ginstall-info # Debian: avoid harmless warning message +INSTALL_INFO = install-info diff --git a/doc/Makefile b/doc/Makefile new file mode 100644 index 0000000..7672664 --- /dev/null +++ b/doc/Makefile @@ -0,0 +1,70 @@ +.SUFFIXES: # we don't need default suffix rules +ifeq ($(MAKELEVEL), 0) + $(error This make needs to be started as a sub-make from the toplevel directory.) +endif +.PHONY: all info html pdf card manual guide install clean cleanall clean-install + +all: info html pdf card + +info: org + +html: org.html + +pdf: org.pdf orgguide.pdf + +card: orgcard.pdf orgcard_letter.pdf orgguide.pdf + +manual guide:: + $(RMR) $@ ; $(MKDIR) $@ +manual:: org.texi + $(TEXI2HTML) -o $@ $< + ../UTILITIES/mansplit.pl $@/* +guide:: orgguide.texi + $(TEXI2HTML) -o $@ $< + ../UTILITIES/guidesplit.pl $@/* + +org-version.inc: + @echo "@c automatically generated, do not edit" > org-version.inc + @echo "@set VERSION $(ORGVERSION) ($(GITVERSION))" >> org-version.inc + @echo "@set DATE $(DATE)" >> org-version.inc + + +install: org + if [ ! -d $(DESTDIR)$(infodir) ]; then $(MKDIR) $(DESTDIR)$(infodir); else true; fi ; + $(CP) org $(DESTDIR)$(infodir) + $(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) org + +clean: + $(RM) org *.pdf *.html *_letter.tex \ + *.aux *.cp *.cps *.dvi *.fn *.fns *.ky *.kys *.pg *.pgs \ + *.toc *.tp *.tps *.vr *.vrs *.log *.html *.ps org-version.inc +cleanall: clean + $(RMR) guide manual + +clean-install: + $(RM) $(DESTDIR)$(infodir)/org* + $(INSTALL_INFO) --infodir=$(DESTDIR)$(infodir) --remove org + +.SUFFIXES: .texi .tex .txt + +%: %.texi + $(MAKE) org-version.inc + $(MAKEINFO) --no-split $< -o $@ + +%.pdf: LC_ALL=C # work around a bug in texi2dvi +%.pdf: LANG=C # work around a bug in texi2dvi +%.pdf: %.texi + $(TEXI2PDF) $< +%.pdf: %.tex + PDFLATEX=$(PDFTEX) $(TEXI2PDF) $< + +%.html: %.texi + $(TEXI2HTML) --no-split -o $@ $< + ../UTILITIES/manfull.pl $@ + +%.txt: %.tex + perl ../UTILITIES/orgcard2txt.pl $< > $@ + +%_letter.tex: %.tex + $(SED) -e 's/\\pdflayout=(0l)/\\pdflayout=(1l)/' \ + $< > $@ diff --git a/doc/org.texi b/doc/org.texi index 2f5188f..bde3e19 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -4,8 +4,7 @@ @setfilename ../../info/org @settitle The Org Manual -@set VERSION 7.8.09 -@set DATE April 2012 +@include org-version.inc @c Use proper quote and backtick for code sections in PDF output @c Cf. Texinfo manual 14.2 diff --git a/etc/Makefile b/etc/Makefile new file mode 100644 index 0000000..8b06158 --- /dev/null +++ b/etc/Makefile @@ -0,0 +1,31 @@ +ETCDIRS = styles schema +-include local.mk # optional local customization + +.NOTPARALLEL: # always run this make serially +.SUFFIXES: # we don't need default suffix rules +ifeq ($(MAKELEVEL), 0) + $(error This make needs to be started as a sub-make from the toplevel directory.) +endif + +.PHONY: all install clean cleanall clean-install + +all: + +install: $(ETCDIRS) + for dir in $? ; do \ + if [ ! -d $(DESTDIR)$(datadir)/$${dir} ] ; then \ + $(MKDIR) $(DESTDIR)$(datadir)/$${dir} ; \ + fi ; \ + $(CP) $${dir}/* $(DESTDIR)$(datadir)/$${dir} ; \ + done ; + +clean: + +cleanall: + +clean-install: $(ETCDIRS) + for dir in $? ; do \ + if [ -d $(DESTDIR)$(datadir)/$${dir} ] ; then \ + $(RMR) $(DESTDIR)$(datadir)/$${dir} ; \ + fi ; \ + done ; diff --git a/contrib/odt/etc/schema/od-manifest-schema-v1.2-cs01.rnc b/etc/schema/od-manifest-schema-v1.2-cs01.rnc index 647828d..647828d 100644 --- a/contrib/odt/etc/schema/od-manifest-schema-v1.2-cs01.rnc +++ b/etc/schema/od-manifest-schema-v1.2-cs01.rnc diff --git a/contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc b/etc/schema/od-schema-v1.2-cs01.rnc index 83ad017..83ad017 100644 --- a/contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc +++ b/etc/schema/od-schema-v1.2-cs01.rnc diff --git a/contrib/odt/etc/schema/schemas.xml b/etc/schema/schemas.xml index a319191..a319191 100644 --- a/contrib/odt/etc/schema/schemas.xml +++ b/etc/schema/schemas.xml diff --git a/lisp/Makefile b/lisp/Makefile new file mode 100644 index 0000000..7e140d7 --- /dev/null +++ b/lisp/Makefile @@ -0,0 +1,79 @@ +ORG-INSTALL = $(BATCH) \ + --eval '(require '"'"'autoload)' \ + --eval '(find-file "org-install.el")' \ + --eval '(erase-buffer)' \ + --eval '(insert ";;; org-install.el --- autogenerated file, do not edit\n;;\n;;; Code:\n")' \ + --eval '(mapc (lambda (x) (generate-file-autoloads (symbol-name x)))\ + (quote ($(LISPF) org-version.el)))' \ + --eval '(insert "\f\n(provide '"'"'org-install)\n")' \ + --eval '(insert ";; Local Variables:\n;; version-control: never\n")' \ + --eval '(insert ";; no-byte-compile: t\n;; no-update-autoloads: t\n")' \ + --eval '(insert ";; coding: utf-8\n;; End:\n;;; org-install.el ends here\n")' \ + --eval '(save-buffer)' +ORG-VERSION = $(BATCH) \ + --eval '(find-file "org-version.el")' \ + --eval '(erase-buffer)' \ + --eval '(insert ";;; org-version.el --- autogenerated file, do not edit\n;;\n;;; Code:\n")' \ + --eval '(insert ";;;\#\#\#autoload\n")' \ + --eval '(insert "(defconst org-release \"$(ORGVERSION)\"\n")' \ + --eval '(insert " \"The release version of org-mode.\n")' \ + --eval '(insert " Inserted by installing org-mode or when a release is made.\")\n")' \ + --eval '(insert ";;;\#\#\#autoload\n")' \ + --eval '(insert "(defconst org-git-version \"$(GITVERSION)\"\n")' \ + --eval '(insert " \"The Git version of org-mode.\n")' \ + --eval '(insert " Inserted by installing org-mode or when a release is made.\")\n")' \ + --eval '(insert ";;;\#\#\#autoload\n")' \ + --eval '(insert "(defconst org-odt-data-dir \"$(datadir)\"\n")' \ + --eval '(insert " \"The location of ODT styles.\")\n")' \ + --eval '(insert ";; Local Variables:\n;; version-control: never\n")' \ + --eval '(insert ";; no-byte-compile: t\n")' \ + --eval '(insert ";; coding: utf-8\n;; End:\n;;; org-version.el ends here\n")' \ + --eval '(save-buffer)' +-include local.mk # optional local customization + +.NOTPARALLEL: # always run this make serially +.SUFFIXES: # we don't need default suffix rules +ifeq ($(MAKELEVEL), 0) + $(error This make needs to be started as a sub-make from the toplevel directory.) +endif + +LISPO = org-install.el org-version.el # autogenerated files +LISPF = $(filter-out $(LISPO),$(wildcard *.el)) +LISPC = $(LISPF:%el=%elc) + +.PHONY: all compile compile-dirty \ + autoloads \ + install clean cleanauto cleanall clean-install + +all \ +compile \ +compile-dirty: cleanauto + $(ELCDIR) + +autoloads: $(LISPO) + +org-version.el: $(LISPF) + $(ORG-VERSION) + +org-install.el: org-version.el + $(ORG-INSTALL) + +install: $(LISPF) compile autoloads + if [ ! -d $(DESTDIR)$(lispdir) ] ; then \ + $(MKDIR) $(DESTDIR)$(lispdir) ; \ + fi ; + $(CP) $(LISPC) $(LISPF) $(LISPO) $(DESTDIR)$(lispdir) + +clean: + $(RM) *.elc + +cleanauto: # internal target + $(RM) $(LISPO) $(LISPO:%el=%elc) + +cleanall: + $(RM) *.elc $(LISPO) + +clean-install: + if [ -d $(DESTDIR)$(lispdir) ] ; then \ + $(RM) $(DESTDIR)$(lispdir)/org*.el* $(DESTDIR)$(lispdir)/ob*.el* ; \ + fi ; diff --git a/lisp/org.el b/lisp/org.el index 5c84a09..add28f2 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. ;; @@ -76,6 +75,7 @@ (require 'gnus-sum)) (require 'calendar) +(require 'find-func) (require 'format-spec) ;; Emacs 22 calendar compatibility: Make sure the new variables are available @@ -209,35 +209,20 @@ identifier." ;;; Version -(defconst org-version "7.8.09" - "The version number of the file org.el.") - +(defvaralias 'org-version 'org-release) ;;;###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) - (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 diff-index --name-only HEAD --")) - (setq git-version (concat git-version ".dirty"))) - (setq version (concat version " (" git-version ")")))) - (cd origin))) - (setq version (format "Org-mode version %s" version)) + (version (if (boundp 'org-release) org-release "N/A")) + (git-version (if (boundp 'org-git-version) org-git-version "N/A")) + (org-install (ignore-errors (find-library-name "org-install")))) + (setq version (format "Org-mode version %s (%s @ %s)" + version + git-version + (if org-install org-install "org-install.el can not be found!"))) (if here (insert version)) (message version))) diff --git a/targets.mk b/targets.mk new file mode 100644 index 0000000..94387f4 --- /dev/null +++ b/targets.mk @@ -0,0 +1,100 @@ +.NOTPARALLEL: .PHONY +# Additional distribution files +DISTFILES_extra= Makefile request-assign-future.txt contrib etc +.EXPORT_ALL_VARIABLES: + +LISPDIRS = lisp +SUBDIRS = doc etc $(LISPDIRS) +INSTSUB = $(SUBDIRS:%=install-%) + +ifneq ($(wildcard .git),) + GITVERSION ?= $(shell git describe --abbrev=6 HEAD) + ORGVERSION ?= $(subst release_,,$(shell git describe --abbrev=0 HEAD)) + GITSTATUS ?= $(shell git status -uno --porcelain) +else + GITVERSION ?= N/A + ORGVERSION ?= N/A +endif +DATE = $(shell date +%Y-%m-%d) +ifneq ($(GITSTATUS),) + GITVERSION := $(GITVERSION).dirty +endif + +.PHONY: default all up2 update compile lisp doc etc \ + check test install info html pdf card docs $(INSTSUB) \ + autoloads cleanall clean cleancontrib cleanrel clean-install \ + cleanelc cleandirs cleanlisp cleandoc cleandocs cleantest + +all \ +compile:: lisp + $(MAKE) -C $< clean + +compile \ +compile-dirty:: lisp + $(MAKE) -C $< $@ + +all \ +clean-install:: $(SUBDIRS) + $(foreach dir, $?, $(MAKE) -C $(dir) $@;) + +check test:: all + +check test \ +test-dirty:: + -$(MKDIR) $(testdir) + TMPDIR=$(testdir) $(BTEST) +ifeq ($(TEST_NO_AUTOCLEAN),) # define this variable to leave $(testdir) around for inspection + $(MAKE) cleantest +endif + +up2: update + $(SUDO) $(MAKE) install + +update: + git remote update + git pull + $(MAKE) check + +install: $(INSTSUB) + +install-info: install-doc + +docs: info html pdf card + +info html pdf card: + $(MAKE) -C doc $@ + +$(INSTSUB): + $(MAKE) -C $(@:install-%=%) install + +autoloads: lisp + $(MAKE) -C $< $@ + +cleandirs: $(SUBDIRS) + $(foreach dir, $?, $(MAKE) -C $(dir) cleanall;) + +clean: cleanrel + $(MAKE) -C lisp clean + $(MAKE) -C doc clean + +cleanall: cleandirs cleantest + -$(FIND) . -name \*~ -exec $(RM) {} \; + +cleancontrib: + -$(FIND) contrib -name \*~ -exec $(RM) {} \; + +cleanrel: + $(RMR) RELEASEDIR + $(RMR) org-7.* + $(RMR) org-7*zip org-7*tar.gz + +cleanelc cleanlisp: + $(MAKE) -C lisp clean + -$(FIND) lisp -name \*~ -exec $(RM) {} \; + +cleandoc cleandocs: + $(MAKE) -C doc clean + -$(FIND) doc -name \*~ -exec $(RM) {} \; + +cleantest: + $(RMR) $(testdir) |