diff options
author | Sébastien Delafond <sdelafond@gmail.com> | 2014-07-13 13:35:01 +0200 |
---|---|---|
committer | Sébastien Delafond <sdelafond@gmail.com> | 2014-07-13 13:35:01 +0200 |
commit | 7697fa4daf3ec84f85711a84035d8f0224afd4e3 (patch) | |
tree | 24d0f1d2a9751ca8c063409fd2ab71478b296efb /mk/targets.mk |
Imported Upstream version 7.9.2
Diffstat (limited to 'mk/targets.mk')
-rw-r--r-- | mk/targets.mk | 155 |
1 files changed, 155 insertions, 0 deletions
diff --git a/mk/targets.mk b/mk/targets.mk new file mode 100644 index 0000000..4a9ee60 --- /dev/null +++ b/mk/targets.mk @@ -0,0 +1,155 @@ +.EXPORT_ALL_VARIABLES: +.NOTPARALLEL: .PHONY +# Additional distribution files +DISTFILES_extra= Makefile request-assign-future.txt contrib etc + +LISPDIRS = lisp +OTHERDIRS = doc etc +CLEANDIRS = contrib testing mk +SUBDIRS = $(OTHERDIRS) $(LISPDIRS) +INSTSUB = $(SUBDIRS:%=install-%) +ORG_MAKE_DOC ?= info html pdf + +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 + -include mk/version.mk + GITVERSION ?= N/A + ORGVERSION ?= N/A +endif +DATE = $(shell date +%Y-%m-%d) +ifneq ($(GITSTATUS),) + GITVERSION := $(GITVERSION:.dirty=).dirty +endif + +.PHONY: all oldorg update update2 up0 up1 up2 single $(SUBDIRS) \ + check test install $(INSTSUB) \ + info html pdf card refcard doc docs \ + autoloads cleanall clean $(CLEANDIRS:%=clean%) \ + clean-install cleanelc cleandirs cleanaddcontrib \ + cleanlisp cleandoc cleandocs cleantest \ + compile compile-dirty uncompiled \ + config config-test config-exe config-all config-eol config-version + +CONF_BASE = EMACS DESTDIR ORGCM ORG_MAKE_DOC +CONF_DEST = lispdir infodir datadir testdir +CONF_TEST = BTEST_PRE BTEST_POST BTEST_OB_LANGUAGES BTEST_EXTRA +CONF_EXEC = CP MKDIR RM RMR FIND SUDO PDFTEX TEXI2PDF TEXI2HTML MAKEINFO INSTALL_INFO +CONF_CALL = BATCH BATCHL ELC ELCDIR BTEST MAKE_LOCAL_MK MAKE_ORG_INSTALL MAKE_ORG_VERSION +config-eol:: EOL = \# +config-eol:: config-all +config config-all:: + $(info ) + $(info ========= Emacs executable and Installation paths) + $(foreach var,$(CONF_BASE),$(info $(var) = $($(var))$(EOL))) + $(foreach var,$(CONF_DEST),$(info $(var) = $(DESTDIR)$($(var))$(EOL))) + $(info ========= Additional files from contrib/lisp) + $(info $(notdir \ + $(wildcard \ + $(addsuffix .el, \ + $(addprefix contrib/lisp/, \ + $(basename \ + $(notdir $(ORG_ADD_CONTRIB)))))))) +config-test config-all:: + $(info ) + $(info ========= Test configuration) + $(foreach var,$(CONF_TEST),$(info $(var) = $($(var))$(EOL))) +config-exe config-all:: + $(info ) + $(info ========= Executables used by make) + $(foreach var,$(CONF_EXEC),$(info $(var) = $($(var))$(EOL))) +config-cmd config-all:: + $(info ) + $(info ========= Commands used by make) + $(foreach var,$(CONF_CALL),$(info $(var) = $($(var))$(EOL))) +config config-test config-exe config-all config-version:: + $(info ========= Org version) + $(info make: Org-mode version $(ORGVERSION) ($(GITVERSION) => $(lispdir))) + @echo "" + +oldorg: compile info # what the old makefile did when no target was specified +uncompiled: cleanlisp autoloads # for developing +refcard: card +update update2:: up0 all + +single: ORGCM=single +single: compile + +.PRECIOUS: local.mk +local.mk: + $(info ======================================================) + $(info = Invoke "make help" for a synopsis of make targets. =) + $(info = Created a default local.mk template. =) + $(info = Setting "oldorg" as the default target. =) + $(info = Please adapt local.mk to your local setup! =) + $(info ======================================================) + -@$(MAKE_LOCAL_MK) + +all compile:: + $(foreach dir, doc lisp, $(MAKE) -C $(dir) clean;) +compile compile-dirty:: + $(MAKE) -C lisp $@ +all clean-install:: + $(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) $@;) + +check test:: compile +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 + +up0 up1 up2:: + git remote update + git pull +up1 up2:: all + $(MAKE) test-dirty +up2 update2:: + $(SUDO) $(MAKE) install + +install: $(INSTSUB) + +install-info: install-doc + +doc docs: $(ORG_MAKE_DOC) + +info html pdf card: + $(MAKE) -C doc $@ + +$(INSTSUB): + $(MAKE) -C $(@:install-%=%) install + +autoloads: lisp + $(MAKE) -C $< $@ + +cleandirs: + $(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) cleanall;) + +clean: cleanlisp cleandoc + +cleanall: cleandirs cleantest cleanaddcontrib + -$(FIND) . \( -name \*~ -o -name \*# -o -name .#\* \) -exec $(RM) {} \; + -$(FIND) $(CLEANDIRS) \( -name \*~ -o -name \*.elc \) -exec $(RM) {} \; + +$(CLEANDIRS:%=clean%): + -$(FIND) $(@:clean%=%) \( -name \*~ -o -name \*.elc \) -exec $(RM) {} \; + +cleanelc: + $(MAKE) -C lisp $@ + +cleanaddcontrib: + -$(RM) $(wildcard $(addprefix lisp/,$(notdir $(wildcard contrib/lisp/*.el)))) + +cleanlisp: cleanaddcontrib +cleanlisp cleandoc: + $(MAKE) -C $(@:clean%=%) clean + +cleandocs: + $(MAKE) -C doc clean + -$(FIND) doc -name \*~ -exec $(RM) {} \; + +cleantest: + $(RMR) $(testdir) |