Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Eric Nelson <eric.nelson@boundarydevices.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH V5 3/3] i.MX: use temp directory for Freescale self-extractors
Date: Thu, 13 Feb 2014 17:26:20 -0700	[thread overview]
Message-ID: <1392337580-16568-4-git-send-email-eric.nelson@boundarydevices.com> (raw)
In-Reply-To: <1392337580-16568-1-git-send-email-eric.nelson@boundarydevices.com>

The Freescale packages imx-lib, libfslcodec, libfslparser, and libfslvpuwrap
are each bundled as self-extracting tar-balls that contain a shell script
and a EULA in their package headers.

These self-extractors also contain a command to create the destination
directory using "mkdir" (no -p) prior to extraction.

Since we want to place the output into the build directory, which has already
been created at the time of extraction, this causes a warning message
from "mkdir".

This patch changes things so that each package is extracted first into a
sub-directory, and the content is moved into the eventual build directory.

Signed-off-by: Eric Nelson <eric.nelson@boundarydevices.com>
---
This patch is new in V5.

 package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk | 13 ++++++++-----
 package/freescale-imx/imx-lib/imx-lib.mk                   | 11 +++++++----
 package/libfslcodec/libfslcodec.mk                         |  9 ++++++---
 package/libfslparser/libfslparser.mk                       |  9 ++++++---
 package/libfslvpuwrap/libfslvpuwrap.mk                     |  9 ++++++---
 5 files changed, 33 insertions(+), 18 deletions(-)

diff --git a/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk
index e799fd2..ec8c774 100644
--- a/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk
+++ b/package/freescale-imx/gpu-viv-bin-mx6q/gpu-viv-bin-mx6q.mk
@@ -4,13 +4,14 @@
 #
 ################################################################################
 
+GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)
 ifeq ($(BR2_ARM_EABIHF),y)
-GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)-hfp
+GPU_VIV_BIN_MX6Q_EXTRACT = gpu-viv-bin-mx6q-$(FREESCALE_IMX_VERSION)-hfp
 else
-GPU_VIV_BIN_MX6Q_VERSION = $(FREESCALE_IMX_VERSION)-sfp
+GPU_VIV_BIN_MX6Q_EXTRACT = gpu-viv-bin-mx6q-$(FREESCALE_IMX_VERSION)-sfp
 endif
 GPU_VIV_BIN_MX6Q_SITE    = $(FREESCALE_IMX_SITE)
-GPU_VIV_BIN_MX6Q_SOURCE  = gpu-viv-bin-mx6q-$(GPU_VIV_BIN_MX6Q_VERSION).bin
+GPU_VIV_BIN_MX6Q_SOURCE  = $(GPU_VIV_BIN_MX6Q_EXTRACT).bin
 
 GPU_VIV_BIN_MX6Q_INSTALL_STAGING = YES
 
@@ -37,8 +38,10 @@ endif
 # The --auto-accept skips the license check - not needed for us
 # because we have legal-info.
 define GPU_VIV_BIN_MX6Q_EXTRACT_CMDS
