diff options
author | Achim Gratz <Stromeko@Stromeko.DE> | 2011-07-16 22:49:24 +0200 |
---|---|---|
committer | Achim Gratz <Stromeko@Stromeko.DE> | 2012-04-20 21:04:07 +0200 |
commit | ac3162b4f040837e1599028a8ff16c996b942522 (patch) | |
tree | b69b4fe08b28eb365c9f59fdd2ac0312711aeab0 | |
parent | 77f0e507874aba14a25d37f38f5bbf2608efdd1b (diff) | |
download | org-mode-ac3162b4f040837e1599028a8ff16c996b942522.tar.gz |
activate local.mk and hand off ./lisp to a sub-make
* Makefile: add an optional include local.mk
* default.mk: install lisp files into org subfolder by default
* lisp/Makefile: new file to handle all make targets within lisp
* lisp/dependencies.mk: dependencies, should rather be auto-generated
* maint.mk: remove obsolete variable definitions
* targets.mk: hand off to sub-make in ./lisp, remove unused targets
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | default.mk | 8 | ||||
-rw-r--r-- | dependencies.mk | 61 | ||||
-rw-r--r-- | lisp/Makefile | 38 | ||||
-rw-r--r-- | lisp/dependencies.mk | 61 | ||||
-rw-r--r-- | maint.mk | 105 | ||||
-rw-r--r-- | targets.mk | 39 |
7 files changed, 120 insertions, 202 deletions
@@ -21,8 +21,8 @@ targets help: @echo "make install-lisp - install Org ELisp files" @echo "make install-info - install Org Info file" -include default.mk -include maint.mk -include targets.mk -include maint-targets.mk -include dependencies.mk + include default.mk +-include local.mk + include maint.mk + include targets.mk + include maint-targets.mk @@ -9,7 +9,7 @@ EMACS = emacs prefix = /usr/share # Where local lisp files go. -lispdir = $(prefix)/emacs/site-lisp +lispdir = $(prefix)/emacs/site-lisp/org # Where info files go. infodir = $(prefix)/info @@ -20,8 +20,8 @@ infodir = $(prefix)/info # Using emacs in batch mode. -BATCH = $(EMACS) -batch -q -no-site-file -eval \ - "(setq load-path (cons (expand-file-name \"./lisp/\") \ +BATCH = $(EMACS) -batch -q -no-site-file -eval \ + "(setq load-path (cons (expand-file-name \".\") \ (cons \"$(lispdir)\" load-path)))" # Specify the byte-compiler for compiling org-mode files @@ -43,7 +43,7 @@ TEXI2HTML = makeinfo --html --number-sections FIND = find # How to remove files -RM = rm +RM = rm -f # How to copy the lisp files and elc files to their destination. # CP = cp -p # try this if there is no install diff --git a/dependencies.mk b/dependencies.mk deleted file mode 100644 index 21e0b22..0000000 --- a/dependencies.mk +++ /dev/null @@ -1,61 +0,0 @@ -# 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-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-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 - diff --git a/lisp/Makefile b/lisp/Makefile new file mode 100644 index 0000000..0fb813c --- /dev/null +++ b/lisp/Makefile @@ -0,0 +1,38 @@ +LISPO = org-install.el +LISPF = $(subst $(LISPO),,$(wildcard *.el)) +LISPC = $(LISPF:%el=%elc) + +include dependencies.mk + +.PHONY: autoloads compile install clean cleanall + +$(LISPC): dependencies.mk + +compile: $(LISPC) + +autoloads: $(LISPO) + +org-install.el: $(LISPC) + $(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 '(save-buffer)' + +install: $(LISPF) compile autoloads + $(CP) $(LISPC) $(LISPF) $(LISPO) $(lispdir) + +clean: + $(RM) $(LISPC) + +cleanall: + $(RM) $(LISPC) $(LISPO) + +.SUFFIXES: # we don't need default suffix rules +.SUFFIXES: .el .elc + +.el.elc: + $(info in subdir lisp) + $(ELC) $< diff --git a/lisp/dependencies.mk b/lisp/dependencies.mk new file mode 100644 index 0000000..40446fa --- /dev/null +++ b/lisp/dependencies.mk @@ -0,0 +1,61 @@ +# Dependencies + +org.elc: org-macs.el org-compat.el org-faces.el +org-agenda.elc: org.el +org-ascii.elc: org-exp.el +org-attach.elc: org.el org-id.el +org-archive.elc: org.el +org-bbdb.elc: org.el +org-beamer.elc: org.el +org-bibtex.elc: org.el +org-capture.elc: org.el org-mks.el +org-clock.elc: org.el +org-colview.elc: org.el +org-colview-xemacs.elc: org.el +org-compat.elc: org-macs.el +org-crypt.elc: org-crypt.el org.el +org-ctags.elc: org.el +org-datetree.elc: org.el +org-docview.elc: org.el +org-entities.elc: +org-exp.elc: org.el org-agenda.el +org-exp-blocks.elc: org.el +org-latex.elc: org.el org-exp.el org-beamer.el +org-docbook.elc: org.el org-exp.el +org-faces.elc: org-macs.el org-compat.el +org-feed.elc: org.el +org-footnotes.elc: org-macs.el org-compat.el +org-freemind.elc: org.el +org-gnus.elc: org.el +org-html.elc: org-exp.el +org-habit.elc: org.el org-agenda.el +org-icalendar.elc: org-exp.el +org-id.elc: org.el +org-indent.elc: org.el org-macs.el org-compat.el +org-info.elc: org.el +org-inlinetask.elc: +org-irc.elc: org.el +org-jsinfo.elc: org.el org-exp.el +org-list.elc: org-macs.el org-compat.el +org-mac-message.elc: org.el +org-macs.elc: +org-mew.elc: org.el +org-mhe.elc: org.el +org-mks.elc: +org-mobile.elc: org.el +org-mouse.elc: org.el +org-plot.elc: org.el org-exp.el org-table.el +org-publish.elc: +org-protocol.elc: org.el +org-remember.elc: org.el +org-rmail.elc: org.el +org-special-blocks.elc: org-compat.el +org-src.elc: org-macs.el org-compat.el +org-table.elc: org.el +org-taskjuggler.elc: org.el org-exp.el +org-timer.elc: org.el +org-vm.elc: org.el +org-w3m.elc: org.el +org-wl.elc: org.el +org-xoxo.elc: org-exp.el + @@ -3,111 +3,6 @@ ##---------------------------------------------------------------------- # 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-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-mac-message.el \ - org-macs.el \ - org-mew.el \ - org-mhe.el \ - org-mks.el \ - org-mobile.el \ - org-mouse.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 - -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 @@ -1,13 +1,15 @@ -.PHONY: default all up2 update compile \ +.PHONY: default all up2 update compile lisp\ install info html pdf card doc install-lisp install-info \ autoloads cleanall clean cleancontrib cleanelc cleandoc cleanrel .NOTPARALLEL: .PHONY # Additional distribution files DISTFILES_extra= Makefile request-assign-future.txt contrib etc +.EXPORT_ALL_VARIABLES: -default: $(ELCFILES) +lisp compile: + $(MAKE) -C lisp compile -all: default $(INFOFILES) +all: lisp $(INFOFILES) up2: update sudo ${MAKE} install @@ -17,8 +19,6 @@ update: ${MAKE} clean ${MAKE} all -compile: $(ELCFILES0) - install: install-lisp info: doc/org @@ -31,27 +31,17 @@ card: doc/orgcard.pdf doc/orgcard_letter.pdf doc/orgcard.txt doc: html pdf card -install-lisp: $(LISPFILES) default +install-lisp: if [ ! -d $(lispdir) ]; then $(MKDIR) $(lispdir); else true; fi ; - $(CP) $(LISPFILES) $(lispdir) - $(CP) $(ELCFILES) $(lispdir) + $(MAKE) -C lisp install install-info: $(INFOFILES) if [ ! -d $(infodir) ]; then $(MKDIR) $(infodir); else true; fi ; $(CP) $(INFOFILES) $(infodir) $(INSTALL_INFO) --infodir=$(infodir) $(INFOFILES) -autoloads: lisp/org-install.el - -lisp/org-install.el: $(LISPFILES0) maint.mk dependencies.mk - $(BATCH) \ - --eval "(require 'autoload)" \ - --eval '(find-file "org-install.el")' \ - --eval '(erase-buffer)' \ - --eval '(mapc (lambda (x) (generate-file-autoloads (symbol-name x))) (quote ($(LISPFILES0))))' \ - --eval '(insert "\n(provide (quote org-install))\n")' \ - --eval '(save-buffer)' - mv org-install.el lisp +autoloads: lisp maint.mk + $(MAKE) -C lisp autoloads doc/org: doc/org.texi (cd doc && $(MAKEINFO) --no-split org.texi -o org) @@ -75,17 +65,15 @@ doc/orgcard_letter.tex: doc/orgcard.tex doc/orgcard.tex > doc/orgcard_letter.tex cleanall: clean - $(RM) lisp/org-install.el + $(MAKE) -C lisp cleanall -clean: cleanelc cleandoc cleanrel cleancontrib +clean: cleandoc cleanrel cleancontrib + $(MAKE) -C lisp clean -$(FIND) . -name \*~ -exec $(RM) {} \; 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) @@ -97,6 +85,3 @@ cleanrel: rm -rf RELEASEDIR rm -rf org-7.* rm -rf org-7*zip org-7*tar.gz - -.el.elc: - $(ELC) $< |