From mboxrd@z Thu Jan 1 00:00:00 1970 From: Achim Gratz Subject: Re: Makefile restructuring Date: Tue, 19 Jul 2011 20:28:38 +0200 Message-ID: <87hb6i3z1l.fsf@Rainer.invalid> References: <87k4bqwkyw.fsf@gnu.org> <87sjqejvob.fsf@Rainer.invalid> <87k4bqjnwu.fsf@Rainer.invalid> <87fwmdkind.fsf@Rainer.invalid> <874o2t81qu.fsf@gnu.org> <87liw43iys.fsf@Rainer.invalid> <8762n8d4ys.fsf@gnu.org> <87ei1u6u3q.fsf_-_@Rainer.invalid> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Return-path: Received: from eggs.gnu.org ([140.186.70.92]:47260) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QjF2T-0007aa-BF for emacs-orgmode@gnu.org; Tue, 19 Jul 2011 14:29:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QjF2O-0002X5-Lf for emacs-orgmode@gnu.org; Tue, 19 Jul 2011 14:29:00 -0400 Received: from lo.gmane.org ([80.91.229.12]:33828) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QjF2N-0002Wx-Vh for emacs-orgmode@gnu.org; Tue, 19 Jul 2011 14:28:56 -0400 Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QjF2L-00007v-RR for emacs-orgmode@gnu.org; Tue, 19 Jul 2011 20:28:53 +0200 Received: from p57aad238.dip.t-dialin.net ([87.170.210.56]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 19 Jul 2011 20:28:53 +0200 Received: from Stromeko by p57aad238.dip.t-dialin.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 19 Jul 2011 20:28:53 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Achim Gratz 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, specifically 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 examples: --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/. Regards, Achim. -- +<[Q+ Matrix-12 WAVE#46+305 Neuron microQkb Andromeda XTk Blofeld]>+ Factory and User Sound Singles for Waldorf Q+, Q and microQ: http://Synth.Stromeko.net/Downloads.html#WaldorfSounds