emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Achim Gratz <Stromeko@nexgo.de>
To: emacs-orgmode@gnu.org
Subject: Re: Makefile restructuring
Date: Wed, 25 Apr 2012 20:00:29 +0200	[thread overview]
Message-ID: <871unbitdu.fsf@Rainer.invalid> (raw)
In-Reply-To: 87397x1i8u.fsf@altern.org

[-- Attachment #1: Type: text/plain, Size: 1808 bytes --]

Bastien writes:
> Please test this and report any problem while using make
> to install Org.

Here's another refinement to make "oldorg" the default target unless
local.mk is actively edited by the user.  If you already have a local.mk
file and would like this behaviour, just insert the following on the
first line of local.mk:

--8<---------------cut here---------------start------------->8---
oldorg:
--8<---------------cut here---------------end--------------->8---

With this patch, the new Makefile produces the same results out-of-the
box as the old one (modulo the bugs that got fixed: no need for a "make
clean" unless you do something really unusual).

The patch also adds a new target "uncompiled" that will remove any
compiled lisp files that may be around and just creates the autoloads.
If you fancy uncompiled installation, insert this as the first line to
local.mk:

--8<---------------cut here---------------start------------->8---
uncompiled:
--8<---------------cut here---------------end--------------->8---

This will enable a plain and simple "make" to do what you want without
taking anything away.

If you'd rather do something else with a plain "make", you can add your
own target definitions there as well (the first one will always be the
default target):

--8<---------------cut here---------------start------------->8---
fancy:	help info uncompiled
fancy-install:	help install-info install-lisp
help::
	$(info My fancyness)
	$(info ============)
	$(info )
	$(info fancy              - show help, update doc and autoloads)
--8<---------------cut here---------------end--------------->8---

In this case, plain "make" would do "fancy" and you'd have a new target
"fancy install" plus a documentation for these when doing a "make help",
"make targets" or "make helpall".

The patch:

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Improve compatibility with old Makefile --]
[-- Type: text/x-patch, Size: 3753 bytes --]

From f9f0c7b4e367259bafac1cb5cbec17dd2cff625a Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Wed, 25 Apr 2012 19:04:29 +0200
Subject: [PATCH] Improve compatibility with old Makefile

* 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   |   14 ++++++++------
 targets.mk |   17 +++++++++++------
 2 files changed, 19 insertions(+), 12 deletions(-)

diff --git a/Makefile b/Makefile
index 1258d52..66a637c 100644
--- a/Makefile
+++ b/Makefile
@@ -10,8 +10,10 @@
 all::
 
 # Describe valid make targets for org-mode.
-.PHONY:	targets help
-targets help helpall::
+.PHONY:	targets help helpall
+targets:	help
+helpall::	help
+help::
 	$(info )
 	$(info Getting Help)
 	$(info ============)
@@ -61,18 +63,18 @@ helpall::
 	$(info )
 	$(info Documentation)
 	$(info =============)
-targets help helpall::
+help::
 	$(info make doc           - build all documentation)
 helpall::
 	$(info make docs          - dito)
-targets help helpall::
+help::
 	$(info make info          - build Info documentation)
 helpall::
 	$(info make html          - build HTML documentation)
 	$(info make pdf           - build PDF documentation)
 	$(info make card          - build reference cards)
 	$(info make refcard       - dito)
-targets help helpall::
+help::
 	$(info )
 	$(info Installation)
 	$(info ============)
@@ -81,7 +83,7 @@ helpall::
 	$(info make install-etc   - build and install files in /etc)
 	$(info make install-lisp  - build and install Org Elisp files)
 	$(info make install-info  - build and install Info documentation)
-targets help helpall::
+help::
 	@echo ""
 
  include targets.mk	# toplevel make machinery
diff --git a/targets.mk b/targets.mk
index e208ad7..4ad5c5f 100644
--- a/targets.mk
+++ b/targets.mk
@@ -25,19 +25,24 @@ endif
 	check test install info html pdf card doc docs $(INSTSUB) \
 	autoloads cleanall clean cleancontrib cleanrel clean-install \
 	cleanelc cleandirs cleanlisp cleandoc cleandocs cleantest \
-	compile compile-dirty
+	compile compile-dirty uncompiled
 
-oldorg:	compile autoloads info # what the old makefile did when no target was specified
+oldorg:	compile autoloads info	# what the old makefile did when no target was specified
+uncompiled:	cleanlisp autoloads	# for developing
 refcard:	card
 update update2::	up0 all
 
 .PRECIOUS:	local.mk
 local.mk:
-	$(info ==========================================)
-	$(info Created a local.mk template.)
-	$(info Please adapt local.mk to your local setup!)
-	$(info ==========================================)
+	$(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 ======================================================)
 	-@$(SED) -n \
+		-e '1 i ## Remove the following line to make "all" the default target' \
+		-e '1 i oldorg:' \
 		-e '/-8<-/,/->8-/ {s/^\(\s*[^#]\)/#\1/;p}' \
 		-e '$$ i ## See default.mk for further configuration options.' \
 		default.mk > $@
-- 
1.7.9.2


[-- Attachment #3: Type: text/plain, Size: 197 bytes --]



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

SD adaptations for KORG EX-800 and Poly-800MkII V0.9:
http://Synth.Stromeko.net/Downloads.html#KorgSDada

  parent reply	other threads:[~2012-04-25 18:01 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-10  9:10 patch makefile solve a couple debian build problems and a slackware build problem Jude DaShiell
2011-07-10  9:20 ` Bastien
2011-07-10 10:07   ` Achim Gratz
2011-07-10 12:55     ` Achim Gratz
2011-07-10 20:03       ` Achim Gratz
2011-07-11 12:01         ` Bastien
2011-07-11 16:00           ` Achim Gratz
2011-07-11 18:53             ` Bastien
2011-07-13 16:08               ` Makefile restructuring Achim Gratz
2011-07-16 11:54                 ` Bastien
2011-07-16 14:56                   ` Achim Gratz
2011-07-16 21:17                     ` Achim Gratz
2011-07-17 17:30                     ` Achim Gratz
2011-12-16  9:59                     ` Achim Gratz
2011-07-19 18:28                 ` Achim Gratz
2011-10-28 10:00                   ` Achim Gratz
2011-10-29 11:22                     ` Michael Brand
2011-10-30  7:33                       ` Achim Gratz
2011-10-30 14:20                         ` Michael Brand
2011-11-06 19:06                         ` Achim Gratz
2011-11-06 19:18                           ` Jambunathan K
2011-11-06 19:38                             ` Achim Gratz
2011-11-06 20:25                               ` Jambunathan K
2011-11-08 21:35                                 ` Achim Gratz
2011-11-13 12:47                                   ` Achim Gratz
2011-11-08 18:00                   ` Achim Gratz
2011-11-08 21:23                     ` Achim Gratz
2012-04-21 10:39                       ` Bastien
2012-04-21 11:40                         ` suvayu ali
2012-04-21 13:08                         ` Samuel Wales
2012-04-21 13:26                           ` Achim Gratz
2012-04-21 13:49                             ` Samuel Wales
2012-04-21 14:34                               ` Achim Gratz
2012-04-21 15:41                                 ` Samuel Wales
2012-04-21 15:44                                   ` Achim Gratz
2012-04-22 15:22                                 ` suvayu ali
2012-04-22 15:34                                   ` Achim Gratz
2012-04-23  7:32                                     ` suvayu ali
2012-04-24  1:46                                     ` Mike McLean
2012-04-24  4:55                                       ` Achim Gratz
2012-04-21 15:29                               ` Achim Gratz
2012-04-21 15:43                                 ` Bastien
2012-04-21 18:50                                 ` Samuel Wales
2012-04-21 18:55                                   ` Achim Gratz
2012-04-21 19:12                                     ` Samuel Wales
2012-04-21 19:17                                       ` Achim Gratz
2012-04-21 20:47                                         ` Samuel Wales
2012-04-22  6:34                                           ` Achim Gratz
2012-04-22 15:31                                             ` Samuel Wales
2012-04-22 15:42                                               ` Achim Gratz
2012-04-21 13:37                           ` Jambunathan K
2012-04-21 14:25                         ` François Allisson
2012-04-21 17:57                           ` Martyn Jago
2012-04-21 18:30                             ` Achim Gratz
2012-04-21 20:45                               ` François Allisson
2012-04-21 20:57                                 ` Samuel Wales
2012-04-21 23:27                               ` Martyn Jago
2012-04-23  5:05                         ` Achim Gratz
2012-04-25 18:00                         ` Achim Gratz [this message]
2012-04-26  6:55                           ` Bastien
2011-07-11 11:58     ` patch makefile solve a couple debian build problems and a slackware build problem Bastien
2011-07-11 15:39       ` Achim Gratz
2011-07-11 18:52         ` Bastien
2011-07-10 12:21   ` Nick Dokos
2011-07-10 12:49     ` Achim Gratz
2011-07-10 14:02       ` Jude DaShiell
2011-07-11 20:01   ` [PATCH] was: " Achim Gratz
2011-07-11 21:40     ` Nick Dokos
2011-07-11 22:19       ` Bastien
2011-07-13 15:45       ` Achim Gratz
2011-07-14 15:51         ` Bastien
2011-07-11 22:19     ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=871unbitdu.fsf@Rainer.invalid \
    --to=stromeko@nexgo.de \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).