all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Achim Gratz <Stromeko@nexgo.de>
To: emacs-orgmode@gnu.org
Subject: Re: make update fails
Date: Mon, 23 Apr 2012 21:37:12 +0200	[thread overview]
Message-ID: <8762cq2qaf.fsf@Rainer.invalid> (raw)
In-Reply-To: 87aa222yl0.fsf@Rainer.invalid

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

Achim Gratz writes:
> Will do.

Here's that patch (and some more convenience targets).  Also, the first
invocation of make will now create a local.mk configuration template if
it doesn't exist.  You don't need to do anything if the defaults are
working for you, otherwise just edit whatever variable needs to be set
differently.  Some more esoteric settings can be gleaned from
default.mk, this will probably be needed if you are on Windows and are
maybe missing some programs (some hints are in the comments).


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: additional targets and help --]
[-- Type: text/x-patch, Size: 8276 bytes --]

From 1276da42f887610bf4f91c54df0e7076728cbfcf Mon Sep 17 00:00:00 2001
From: Achim Gratz <Stromeko@Stromeko.DE>
Date: Mon, 23 Apr 2012 21:20:58 +0200
Subject: [PATCH] Introduce compatibility and convenience targets, local.mk
 template, add "helpall"

* 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   |   88 +++++++++++++++++++++++++++++++++++++++++++++---------------
 default.mk |    4 +--
 targets.mk |   35 ++++++++++++++++--------
 3 files changed, 93 insertions(+), 34 deletions(-)

diff --git a/Makefile b/Makefile
index 7a77d42..1258d52 100644
--- a/Makefile
+++ b/Makefile
@@ -11,31 +11,77 @@ all::
 
 # Describe valid make targets for org-mode.
 .PHONY:	targets help
-targets help:
+targets help helpall::
 	$(info )
-	$(info make help          - show this help)
-	$(info make               - cleanly compile Org ELisp files and documentation)
-	$(info )
-	$(info Installation)
+	$(info Getting Help)
 	$(info ============)
-	$(info make install       - install Org, both ELisp and Info files)
-	$(info make install-lisp  - install Org, only ELisp files)
-	$(info make install-info  - install Org, only Info file)
 	$(info )
-	$(info Maintenance)
+	$(info make help          - show brief help)
+	$(info make targets       - dito)
+	$(info make helpall       - show extended help)
+	$(info )
+	$(info Build and Check)
+	$(info ===============)
+	$(info make               - build Org ELisp and all documentation)
+	$(info make all           - dito)
+	$(info make compile       - build Org ELisp files)
+	$(info make autoloads     - create org-install.el to load org in-place)
+	$(info make check         - build Org ELisp files and run test suite)
+helpall::
+	$(info make test          - dito)
+	$(info make compile-dirty - build only stale Org ELisp files)
+	$(info make test-dirty    - check without building first)
+	$(info )
+	$(info Compatibility)
+	$(info =============)
+	$(info make oldorg        - what the old make did: compile autoloads info)
+	$(info )
+	$(info Convenience)
 	$(info ===========)