-	(cd $(BUILD_DIR); \
-		sh $(DL_DIR)/$(GPU_VIV_BIN_MX6Q_SOURCE) --force --auto-accept)
+	(cd $(@D); \
+		sh $(DL_DIR)/$(GPU_VIV_BIN_MX6Q_SOURCE) --force --auto-accept ; \
+		mv $(GPU_VIV_BIN_MX6Q_EXTRACT)/* ./ ; \
+		rm -rf $(GPU_VIV_BIN_MX6Q_EXTRACT)/)
 endef
 
 # Instead of building, we fix up the inconsistencies that exist
diff --git a/package/freescale-imx/imx-lib/imx-lib.mk b/package/freescale-imx/imx-lib/imx-lib.mk
index 4f605d7..124b376 100644
--- a/package/freescale-imx/imx-lib/imx-lib.mk
+++ b/package/freescale-imx/imx-lib/imx-lib.mk
@@ -8,7 +8,8 @@ IMX_LIB_VERSION = $(FREESCALE_IMX_VERSION)
 IMX_LIB_SITE    = $(FREESCALE_IMX_SITE)
 IMX_LIB_LICENSE = Freescale License (vpu), LGPLv2.1+ (the rest)
 IMX_LIB_LICENSE_FILES = EULA
-IMX_LIB_SOURCE = imx-lib-$(IMX_LIB_VERSION).bin
+IMX_LIB_EXTRACT = imx-lib-$(IMX_LIB_VERSION)
+IMX_LIB_SOURCE = $(IMX_LIB_EXTRACT).bin
 
 IMX_LIB_INSTALL_STAGING = YES
 
@@ -34,13 +35,15 @@ IMX_LIB_MAKE_ENV = \
 # Since there's a EULA in the bin file, extract it to imx-lib-x.y.z/EULA
 #
 define IMX_LIB_EXTRACT_CMDS
+	cd $(@D); \
+	sh $(DL_DIR)/$(IMX_LIB_SOURCE) --force --auto-accept ; \
+	mv $(IMX_LIB_EXTRACT)/* ./; \
+	rm -rf $(IMX_LIB_EXTRACT); \
 	awk 'BEGIN      { start=0; } \
 	     /^EOEULA/  { start = 0; } \
 	                { if (start) print; } \
 	     /<<EOEULA/ { start=1; }'\
-	    $(DL_DIR)/$(IMX_LIB_SOURCE) > $(@D)/EULA
-	cd $(BUILD_DIR); \
-	sh $(DL_DIR)/$(IMX_LIB_SOURCE) --force --auto-accept
+	    $(DL_DIR)/$(IMX_LIB_SOURCE) > EULA
 endef
 
 define IMX_LIB_BUILD_CMDS
diff --git a/package/libfslcodec/libfslcodec.mk b/package/libfslcodec/libfslcodec.mk
index d52158c..2baa4a4 100644
--- a/package/libfslcodec/libfslcodec.mk
+++ b/package/libfslcodec/libfslcodec.mk
@@ -6,7 +6,8 @@
 
 LIBFSLCODEC_VERSION = $(FREESCALE_IMX_VERSION)
 LIBFSLCODEC_SITE = $(FREESCALE_IMX_SITE)
-LIBFSLCODEC_SOURCE = libfslcodec-$(LIBFSLCODEC_VERSION).bin
+LIBFSLCODEC_EXTRACT = libfslcodec-$(LIBFSLCODEC_VERSION)
+LIBFSLCODEC_SOURCE = $(LIBFSLCODEC_EXTRACT).bin
 LIBFSLCODEC_LICENSE = Freescale Semiconductor Software License Agreement, BSD-3c (flac, ogg headers)
 LIBFSLCODEC_LICENSE_FILES = EULA EULA.txt
 # This is a legal minefield: the EULA in the bin file specifies that
@@ -24,13 +25,15 @@ LIBFSLCODEC_INSTALL_STAGING = YES
 # Since the EULA in the bin file differs from the one in the tar file,
 # extract the one from the bin file as well.
 define LIBFSLCODEC_EXTRACT_CMDS
+	cd $(@D); \
+	sh $(DL_DIR)/$(LIBFSLCODEC_SOURCE) --force --auto-accept ; \
+	mv $(LIBFSLCODEC_EXTRACT)/* ./ ; \
+	rm -rf $(LIBFSLCODEC_EXTRACT)/* ; \
 	awk 'BEGIN      { start=0; } \
 	     /^EOEULA/  { start = 0; } \
 	                { if (start) print; } \
 	     /<<EOEULA/ { start=1; }'\
 	    $(DL_DIR)/$(LIBFSLCODEC_SOURCE) > $(@D)/EULA
-	cd $(BUILD_DIR); \
-	sh $(DL_DIR)/$(LIBFSLCODEC_SOURCE) --force --auto-accept
 endef
 
 # FIXME The Makefile installs both the arm9 and arm11 versions of the
diff --git a/package/libfslparser/libfslparser.mk b/package/libfslparser/libfslparser.mk
index 0d92e02..4c4e903 100644
--- a/package/libfslparser/libfslparser.mk
+++ b/package/libfslparser/libfslparser.mk
@@ -6,7 +6,8 @@
 
 LIBFSLPARSER_VERSION = $(FREESCALE_IMX_VERSION)
 LIBFSLPARSER_SITE = $(FREESCALE_IMX_SITE)
-LIBFSLPARSER_SOURCE = libfslparser-$(LIBFSLPARSER_VERSION).bin
+LIBFSLPARSER_EXTRACT = libfslparser-$(LIBFSLPARSER_VERSION)
+LIBFSLPARSER_SOURCE = $(LIBFSLPARSER_EXTRACT).bin
 LIBFSLPARSER_LICENSE = Freescale Semiconductor Software License Agreement
 LIBFSLPARSER_LICENSE_FILES = EULA EULA.txt
 # This is a legal minefield: the EULA in the bin file specifies that
@@ -24,13 +25,15 @@ LIBFSLPARSER_INSTALL_STAGING = YES
 # Since the EULA in the bin file differs from the one in the tar file,
 # extract the one from the bin file as well.
 define LIBFSLPARSER_EXTRACT_CMDS
+	cd $(@D); \
+	sh $(DL_DIR)/$(LIBFSLPARSER_SOURCE) --force --auto-accept; \
+	mv $(LIBFSLPARSER_EXTRACT)/* ./; \
+	rm -rf $(LIBFSLPARSER_EXTRACT)/; \
 	awk 'BEGIN      { start=0; } \
 	     /^EOEULA/  { start = 0; } \
 	                { if (start) print; } \
 	     /<<EOEULA/ { start=1; }'\
 	    $(DL_DIR)/$(LIBFSLPARSER_SOURCE) > $(@D)/EULA
-	cd $(BUILD_DIR); \
-	sh $(DL_DIR)/$(LIBFSLPARSER_SOURCE) --force --auto-accept
 endef
 
 # The Makefile installs several versions of the libraries, but we only
diff --git a/package/libfslvpuwrap/libfslvpuwrap.mk b/package/libfslvpuwrap/libfslvpuwrap.mk
index 75c9887..67ac95b 100644
--- a/package/libfslvpuwrap/libfslvpuwrap.mk
+++ b/package/libfslvpuwrap/libfslvpuwrap.mk
@@ -6,7 +6,8 @@
 
 LIBFSLVPUWRAP_VERSION = $(FREESCALE_IMX_VERSION)
 LIBFSLVPUWRAP_SITE = $(FREESCALE_IMX_SITE)
-LIBFSLVPUWRAP_SOURCE = libfslvpuwrap-$(LIBFSLVPUWRAP_VERSION).bin
+LIBFSLVPUWRAP_EXTRACT = libfslvpuwrap-$(LIBFSLVPUWRAP_VERSION)
+LIBFSLVPUWRAP_SOURCE = $(LIBFSLVPUWRAP_EXTRACT).bin
 LIBFSLVPUWRAP_LICENSE = Freescale Semiconductor Software License Agreement
 # N.B.: the content of the two license files is different
 LIBFSLVPUWRAP_LICENSE_FILES = EULA EULA.txt
@@ -24,13 +25,15 @@ LIBFSLVPUWRAP_DEPENDENCIES += imx-lib
 # Since the EULA in the bin file differs from the one in the tar file,
 # extract the one from the bin file as well.
 define LIBFSLVPUWRAP_EXTRACT_CMDS
+	cd $(@D); \
+	sh $(DL_DIR)/$(LIBFSLVPUWRAP_SOURCE) --force --auto-accept; \
+	mv $(LIBFSLVPUWRAP_EXTRACT)/* ./; \
+	rm -rf $(LIBFSLVPUWRAP_EXTRACT); \
 	awk 'BEGIN      { start=0; } \
 	     /^EOEULA/  { start = 0; } \
 	                { if (start) print; } \
 	     /<<EOEULA/ { start=1; }'\
 	    $(DL_DIR)/$(LIBFSLVPUWRAP_SOURCE) > $(@D)/EULA
-	cd $(BUILD_DIR); \
-	sh $(DL_DIR)/$(LIBFSLVPUWRAP_SOURCE) --force --auto-accept
 endef
 
 $(eval $(autotools-package))
-- 
1.8.3.2

  parent reply	other threads:[~2014-02-14  0:26 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-14  0:26 [Buildroot] [PATCH V5 0/3] i.MX: Updates to Freescale acceleration Eric Nelson
2014-02-14  0:26 ` [Buildroot] [PATCH V5 1/3] i.MX: Use FREESCALE_IMX_SITE for Freescale packages Eric Nelson
2014-02-14 20:16   ` Peter Korsgaard
2014-02-14  0:26 ` [Buildroot] [PATCH V5 2/3] i.MX: Update versions to match latest Freescale release Eric Nelson
2014-02-14 20:19   ` Peter Korsgaard
2014-02-14  0:26 ` Eric Nelson [this message]
2014-02-14  8:25   ` [Buildroot] [PATCH V5 3/3] i.MX: use temp directory for Freescale self-extractors Thomas Petazzoni
2014-02-14 15:18     ` Eric Nelson
2014-02-14 19:03   ` Yann E. MORIN
2014-02-14 20:11     ` Eric Nelson
2014-02-14 20:20       ` Peter Korsgaard

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=1392337580-16568-4-git-send-email-eric.nelson@boundarydevices.com \
    --to=eric.nelson@boundarydevices.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