org-e-odt.el: Fix previous commit
[org-mode.git] / targets.mk
blobecc75dd472bd41dca3dc08e969ac822d4061b29e
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 SUBDIRS = $(OTHERDIRS) $(LISPDIRS)
9 INSTSUB = $(SUBDIRS:%=install-%)
10 ORG_MAKE_DOC ?= info html pdf
12 ifneq ($(wildcard .git),)
13 GITVERSION ?= $(shell git describe --abbrev=6 HEAD)
14 ORGVERSION ?= $(subst release_,,$(shell git describe --abbrev=0 HEAD))
15 GITSTATUS ?= $(shell git status -uno --porcelain)
16 else
17 GITVERSION ?= N/A
18 ORGVERSION ?= N/A
19 endif
20 DATE = $(shell date +%Y-%m-%d)
21 ifneq ($(GITSTATUS),)
22 GITVERSION := $(GITVERSION:.dirty=).dirty
23 endif
25 .PHONY: all oldorg update update2 up0 up1 up2 compile $(SUBDIRS) \
26 check test install info html pdf card doc docs $(INSTSUB) \
27 autoloads cleanall clean \
28 cleancontrib cleantesting cleanutils
29 cleanrel clean-install cleanelc cleandirs \
30 cleanlisp cleandoc cleandocs cleantest \
31 compile compile-dirty uncompiled \
32 config config-test config-exe config-all config-eol
34 CONF_BASE = EMACS lispdir infodir datadir testdir
35 CONF_TEST = BTEST_PRE BTEST_POST BTEST_OB_LANGUAGES BTEST_EXTRA
36 CONF_EXEC = CP MKDIR RM RMR FIND SUDO PDFTEX TEXI2PDF TEXI2HTML MAKEINFO INSTALL_INFO
37 CONF_CALL = BATCH BATCHL ELCDIR BTEST MAKE_LOCAL_MK MAKE_ORG_INSTALL MAKE_ORG_VERSION
38 config-eol:: EOL = \#
39 config-eol:: config-all
40 config config-all::
41 $(info )
42 $(info ========= Emacs executable and Installation paths)
43 $(foreach var,$(CONF_BASE),$(info $(var) = $($(var))$(EOL)))
44 config-test config-all::
45 $(info )
46 $(info ========= Test configuration)
47 $(foreach var,$(CONF_TEST),$(info $(var) = $($(var))$(EOL)))
48 config-exe config-all::
49 $(info )
50 $(info ========= Executables used by make)
51 $(foreach var,$(CONF_EXEC),$(info $(var) = $($(var))$(EOL)))
52 config-cmd config-all::
53 $(info )
54 $(info ========= Commands used by make)
55 $(foreach var,$(CONF_CALL),$(info $(var) = $($(var))$(EOL)))
56 config config-test config-exe config-all::
57 $(info )
59 oldorg: compile info # what the old makefile did when no target was specified
60 uncompiled: cleanlisp autoloads # for developing
61 refcard: card
62 update update2:: up0 all
64 .PRECIOUS: local.mk
65 local.mk:
66 $(info ======================================================)
67 $(info = Invoke "make help" for a synopsis of make targets. =)
68 $(info = Created a default local.mk template. =)
69 $(info = Setting "oldorg" as the default target. =)
70 $(info = Please adapt local.mk to your local setup! =)
71 $(info ======================================================)
72 -@$(MAKE_LOCAL_MK)
74 all compile::
75 $(foreach dir, doc lisp, $(MAKE) -C $(dir) clean;)
76 compile compile-dirty::
77 $(MAKE) -C lisp $@
78 all clean-install::
79 $(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) $@;)
81 check test:: compile
82 check test test-dirty::
83 -$(MKDIR) $(testdir)
84 TMPDIR=$(testdir) $(BTEST)
85 ifeq ($(TEST_NO_AUTOCLEAN),) # define this variable to leave $(testdir) around for inspection
86 $(MAKE) cleantest
87 endif
89 up0 up1 up2::
90 git remote update
91 git pull
92 up1 up2:: all
93 $(MAKE) test-dirty
94 up2 update2::
95 $(SUDO) $(MAKE) install
97 install: $(INSTSUB)
99 install-info: install-doc
101 doc docs: $(ORG_MAKE_DOC)
103 info html pdf card:
104 $(MAKE) -C doc $@
106 $(INSTSUB):
107 $(MAKE) -C $(@:install-%=%) install
109 autoloads: lisp
110 $(MAKE) -C $< $@
112 cleandirs:
113 $(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) cleanall;)
115 clean: cleanrel
116 $(MAKE) -C lisp clean
117 $(MAKE) -C doc clean
119 cleanall: cleandirs cleantest cleancontrib cleantesting cleanutils
120 -$(FIND) . -name \*~ -o -name \*# -o -name .#\* -exec $(RM) {} \;
122 cleancontrib:
123 -$(FIND) contrib -name \*~ -o -name \*.elc -exec $(RM) {} \;
125 cleantesting:
126 -$(FIND) testing -name \*~ -o -name \*.elc -exec $(RM) {} \;
128 cleanutils:
129 -$(FIND) UTILITIES -name \*~ -o -name \*.elc -exec $(RM) {} \;
131 cleanrel:
132 $(RMR) RELEASEDIR
133 $(RMR) org-7.*
134 $(RMR) org-7*zip org-7*tar.gz
136 cleanelc cleanlisp:
137 $(MAKE) -C lisp clean
138 -$(FIND) lisp -name \*~ -exec $(RM) {} \;
140 cleandoc cleandocs:
141 $(MAKE) -C doc clean
142 -$(FIND) doc -name \*~ -exec $(RM) {} \;
144 cleantest:
145 $(RMR) $(testdir)