From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
Date: Sun, 8 Sep 2013 15:30:34 +0200 [thread overview]
Message-ID: <20130908153034.10b46fdf@skate> (raw)
In-Reply-To: <CANxTyt4-UNps4mw2KRMbg9TGjj03e5eL5vczCJORuE4as4HwQg@mail.gmail.com>
Dear Danomi Manchego,
On Sun, 8 Sep 2013 09:13:30 -0400, Danomi Manchego wrote:
> > $(TARGET_DIR_WARNING_FILE)
> > - @ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
> > - @mkdir -p $(TARGET_DIR)/usr
> > - @ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
> > + $(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
> > + ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \
> > + fi
> > + $(Q)mkdir -p $(TARGET_DIR)/usr
> > + $(Q)if [ ! -L $(TARGET_DIR)/usr/$(LIB_SYMLINK) ]; then \
> > + ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) ; \
> > + fi
> > touch $@
> >
> > $(TARGET_DIR): $(BUILD_DIR)/.root
>
>
> Wouldn't just changing the "ln -s" to "ln -snf" be sufficient? After
> all, that's what is being done to make $(STAGING_DIR):
I think, when I tried it, it wasn't working: at the second invocation,
it creates a symbolic link *within* the lib directory. Example:
thomas at skate:/tmp$ mkdir target
thomas at skate:/tmp$ cd target/
thomas at skate:/tmp/target$ ls
thomas at skate:/tmp/target$ mkdir lib
thomas at skate:/tmp/target$ ls lib/
# lib/ is empty
thomas at skate:/tmp/target$ ln -sf lib lib32
thomas at skate:/tmp/target$ ls -l
total 0
drwxrwxr-x 2 thomas thomas 40 sept. 8 15:27 lib
lrwxrwxrwx 1 thomas thomas 3 sept. 8 15:28 lib32 -> lib
thomas at skate:/tmp/target$ ls lib/
# we have the symbolic link, lib/ is still empty. Now we will create
# the symbolic link again
thomas at skate:/tmp/target$ ln -sf lib lib32
thomas at skate:/tmp/target$ ls -l
total 0
drwxrwxr-x 2 thomas thomas 60 sept. 8 15:28 lib
lrwxrwxrwx 1 thomas thomas 3 sept. 8 15:28 lib32 -> lib
thomas at skate:/tmp/target$ ls -l lib/
total 0
lrwxrwxrwx 1 thomas thomas 3 sept. 8 15:28 lib -> lib
# A stale symbolic link was created in lib/
Best regards,
Thomas
--
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com
next prev parent reply other threads:[~2013-09-08 13:30 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
2013-09-08 12:06 ` Thomas De Schampheleire
2013-09-08 13:13 ` Danomi Manchego
2013-09-08 13:30 ` Thomas Petazzoni [this message]
2013-09-08 16:59 ` Danomi Manchego
2013-09-08 17:31 ` Thomas Petazzoni
2013-09-09 8:54 ` Luca Ceresoli
2013-09-09 21:38 ` Peter Korsgaard
2013-09-10 7:23 ` Thomas Petazzoni
2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
2013-09-06 9:35 ` Yann E. MORIN
2013-09-06 15:53 ` Yann E. MORIN
2013-09-06 15:56 ` Thomas Petazzoni
2013-09-08 12:52 ` Thomas De Schampheleire
2013-09-13 16:10 ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases Thomas Petazzoni
2013-09-08 15:31 ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/ Thomas Petazzoni
2013-09-08 17:50 ` Thomas De Schampheleire
2013-09-13 16:07 ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package Thomas Petazzoni
2013-09-13 16:24 ` Luca Ceresoli
2013-09-15 14:27 ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure Thomas Petazzoni
2013-09-15 14:30 ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed Thomas Petazzoni
2013-09-15 14:33 ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info Thomas Petazzoni
2013-09-15 19:29 ` Thomas De Schampheleire
2013-09-15 20:09 ` Thomas Petazzoni
2013-09-16 1:21 ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable Thomas Petazzoni
2013-09-16 13:39 ` Thomas De Schampheleire
2013-09-16 18:31 ` Thomas Petazzoni
2013-09-16 19:20 ` Arnout Vandecappelle
2013-09-17 7:21 ` Thomas De Schampheleire
2013-09-27 14:27 ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure Thomas Petazzoni
2013-09-16 13:29 ` Thomas De Schampheleire
2013-09-27 14:21 ` Luca Ceresoli
2013-09-27 14:24 ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 11/11] dependencies: remove useless targets Thomas Petazzoni
2013-09-06 8:28 ` [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Fabio Porcedda
2013-09-06 8:38 ` Thomas Petazzoni
2013-09-06 8:50 ` Fabio Porcedda
2013-09-06 12:37 ` Ryan Barnett
2013-09-06 8:57 ` Jérôme Pouiller
2013-09-06 9:05 ` Thomas Petazzoni
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=20130908153034.10b46fdf@skate \
--to=thomas.petazzoni@free-electrons.com \
--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