cleanup in lisp/Makefile, targets; create org-fixup.el, remove version definition
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
2012-04-28 13:24:39 -04:00
|
|
|
.EXPORT_ALL_VARIABLES:
|
2011-07-12 16:31:41 -04:00
|
|
|
.NOTPARALLEL: .PHONY
|
2011-07-12 13:45:59 -04:00
|
|
|
# Additional distribution files
|
|
|
|
DISTFILES_extra= Makefile request-assign-future.txt contrib etc
|
|
|
|
|
2012-01-02 15:24:36 -05:00
|
|
|
LISPDIRS = lisp
|
cleanup in lisp/Makefile, targets; create org-fixup.el, remove version definition
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
2012-04-28 13:24:39 -04:00
|
|
|
OTHERDIRS = doc etc
|
2012-08-19 12:54:15 -04:00
|
|
|
CLEANDIRS = contrib testing UTILITIES
|
cleanup in lisp/Makefile, targets; create org-fixup.el, remove version definition
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
2012-04-28 13:24:39 -04:00
|
|
|
SUBDIRS = $(OTHERDIRS) $(LISPDIRS)
|
2012-01-02 15:24:36 -05:00
|
|
|
INSTSUB = $(SUBDIRS:%=install-%)
|
2012-04-22 02:22:31 -04:00
|
|
|
ORG_MAKE_DOC ?= info html pdf
|
2012-01-02 15:24:36 -05:00
|
|
|
|
2012-08-22 02:04:56 -04:00
|
|
|
ORG_FROM_CONTRIB = $(wildcard \
|
|
|
|
$(addsuffix .el, \
|
|
|
|
$(addprefix contrib/lisp/, \
|
|
|
|
$(basename \
|
|
|
|
$(notdir $(ORG_ADD_CONTRIB))))))
|
|
|
|
ORG_TO_LISP = $(ORG_FROM_CONTRIB:contrib/%=%)
|
|
|
|
|
2012-01-02 15:24:36 -05:00
|
|
|
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),)
|
2012-05-17 04:40:54 -04:00
|
|
|
GITVERSION := $(GITVERSION:.dirty=).dirty
|
2011-11-06 11:53:45 -05:00
|
|
|
endif
|
|
|
|
|
2012-08-19 06:21:33 -04:00
|
|
|
.PHONY: all oldorg update update2 up0 up1 up2 single $(SUBDIRS) \
|
|
|
|
check test install $(INSTSUB) \
|
|
|
|
info html pdf card refcard doc docs \
|
2012-08-19 12:54:15 -04:00
|
|
|
autoloads cleanall clean $(CLEANDIRS:%=clean%) \
|
2012-08-23 06:31:44 -04:00
|
|
|
cleanrel clean-install cleanelc cleandirs \
|
2012-07-15 12:21:42 -04:00
|
|
|
cleanlisp cleandoc cleandocs cleantest \
|
2012-08-19 06:20:47 -04:00
|
|
|
compile compile-dirty uncompiled \
|
2012-06-02 07:32:53 -04:00
|
|
|
config config-test config-exe config-all config-eol
|
|
|
|
|
2012-08-19 06:21:33 -04:00
|
|
|
CONF_BASE = EMACS DESTDIR ORGCM
|
2012-07-17 13:54:51 -04:00
|
|
|
CONF_DEST = lispdir infodir datadir testdir
|
2012-06-02 07:32:53 -04:00
|
|
|
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
|
2012-08-19 06:21:33 -04:00
|
|
|
CONF_CALL = BATCH BATCHL ELC ELCDIR BTEST MAKE_LOCAL_MK MAKE_ORG_INSTALL MAKE_ORG_VERSION
|
2012-06-02 07:32:53 -04:00
|
|
|
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)))
|
2012-07-17 13:54:51 -04:00
|
|
|
$(foreach var,$(CONF_DEST),$(info $(var) = $(DESTDIR)$($(var))$(EOL)))
|
2012-08-22 02:04:56 -04:00
|
|
|
$(info ========= Additional files from contrib/lisp)
|
|
|
|
$(info ORG_FROM_CONTRIB =)
|
|
|
|
$(info $(ORG_TO_LISP:lisp/%=%))
|
2012-06-02 07:32:53 -04:00
|
|
|
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::
|
2012-08-19 12:54:15 -04:00
|
|
|
@echo ""
|
2012-04-23 15:20:58 -04:00
|
|
|
|
2012-04-30 00:49:23 -04:00
|
|
|
oldorg: compile info # what the old makefile did when no target was specified
|
2012-04-25 13:04:29 -04:00
|
|
|
uncompiled: cleanlisp autoloads # for developing
|
2012-04-23 15:20:58 -04:00
|
|
|
refcard: card
|
|
|
|
update update2:: up0 all
|
|
|
|
|
2012-08-19 06:21:33 -04:00
|
|
|
single: ORGCM=single
|
|
|
|
single: compile
|
|
|
|
|
2012-04-23 15:20:58 -04:00
|
|
|
.PRECIOUS: local.mk
|
|
|
|
local.mk:
|
2012-04-25 13:04:29 -04:00
|
|
|
$(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 ======================================================)
|
2012-05-26 16:32:21 -04:00
|
|
|
-@$(MAKE_LOCAL_MK)
|
2012-04-21 11:25:35 -04:00
|
|
|
|
2012-05-18 11:43:46 -04:00
|
|
|
all compile::
|
2012-08-22 02:04:56 -04:00
|
|
|
ifneq ($(ORG_FROM_CONTRIB),)
|
|
|
|
$(CP) $(ORG_FROM_CONTRIB) lisp/
|
|
|
|
endif
|
2012-05-18 11:43:46 -04:00
|
|
|
$(foreach dir, doc lisp, $(MAKE) -C $(dir) clean;)
|
2012-08-19 06:20:47 -04:00
|
|
|
compile compile-dirty::
|
2012-05-18 11:43:46 -04:00
|
|
|
$(MAKE) -C lisp $@
|
cleanup in lisp/Makefile, targets; create org-fixup.el, remove version definition
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
2012-04-28 13:24:39 -04:00
|
|
|
all clean-install::
|
2012-04-22 02:05:51 -04:00
|
|
|
$(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) $@;)
|
2011-07-12 13:45:59 -04:00
|
|
|
|
2012-05-18 11:43:46 -04:00
|
|
|
check test:: compile
|
cleanup in lisp/Makefile, targets; create org-fixup.el, remove version definition
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
2012-04-28 13:24:39 -04:00
|
|
|
check test test-dirty::
|
2012-02-16 15:24:51 -05:00
|
|
|
-$(MKDIR) $(testdir)
|
|
|
|
TMPDIR=$(testdir) $(BTEST)
|
|
|
|
ifeq ($(TEST_NO_AUTOCLEAN),) # define this variable to leave $(testdir) around for inspection
|
|
|
|
$(MAKE) cleantest
|
|
|
|
endif
|
2012-01-04 15:02:14 -05:00
|
|
|
|
2012-04-23 15:20:58 -04:00
|
|
|
up0 up1 up2::
|
2012-01-05 14:54:52 -05:00
|
|
|
git remote update
|
2011-07-12 13:45:59 -04:00
|
|
|
git pull
|
2012-04-23 15:20:58 -04:00
|
|
|
up1 up2:: all
|
|
|
|
$(MAKE) test-dirty
|
|
|
|
up2 update2::
|
2012-04-30 00:49:23 -04:00
|
|
|
$(SUDO) $(MAKE) install
|
2011-07-12 13:45:59 -04:00
|
|
|
|
2011-07-19 14:05:14 -04:00
|
|
|
install: $(INSTSUB)
|
|
|
|
|
|
|
|
install-info: install-doc
|
2011-07-12 13:45:59 -04:00
|
|
|
|
2012-04-22 02:22:31 -04:00
|
|
|
doc docs: $(ORG_MAKE_DOC)
|
2011-07-12 13:45:59 -04:00
|
|
|
|
2011-07-17 08:49:43 -04:00
|
|
|
info html pdf card:
|
|
|
|
$(MAKE) -C doc $@
|
2011-07-12 16:31:41 -04:00
|
|
|
|
2011-07-19 14:05:14 -04:00
|
|
|
$(INSTSUB):
|
|
|
|
$(MAKE) -C $(@:install-%=%) install
|
2011-07-12 13:45:59 -04:00
|
|
|
|
2012-01-05 14:54:52 -05:00
|
|
|
autoloads: lisp
|
2011-07-17 08:49:43 -04:00
|
|
|
$(MAKE) -C $< $@
|
2011-07-12 13:45:59 -04:00
|
|
|
|
2012-04-22 02:05:51 -04:00
|
|
|
cleandirs:
|
|
|
|
$(foreach dir, $(SUBDIRS), $(MAKE) -C $(dir) cleanall;)
|
2011-07-12 16:31:41 -04:00
|
|
|
|
2012-08-23 06:31:44 -04:00
|
|
|
clean: cleanrel cleanlisp cleandoc
|
2012-02-16 15:24:51 -05:00
|
|
|
|
2012-08-19 06:20:47 -04:00
|
|
|
cleanall: cleandirs cleantest
|
2012-08-19 12:54:15 -04:00
|
|
|
-$(FIND) . \( -name \*~ -o -name \*# -o -name .#\* \) -exec $(RM) {} \;
|
|
|
|
-$(FIND) $(CLEANDIRS) \( -name \*~ -o -name \*.elc \) -exec $(RM) {} \;
|
2011-07-12 16:31:41 -04:00
|
|
|
|
2012-08-19 12:54:15 -04:00
|
|
|
$(CLEANDIRS:%=clean%):
|
|
|
|
-$(FIND) $(@:clean%=%) \( -name \*~ -o -name \*.elc \) -exec $(RM) {} \;
|
cleanup in lisp/Makefile, targets; create org-fixup.el, remove version definition
* UTILITIES/org-fixup.el: new file, has functions to create
org-version.el and org-install.el, now use by the build system.
* lisp/Makefile: delete said definitions, now sourced from toplevel
make. "clean" and "cleanall" should do the same thing here, make
them aliases, ditto for "all" and "compile". Both autoload files
must be .PHONY and depend only on each other for correct ordering.
Make "compile-dirty" actually do that again (i.e. no implied
"clean", but "cleanauto"). Remove autoload files directly after
install, so that they will only be present when explicitly requested
by "autoloads". Create "org-version.el" before compilation as it is
mandatory. Remove $(ORG_MAKE_INSTALL) and $(ORG_MAKE_VERSION),
source from default.mk/local.mk.
* default.mk: move definitions for $(ORG_MAKE_INSTALL) and
$(ORG_MAKE_VERSION) here so that they can be more easily configured.
Remove definition of "org-release" from $(BATCH) and $(BTEST), now
sourced from "org-version.el".
* targets.mk: target reorganization, introduce "stop" targets to
prevent cleaning of org-version.el. Use new targets for "oldorg" to
make it more robust in case of errors. New target "cleanutils" to
remove any "*.elc" files that may have been produced there and add
this target to "cleanall". Do the same in cleancontrib.
2012-04-28 13:24:39 -04:00
|
|
|
|
2012-08-22 02:04:56 -04:00
|
|
|
ifneq ($(ORG_TO_LISP),)
|
|
|
|
cleanlisp: cleanaddcontrib
|
|
|
|
cleanaddcontrib:
|
|
|
|
$(RM) $(ORG_TO_LISP)
|
|
|
|
endif
|
|
|
|
|
2012-08-19 06:20:47 -04:00
|
|
|
cleanutils: cleanUTILITIES
|
2011-07-12 16:31:41 -04:00
|
|
|
|
2012-08-23 06:31:44 -04:00
|
|
|
cleanrel:
|
|
|
|
$(RMR) RELEASEDIR
|
|
|
|
$(RMR) org-7.*
|
|
|
|
$(RMR) org-7*zip org-7*tar.gz
|
|
|
|
|
2012-08-19 06:20:47 -04:00
|
|
|
cleanelc:
|
|
|
|
$(MAKE) -C lisp $@
|
|
|
|
|
2012-08-19 12:54:15 -04:00
|
|
|
cleanlisp cleandoc:
|
|
|
|
$(MAKE) -C $(@:clean%=%) clean
|
2012-01-05 14:54:52 -05:00
|
|
|
|
2012-08-19 12:54:15 -04:00
|
|
|
cleandocs:
|
2012-01-05 14:54:52 -05:00
|
|
|
$(MAKE) -C doc clean
|
2012-02-16 15:24:51 -05:00
|
|
|
-$(FIND) doc -name \*~ -exec $(RM) {} \;
|
|
|
|
|
|
|
|
cleantest:
|
|
|
|
$(RMR) $(testdir)
|