* mk/targets.mk: Implement target `config-version´ to show the version
of Org from both make's and Emacs' perspective. Run that target at
the end of all `config-*´ targets.
* mk/default.mk: Add SHOWVER with the appropriate invocation of emacs
to output the Org version.
* Makefile: Document new target `config-version´ in `helpall´.
* Makefile: Include default.mk and targets.mk from mk/ where they've
been moved to.
* README_maintainer: Rename utils to make throughout.
* doc/Makefile: Rename utils to make throughout.
* doc/org.texi: Remove reference to utils/, x11idle.c is now in
contrib/scripts.
* mk/make_emacs_changelog: Add mk/ to list of directories not to be
reported in Emacs' ChangeLog. Also retain utils/ and re-add
UTILITIES; add a comment explaining why these need to stay.
* mk/default.mk: Rename utils to make throughout. Include version.mk
from mk/ where it's been moved to.
* mk/targets.mk: Rename utils to make throughout.
* mk/server.mk: Rename utils to make throughout. Only put those files
from mk/ into the archives that are needed outside the server:
default.mk targets.mk version.mk and org-fixup.el.
* lisp/org-compat.el: Rename utils to make throughout.
* .gitignore: Rename utils to make throughout.
* default.mk, targets.mk, lisp/Makefile: Rename _COMPILE_ to ORGCM.
* default.mk: Define ORGCM=dirall, show other possible values as
comments
* targets.mk: Implement target `single´, temporarily set
ORGCM (overriding configuration). Show newly introduced
configuration variables with `check-*´.
* lisp/Makefile: Implement dispatch for compile based on ORGCM.
Output header that contains the target for easier debugging.
* Makefile: Document target `single´.
* targets.mk: Remove targets compile-source and compile-single,
obsoleted by new configuration option. Remove repetitive code in
clean targets by using pattern substitution. Avoid superfluous
invocations of find by using multiple path arguments.
* Makefile: Remove compile-source and compile-single target
documentation.
* default.mk: Add new option _COMPILE_ to select compilation method.
Set default value to keep current behaviour.
* lisp/Makefile: Use new $(_COMPILE_) to dispatch compilation target.
Implement private targets compile-dirall (default), compile-single,
compile-slint1 and compile-slint2.
The additional compilation methods catch more and/or different errors
in the sources by compiling the sources in a single Emacs process per
compilation and with different conditions of the source directory, but
take much longer to compile even in the absence of such errors. The
default method to use can be changed (like all other options) via
local.mk or temporarily on the command line.
* 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.
* targets.mk: Add targets "config", "config-test", "config-exe",
"config-cmd", "config-all" and "config-eol" (all .PHONY). These
echo various configuration dependent variables so they can be more
easily checked for correctness.
* Makefile: Document the new targets, "config" with "help" and the
rest with "helpall".
* Makefile: correct definitions to have "make helpall" display the
output in the way it was intended. Remove documentation for
"cleanrel" as it is not intended to be used except on the release
server; this target may move into server.mk, but for now leave it
in targets.mk.
* targets.mk: change the "local.mk" template so that "oldorg" will be
the default target for maximum compatibility. Admonish info message
with a reminder to use "make help" for more information on targets
and that "oldorg" is the default target for now. Add new
convenience target "uncompiled" that will keep the lisp directory
free from *.elc files and the autoload files up-to-date.
* Makefile: make "targets" and "helpall" depend on "help" so that only
"help::" or "helpall::" needs to be written for adding more help
messages. Useful when users want to add their own messages to "make
help" et al.
* Makefile: new target "helpall" to document all targets, while "help"
continues to show a brief subset.
* default.mk: add cutlines for sed to produce local.mk with.
* targets.mk: add target "local.mk" to produce an (empty) local.mk
configuration template when it isn't already present. Ignore any
error when making this target since sed might not be present on all
systems. Redefine target "update" to not include testing, similarly
add target "update2" to additionally install without test. Add
targets "up0" to stop after git pull and "up1" to stop after test,
while "up2" continues to do everything and then installs. Complete
.PHONY target list. Add "refcard" target for compatibility with old
make. Clean contrib in "cleanall", too.
* 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.
* Makefile: make documentation follow the implementation.
* targets.mk: add "doc" as alternative target for "docs" to adhere
more closely to standards
some fixes
Makefile: add help for target "test"
default.mk: more sane location for local data, add $(BTEST) that
will run the test in batch mode. Some tests require non-standard
packages, introduce $(BTEST_EXTRA) in order to add options so they
can be found.
targets.mk: new target "test" that implies "all" and then runs all
test. Hidden target "test-dirty" runs tests without doing
compilation.
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
* 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
* Makefile: declare phony targets, remove help text for install-info-debian
* default.mk: add variable for FIND and RM
* targets.mk, maint-targets.mk: shuffle targets to where they belong, declare
phony targets, work around a texi2dvi bug, use pattern rules, use targets for
dependencies instead of repeating them verbatim
* Makefile: just keep help target (now also default for no target)
and include all other parts from here.
* default.mk: user editable variables with their default values
* maint.mk: definitions by maintainer, should not be touched by user
* targets.mk: user callable targets
* maint-targets.mk: targets for maintenance, should not be called by user
* dependencies.mk: keep order during compile (could become auto-generated)
This is the first in a series of patches that restructures the Makefile to
achieve easier customization and separation of different concerns (mainly user
vs. maintenance of the distribution). This first patch simply establishes a
set of files without changing anything else to provide a clean starting point.
It uses GNU make extensions since Makefile already depends on GNU make anyway.
I started from the 78ec8e commit then cherry-picked and squashed
commits that have been done in master since then, except the bad
commits that overwrote the tree (in master) with the tree in maint.
This commit also bumps the version number to 7.8.06.
The only "fix" that was made between 78ec8e and the previous commit
is e0072f which has been reported to break stuff.
This fixes a wrong merge that should not have happened:
commit 7e903a merges the master branch into the maint branch,
while we really want to keep the maint branch a bugfix-only
branch.
This commit reverts back the maint branch to its state before
merging the master branch. From there, we will fix remaining
problems with the maint branch (e.g. copyright issues) then
release this maint branch as Org-mode 7.8.05.
* org-odt.el (org-odt-lib-dir): Add docstring.
(org-odt-data-dir): New variable. Use this variable to
control the locations from which the ODT exporter picks the
OpenDocument styles and schema files from. Set this variable
explicitly only if the in-built heuristics for locating the
above files fails.
(org-odt-styles-dir-list, org-odt-schema-dir-list): New
variables. Pay specific attention to (eval-when-compile ...)
form through which Makefile's $(datadir) - contained in
`org-odt-data-dir' - gets compiled in as a "hard coded"
constant.
(org-odt-styles-dir, org-export-odt-schema-dir): Add messages
to aid debugging.
* Makefile (etcdir): Remove this.
(stylesdir): Rename to datadir.
(datadir): Was stylesdir.
(STYLESFILES): Rename to DATAFILES.
(DATAFILES): Was STYLESFILES. Offer a menu of files that is
available. Package maintainers can use this list and their
own discretion to cherry-pick what they are willing to install
in their distribution.
(CP): Add recursive flag so that directories listed in
DATAFILES can be copied enbloc.
(install-lisp): Use conditional flag BATCH_EXTRA
(BATCH_EXTRA): "Target-specific variable value" that plumbs
the value of $(datadir) in to org-odt.el via
`org-odt-data-dir'. See ChangeLog entries for
`org-odt-styles-dir-list' and `org-odt-schema-dir-list'.
(BATCH): Add BATCH_EXTRA.
(lisp/org-odt.elc): Force re-generation of this target every
time so that $(datadir) gets plumbed in to org-odt.el through
`org-odt-data-dir'.
(org-odt-data-dir): "FORCE" target. Also a variable defined
in org-odt.el.
(install-etc): Rename this target to install-data.
(install-data): Was install-etc.
Fix for the following report:
http://lists.gnu.org/archive/html/emacs-orgmode/2011-12/msg00799.html
Ulrich Mueller <ulm@gentoo.org> writes:
In Gentoo we have an issue with the location of the
OpenDocument style files, reported to us in bug 396269 [1].
When org-mode is installed as a separate Gentoo package, its
lisp files are installed in
/usr/share/emacs/site-lisp/org-mode/. According to our
policy, non-lisp files would go to
/usr/share/emacs/etc/org-mode/. We would pass this as the
"etcdir" parameter to "make install", so the odt style files
would be installed in stylesdir =
/usr/share/emacs/etc/org-mode/styles/.
Now org-odt.el currently defines org-odt-styles-dir in a
defconst, and it searches only in ../etc/styles/,
./etc/styles/, and ./etc/org/ relative to lispdir. Obviously
it cannot find the files in the Gentoo location.
[1] <https://bugs.gentoo.org/show_bug.cgi?id=396269>