Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Luca Ceresoli <luca@lucaceresoli.net>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 15/21 RFC] core/pkg-generic: add macro to hardlink-or-copy
Date: Wed, 18 Nov 2015 16:40:17 +0100	[thread overview]
Message-ID: <564C9BE1.6010008@lucaceresoli.net> (raw)
In-Reply-To: <13184d01305cbba2861610b0e54ffa3895c8a2f0.1447713615.git.yann.morin.1998@free.fr>

Dear Yann,

Yann E. MORIN wrote:
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Luca Ceresoli <luca@lucaceresoli.net>
> ---
>   package/pkg-generic.mk | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 544ae5c..82fbeb0 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -305,6 +305,24 @@ endif
>   endef
>
>   ################################################################################
> +# hardlink-copy -- hardlink source and destination if possible, otherwise
> +# do a simple copy
> +#
> +# argument 1 is the source
> +# argument 2 is the destination *directory*
> +#
> +# example:
> +#   $(call hard-link-copy,source,destination)
> +#
> +# Note: we make that a single command, so se can:
> +#  - use '$(Q)' in front of it and properly silence the whole macro,
> +#  - use '|| exit 1' after it, so we can exit on error in compound commands.
> +################################################################################
> +define hardlink-copy
> +	{ mkdir -p $(2) && { cp -l $(1) $(2) 2>/dev/null || cp $(1) $(2); } }
> +endef
> +

Good idea! But wouldn't it fit better in pkg-utils.mk? Indeed it's very
generic.

-- 
Luca

  reply	other threads:[~2015-11-18 15:40 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-16 22:47 [Buildroot] [PATCH 0/21 RFC] core/legal-info: fixes, completness and enhancements (branch yem/legal-patch) Yann E. MORIN
2015-11-16 22:46 ` [Buildroot] [PATCH 01/21 RFC] package/libecore: do not build anything at patch time Yann E. MORIN
2015-11-17 11:16   ` Thomas Petazzoni
2015-11-17 12:20     ` Romain Naour
2015-11-17 20:16       ` Romain Naour
2015-11-17 16:03   ` Peter Korsgaard
2015-11-16 22:46 ` [Buildroot] [PATCH 02/21 RFC] core/legal-info: fix missing double-$ Yann E. MORIN
2015-11-17 11:19   ` Thomas Petazzoni
2015-11-17 16:03   ` Peter Korsgaard
2015-11-16 22:46 ` [Buildroot] [PATCH 03/21 RFC] package/linux-headers: add licensing information Yann E. MORIN
2015-11-17 11:19   ` Thomas Petazzoni
2015-11-17 16:04   ` Peter Korsgaard
2015-11-16 22:46 ` [Buildroot] [PATCH 04/21 RFC] core/legal-info: allow ignoring packages from the legal-info Yann E. MORIN
2015-11-17 11:22   ` Thomas Petazzoni
2015-11-17 17:35     ` Luca Ceresoli
2015-11-17 19:28       ` Yann E. MORIN
2015-11-17 20:14         ` Thomas Petazzoni
2015-11-17 21:26           ` Yann E. MORIN
2015-11-17 21:43     ` Arnout Vandecappelle
2015-11-17 21:48   ` Arnout Vandecappelle
2015-11-16 22:47 ` [Buildroot] [PATCH 05/21 RFC] core/pkg-virtual: ignore from legal-info output Yann E. MORIN
2015-11-17 11:25   ` Thomas Petazzoni
2015-11-17 19:35     ` Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 06/21 RFC] package/gcc: add licensing information Yann E. MORIN
2015-11-17 11:28   ` Thomas Petazzoni
2015-11-17 21:15     ` Yann E. MORIN
2015-11-17 21:25       ` Thomas Petazzoni
2015-11-17 21:40         ` Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 07/21 RFC] package/gcc: handle " Yann E. MORIN
2015-11-17 11:31   ` Thomas Petazzoni
2015-11-17 21:20     ` Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 08/21 RFC] package/gcc: add a patch for arc rather than using sed Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 09/21 RFC] package/gcc: properly extract and patch sources Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 10/21 RFC] package/gcc: make host-gcc a pure host package Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 11/21 RFC] package/gcc: make -initial and -final use sources from host-gcc Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 12/21 RFC] package/gcc: include the extensa overlay in the legal-info output Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 13/21 RFC] package/perl: include perl-cross " Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 14/21 RFC] core: add a global variable with already-unquoted global patch dir Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 15/21 RFC] core/pkg-generic: add macro to hardlink-or-copy Yann E. MORIN
2015-11-18 15:40   ` Luca Ceresoli [this message]
2015-11-16 22:47 ` [Buildroot] [PATCH 16/21 RFC] core/legal-info: use the macro to install source archives Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 17/21 RFC] core/legal-info: install source archives in their own sub-dir Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 18/21 RFC] core/legal-info: add package version to license directory Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 19/21 RFC] core/apply-patches: store full path of applied patches Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 20/21 RFC] core/legal-info: also save patches Yann E. MORIN
2015-11-16 22:47 ` [Buildroot] [PATCH 21/21 RFC] core/pkg-infra: ensure legal-info works in off-line mode Yann E. MORIN

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=564C9BE1.6010008@lucaceresoli.net \
    --to=luca@lucaceresoli.net \
    --cc=buildroot@busybox.net \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox