[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Makefile restructuring

From: Achim Gratz
Subject: Re: [O] Makefile restructuring
Date: Tue, 19 Jul 2011 20:28:38 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux)

Achim Gratz <address@hidden> writes:
> git remote add -t Makefile remote-tableheadings 
> git://repo.or.cz/org-mode/org-tableheadings.git
> git fetch remote-tableheadings Makefile:local-Makefile
> git checkout local-Makefile
> to get it (change remote-tableheadings and local-Makefile to suit
> your naming conventions for remotes and local branches, respectively).
> I will be _rebasing_ against master during development, so expect
> history in this branch to be volatile.

This means you'll need to do a 

git fetch -f remote-tableheadings

whenever I've rebased since the branch doesn't fast-forward in this
case — which I've just done so it applies cleanly to current master.

> As always, testers and their comments are welcome.

Bastien asked if he might include it in the next release, so if you've
been testing/using this please say if it works (or what doesn't).  I've
tested it myself on Linux and Win7 (Cygwin and MSys), but there are
likely quite a few different setups around.

* Changes

** GNU make required

The previous Makefile already used a bunch of GNU make extensions so
this shouldn't be too much of a shock, but I am now using more of them,
especially functions.

** Customization

Keep your customizations to the old Makefile around (ie. the part with
"YOU MUST EDIT THE FOLLOWING LINES").  The customization will now be
done by putting just those lines (or only the lines you want to change
plus any comments, really) into a file named "local.mk".  The default
values are now in a file named default.mk, so you can also just copy
from default.mk to local.mk and then edit.  The defaults have been
slightly adapted to work well on most Linux systems and on Cygwin,

prefix = /usr/share # was /usr/local/share

On these systems you don't need any customization if you are installing
to the system-wide Emacs installation.  For other uses, here are a few

--8<---------------cut here---------------start------------->8---
# local.mk Win7/NTemacs
EMACS = C:/Freeware/Emacs-24.0.50/bin/emacs
prefix = C:/Freeware/Emacs-24.0.50
lispdir = $(prefix)/site-lisp/org
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
# local.mk Linux/Emacs24
EMACS = /usr/local/bin/emacs
prefix = /usr/local/share
lispdir = $(prefix)/emacs/site-lisp/org
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
# local.mk Linux/Emacs(system) - test
EMACS = /usr/bin/emacs
prefix = /home/user/org-test
lispdir = $(prefix)/lisp/org
--8<---------------cut here---------------end--------------->8---

--8<---------------cut here---------------start------------->8---
# local.mk Debian/Emacs(system)
INSTALL_INFO = ginstall-info # insist on GNU install-info
# even though dpkg install-info works just fine now
--8<---------------cut here---------------end--------------->8---

Keep in mind that all file-paths need to be absolute, specifically you
can't use "~" in prefix or lispdir since it is used in a few places
where the shell will not expand it.

** Renamed target "doc" to "docs"

The target "doc" has been renamed to "docs" since it clashed with the
subdirectory of the same name.

** New target clean-install

I've added a new target "clean-install" that will remove a previous
installation of org from the install directories.  This removes old
files that may have been present in a previous installation, but not
used anymore.  You should check with

make -n clean-install

what it tries to do before letting it _really_ remove anything.

** Installing files from contrib

The way things work now, any *.el file you put into lisp/ will be
compiled together with and installed along with the org files.  So if
you want to install a particular contrib feature together with org, just
copy (or link) it into lisp/.  This does not work with subdirectories
(for now), you need to make the actual *.el files visible in lisp/.

+<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+

Factory and User Sound Singles for Waldorf Q+, Q and microQ:

reply via email to

[Prev in Thread] Current Thread [Next in Thread]