-	$(info make doc           - make all documentation)
-	$(info make info          - make Info documentation)
-	$(info make html          - make HTML documentation)
-	$(info make pdf           - make pdf documentation)
-	$(info make card          - make refcards documentation)
-	$(info )
-	$(info make check         - build org and run complete test suite)
-	$(info make clean         - clean Org ELisp and documentation files)
-	$(info make compile       - cleanly compile Org ELisp files)
-	$(info make compile-dirty - compile Org ELisp without cleaning)
-	$(info )
-	$(info make clean-install - remove installed Org ELisp and documentation files)
+	$(info make up0           - pull from upstream)
+	$(info make up1           - pull from upstream, build and check)
+	$(info make up2           - pull from upstream, build, check and install)
+	$(info make update        - pull from upstream and build)
+	$(info make update2       - pull from upstream, build and install)
+	$(info make local.mk      - create new local.mk as template for adaptation)
+	$(info )
+	$(info Cleaning)
+	$(info ========)
+	$(info make clean         - remove built Org ELisp files and documentation)
+	$(info make cleanall      - remove everything that can be built and all remnants)
+	$(info make cleandirs     - clean in etc/, lisp/ and doc/)
+	$(info make cleancontrib  - remove remnants in contrib/)
+	$(info make cleandoc      - remove built documentation)
+	$(info make cleandocs     - dito)
+	$(info make cleanlisp     - remove built Org ELisp files)
+	$(info make cleanelc      - dito)
+	$(info make cleanrel      - remove release remnants)
+	$(info make cleantest     - remove check remnants)
+	$(info make clean-install - remove previous Org installation)
+	$(info )
+	$(info Documentation)
+	$(info =============)
+targets help helpall::
+	$(info make doc           - build all documentation)
+helpall::
+	$(info make docs          - dito)
+targets help helpall::
+	$(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::
+	$(info )
+	$(info Installation)
+	$(info ============)
+	$(info make install       - build and install Org)
+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::
 	@echo ""
 
  include targets.mk	# toplevel make machinery
diff --git a/default.mk b/default.mk
index ea56d72..72a3e5f 100644
--- a/default.mk
+++ b/default.mk
@@ -2,7 +2,7 @@
 ##  NEVER EDIT THIS FILE, PUT ANY ADAPTATIONS INTO local.mk
 ##----------------------------------------------------------------------
 ##  CHECK AND ADAPT THE FOLLOWING DEFINITIONS
-##----------------------------------------------------------------------
+##-8<-------------------------------------------------------------------
 
 # Override default target if desired or define your own default target
 # oldorg:	# have plain "make" do the same things the old Makefile did
@@ -38,7 +38,7 @@ BTEST_OB_LANGUAGES = awk C fortran maxima lilypond octave python sh # R
               # R is not activated by default because it requires ess to be installed and configured
 BTEST_EXTRA = # extra packages to require for testing
 
-##----------------------------------------------------------------------
+##->8-------------------------------------------------------------------
 ## YOU MAY NEED TO ADAPT THESE DEFINITIONS
 ##----------------------------------------------------------------------
 
diff --git a/targets.mk b/targets.mk
index a341301..e208ad7 100644
--- a/targets.mk
+++ b/targets.mk
@@ -21,13 +21,26 @@ ifneq ($(GITSTATUS),)
   GITVERSION := $(GITVERSION).dirty
 endif
 
-.PHONY:	default all oldorg up2 update compile lisp doc etc \
+.PHONY:	all oldorg update update2 up0 up1 up2 compile $(SUBDIRS) \
 	check test install info html pdf card doc docs $(INSTSUB) \
 	autoloads cleanall clean cleancontrib cleanrel clean-install \
-	cleanelc cleandirs cleanlisp cleandoc cleandocs cleantest
-
-# backwards compatibility target
-oldorg:	compile autoloads info
+	cleanelc cleandirs cleanlisp cleandoc cleandocs cleantest \
+	compile compile-dirty
+
+oldorg:	compile autoloads info # what the old makefile did when no target was specified
+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 ==========================================)
+	-@$(SED) -n \
+		-e '/-8<-/,/->8-/ {s/^\(\s*[^#]\)/#\1/;p}' \
+		-e '$$ i ## See default.mk for further configuration options.' \
+		default.mk > $@
 
 all \
 compile::	lisp
@@ -51,13 +64,13 @@ ifeq ($(TEST_NO_AUTOCLEAN),) # define this variable to leave $(testdir) around f
 	$(MAKE) cleantest
 endif
 
-up2:	update
-	$(SUDO) $(MAKE) install
-
-update:
+up0 up1 up2::
 	git remote update
 	git pull
-	$(MAKE) check
+up1 up2::	all
+	$(MAKE) test-dirty
+up2 update2::
+	$(SUDO) $(MAKE) install
 
 install:	$(INSTSUB)
 
@@ -81,7 +94,7 @@ clean:	cleanrel
 	$(MAKE) -C lisp clean
 	$(MAKE) -C doc clean
 
-cleanall: cleandirs cleantest
+cleanall: cleandirs cleantest cleancontrib
 	-$(FIND) . -name \*~ -exec $(RM) {} \;
 
 cleancontrib:
-- 
1.7.9.2


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



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

Wavetables for the Terratec KOMPLEXER:
http://Synth.Stromeko.net/Downloads.html#KomplexerWaves

  reply	other threads:[~2012-04-23 19:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-23 12:17 make update fails Detlef Steuer
2012-04-23 12:25 ` Rainer M Krug
2012-04-23 12:35   ` Rainer M Krug
2012-04-23 16:25 ` Achim Gratz
2012-04-23 16:31   ` Bastien
2012-04-23 16:38     ` Achim Gratz
2012-04-23 19:37       ` Achim Gratz [this message]
2012-04-23 19:53         ` Bastien
  -- strict thread matches above, loose matches on Subject: below --
2012-11-10 19:03 Thomas S. Dye
2012-11-11  3:01 ` Nick Dokos
2012-11-11  3:16   ` Thomas S. Dye

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

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

  git send-email \
    --in-reply-to=8762cq2qaf.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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.