* default.mk: Re-introduce ELC for single file compilation.
* targets.mk: New targets compile-single and compile-single-source
that get handed off to lisp/Makefile.
* lisp/Makefile: Implement pattern rule using $(ELC). Implement
target compile-single that uses a separate Emacs process for each
target by invoking the pattern rule. Implement target
compile-single-source that additionally removes the compiled file
directly after it has been produced, so compilation will always use
source files only, never byte-compiled files.
* Makefile: Document new targets.
These new targets are meant to check for problems with
interdependencies in Org.
* lisp/Makefile: Add LISPN (empty by default) which is used to filter
out files from LISPC. This means that install will not fail due to
a corresponding .elc missing. This might become useful if lisp
source files set "no-byte-compile: t" for whatever reason.
* lisp/Makefile: remove stop targets, make autoloads depend on source
files again (not .PHONY). Keep autoload files around after compile,
but make sure to re-create them before installation and compile.
Remove autoload files before re-creating them to avoid errors from
Emacs when saving the buffer.
* targets.mk: remove stop targets and the mess that was necessary to
support them.
* default.mk: must use $(CURDIR) not $(PWD), $(PWD) is not well
defined when using sudo.
* 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.
* Makefile: move setup includes to top
* lisp/Makefile: reduce verbosity of org-version.el target, add a more
friendly @echo instead.
* targets.mk: provide compatibility target "oldorg" to do "compile
autoloads info" which is closest to the old behaviour.
* doc/Makefile: rename auto-generated file "git-describe.texi" to
"org-version.inc" to allow for easier inclusion into Emacs.
* doc/org.texi: include "org-version.inc" instead of
"git-describe.texi".
* lisp/Makefile: new auto-generated file org-version.el with autoload
cookies. The version strings will be pulled during autoload
extraction into org-install.el (standalone org-mode) or
../loaddefs.el (Emacs).
Makefile: remove includes for maintainer targets, these will go
into local.mk on the server
default.mk: introduce $(datadir) to replace $(etcdir) in etc/Makefile
doc/Makefile: replace $etcdir) with $(datadir)
lisp/Makefile: record ODT styles location as defconst in org-install
{doc,etc,lisp}/Makefile: prefix all installation targets with $(DESTDIR)
* targets.mk: target "all" for lisp directory does now the same as
"compile", i.e. it cleans .elc file first
* Makefile: describe all targets and re-arrange the target groups
* lisp/Makefile: use batch-byte-recompile-directory instead of
batch-byte-compile; remove pattern rule for compiling single file
from source
* lisp/Makefile: add compile-dirty to list of phony targets
* targets.mk: check for release and git version and record this
into environment variables for use in sub-make invocations; add
new target "compile-dirty" that does not invoke "make clean" first
* doc/Makefile, lisp/Makefile: remove git version check, since
they are now provided by first-level make
* lisp/Makefile: add insertion of version information into
org-install.el, have org-install.el depend on LISPF rather than
LISPC so that autoloads can be produced without compiling
everything and remove insertion into org.el and re-compilation
during install; add new target "compile-dirty" to support
invocation from first-level make
* lisp/org.el (org-version): remove determination of version
information, show "N/A" if the information is not provided via
org-install.el
* lisp/dependencies.mk: remove file
* lisp/Makefile: remove dependency on dependencies.mk
Rationale: since we will always start with a "make clean", the
dependencies file has become obsolete. The dependencies had not
been updated for a long time anyway and there seems to be no way
to produce them automatically.
* doc/Makefile: cleanall additionally removes the directories for
manual and guide; fix the dir file in infodir after removal of org
documentation
* lisp/Makefile: remove debug statement
* Makefile, lisp/Makefile, doc/Makefile: add target clean-install
to remove files in install-directories
* default.mk: add customization variable $(SED)
* doc/Makefile: do not remove dir while cleaning
* lisp/Makefile: use sed instead of perl to weave git-status into
org.el and ignore any errors while doing it. Keep git status in
$(GITSTATUS) to make it more clear what happens in the check.
* lisp/org.el (org-git-version): placeholder for recording the Git
version of org during install
* lisp/org.el (org-version): initialize local git-version with
placeholder and fall through using it when org is not installed in
a Git repository
* Makefile: use info function for output and call shell only once
* default.mk: add PDFTEX and RMR variables for customization
* lisp/Makefile: add target 'all' and create $(lispdir) if necessary
* maint-targets.mk: invoke sub-make for HTML manuals
* maint.mk: remove unsused VARIABLES
* targets.mk: invoke sub-make for ./doc and clean up some targets
* 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