From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?ISO-8859-1?Q?Stefan_Fr=F6berg?= Date: Wed, 16 Jan 2013 21:22:41 +0200 Subject: [Buildroot] [PATCH 1/5] Add a post-image script mechanism In-Reply-To: <1358363393-29977-2-git-send-email-thomas.petazzoni@free-electrons.com> References: <1358363393-29977-1-git-send-email-thomas.petazzoni@free-electrons.com> <1358363393-29977-2-git-send-email-thomas.petazzoni@free-electrons.com> Message-ID: <50F6FE01.2080205@petroprogram.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net 16.1.2013 21:09, Thomas Petazzoni kirjoitti: > Just like we have a post-build script mechanism that gets executed > after the build of all packages but before the creation of the > filesystem images, let's introduce a post-image script mechanism, that > gets executed once all filesystem images have been generated. > > This can for example be used to call a tool building a firmware image > from different images generated by Buildroot, or automatically extract > the tarball root filesystem image into some location exported by NFS, > or any other custom action. > > Signed-off-by: Thomas Petazzoni > --- > Makefile | 9 +++++++++ > system/Config.in | 18 ++++++++++++++++++ > 2 files changed, 27 insertions(+) > > diff --git a/Makefile b/Makefile > index 6f8ed0e..88b5a85 100644 > --- a/Makefile > +++ b/Makefile > @@ -353,6 +353,8 @@ endif > > include fs/common.mk > > +TARGETS+=target-post-image > + > TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS)) > TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS)) > TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS)) > @@ -548,6 +550,13 @@ target-generatelocales: host-localedef > done > endif > > +target-post-image: > +ifneq ($(BR2_ROOTFS_POST_IMAGE_SCRIPT),) > + @$(call MESSAGE,"Executing post-image script\(s\)") > + @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \ > + $(s) $(BINARIES_DIR)$(sep)) > +endif > + > toolchain-eclipse-register: > ./support/scripts/eclipse-register-toolchain `readlink -f $(O)` $(notdir $(TARGET_CROSS)) $(BR2_ARCH) > > diff --git a/system/Config.in b/system/Config.in > index 69863c4..1ffe8a0 100644 > --- a/system/Config.in > +++ b/system/Config.in > @@ -265,4 +265,22 @@ config BR2_ROOTFS_POST_BUILD_SCRIPT > only argument. Make sure the exit code of those scripts are 0, > otherwise make will stop after calling them. > > +config BR2_ROOTFS_POST_IMAGE_SCRIPT > + string "Custom script to run after creating filesystem images" > + default "" > + help > + Specify a space-separated list of scripts to be run after > + the build has finished and after Buildroot has packed the > + files into selected filesystem images. > + > + This can for example be used to call a tool building a > + firmware image from different images generated by Buildroot, > + or automatically extract the tarball root filesystem image > + into some location exported by NFS, or any other custom > + action. > + > + These scripts are called with the images directory name as > + first and only argument. The script is executed from the > + main Buildroot source directory as the current directory. > + > endmenu Nice. I know exactly what Im going to use this mechanism for. Packing target binaries with UPX (http://upx.sourceforge.net/) at the end of image creation. Every byte counts :-) Regards Stefan