org.el: Small docstring clean-up
[org-mode.git] / targets.mk
blob68bf289f81c385e49f87ad701c537e43b78a8bf4
1 .EXPORT_ALL_VARIABLES:
2 .NOTPARALLEL: .PHONY
3 # Additional distribution files
4 DISTFILES_extra= Makefile request-assign-future.txt contrib etc
6 LISPDIRS = lisp
7 OTHERDIRS = doc etc
8 CLEANDIRS = contrib testing UTILITIES
9 SUBDIRS = $(OTHERDIRS) $(LISPDIRS)
10 INSTSUB = $(SUBDIRS:%=install-%)
11 ORG_MAKE_DOC ?= info html pdf
13 ifneq ($(wildcard .git),)
14 GITVERSION ?= $(shell git describe --abbrev=6 HEAD)
15 ORGVERSION ?= $(subst release_,,$(shell git describe --abbrev=0 HEAD))
16 GITSTATUS ?= $(shell git status -uno --porcelain)
17 else
18 GITVERSION ?= N/A
19 ORGVERSION ?= N/A
20 endif
21 DATE = $(shell date +%Y-%m-%d)
22 ifneq ($(GITSTATUS),)
23 GITVERSION := $(GITVERSION:.dirty=).dirty
24 endif
26 .PHONY: all oldorg update update2 up0 up1 up2 single $(SUBDIRS) \
27 check test install $(INSTSUB) \
28 info html pdf card refcard doc docs \
29 autoloads cleanall clean $(CLEANDIRS:%=clean%) \
30 cleanrel clean-install cleanelc cleandirs \
31 cleanlisp cleandoc cleandocs cleantest \
32 compile compile-dirty uncompiled \
33 config config-test config-exe config-all config-eol
35 CONF_BASE = EMACS DESTDIR ORGCM
36 CONF_DEST = lispdir infodir datadir testdir
37 CONF_TEST = BTEST_PRE BTEST_POST BTEST_OB_LANGUAGES BTEST_EXTRA
38 CONF_EXEC = CP MKDIR RM RMR FIND SUDO PDFTEX TEXI2PDF TEXI2HTML MAKEINFO INSTALL_INFO
39 CONF_CALL = BATCH BATCHL ELC ELCDIR BTEST MAKE_LOCAL_MK MAKE_ORG_INSTALL MAKE_ORG_VERSION
40 config-eol:: EOL = \#
41 config-eol:: config-all
42 config config-all::
43 $(info )
44 $(info ========= Emacs executable and Installation paths)
45 $(foreach var,$(CONF_BASE),$(info $(var) = $($(var))$(EOL)))
46 $(foreach var,$(CONF_DEST),$(info $(var) = $(DESTDIR)$($(var))$(EOL)))
47 config-test config-all::
48 $(info )
49 $(info ========= Test configuration)
50 $(foreach var,$(CONF_TEST),$(info $(var) = $($(var))$(EOL)))
51 config-exe config-all::
52 $(info )
53 $(info ========= Executables used by make)
54 $(foreach var,$(CONF_EXEC),$(info $(var) = $($(var))$(EOL)))
55 config-cmd config-all::
56 $(info )
57 $(info ========= Commands used by make)
58 $(foreach var,$(CONF_CALL),$(info $(var) = $($(var))$(EOL)))
59 config config-test config-exe config-all::
60 @echo ""
62 oldorg: compile info # what the old makefile did when no target was specified
63 uncompiled: cleanlisp autoloads # for developing
64 refcard: card
65 update update2:: up0 all
67 single: ORGCM=single
68 single: compile
70 .PRECIOUS: local.mk
71 local.mk:
72 $(info ======================================================)
73 $(info = Invoke "make help" for a synopsis of make targets. =)
74 $(info = Created a default local.mk template. =)
75 $(info = Setting "oldorg" as the default target. =)
76 $(info = Please adapt local.mk to your local setup! =)
77 $(info ======================================================)
78 -@$(MAKE_LOCAL_MK)
80 all compile::
81 $(foreach dir, doc lisp, $(MAKE) -C $(dir) clean;)
82 compile compile-dirty::
83 $(MAKE) -C lisp $@
84 all clean-install::
85 $(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) $@;)
87 check test:: compile
88 check test test-dirty::
89 -$(MKDIR) $(testdir)
90 TMPDIR=$(testdir) $(BTEST)
91 ifeq ($(TEST_NO_AUTOCLEAN),) # define this variable to leave $(testdir) around for inspection
92 $(MAKE) cleantest
93 endif
95 up0 up1 up2::
96 git remote update
97 git pull
98 up1 up2:: all
99 $(MAKE) test-dirty
100 up2 update2::
101 $(SUDO) $(MAKE) install
103 install: $(INSTSUB)
105 install-info: install-doc
107 doc docs: $(ORG_MAKE_DOC)
109 info html pdf card:
110 $(MAKE) -C doc $@
112 $(INSTSUB):
113 $(MAKE) -C $(@:install-%=%) install
115 autoloads: lisp
116 $(MAKE) -C $< $@
118 cleandirs:
119 $(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) cleanall;)
121 clean: cleanrel
122 $(MAKE) -C lisp clean
123 $(MAKE) -C doc clean
125 cleanall: cleandirs cleantest
126 -$(FIND) . \( -name \*~ -o -name \*# -o -name .#\* \) -exec $(RM) {} \;
127 -$(FIND) $(CLEANDIRS) \( -name \*~ -o -name \*.elc \) -exec $(RM) {} \;
129 $(CLEANDIRS:%=clean%):
130 -$(FIND) $(@:clean%=%) \( -name \*~ -o -name \*.elc \) -exec $(RM) {} \;
132 cleanutils: cleanUTILITIES
134 cleanrel:
135 $(RMR) RELEASEDIR
136 $(RMR) org-7.*
137 $(RMR) org-7*zip org-7*tar.gz
139 cleanelc:
140 $(MAKE) -C lisp $@
142 cleanlisp cleandoc:
143 $(MAKE) -C $(@:clean%=%) clean
145 cleandocs:
146 $(MAKE) -C doc clean
147 -$(FIND) doc -name \*~ -exec $(RM) {} \;
149 cleantest:
150 $(RMR) $(testdir)