* [Buildroot] rootfs hooks okay to use? @ 2012-09-19 1:44 Danomi Manchego 2012-09-19 5:14 ` Thomas Petazzoni 2012-09-19 6:19 ` Arnout Vandecappelle 0 siblings, 2 replies; 6+ messages in thread From: Danomi Manchego @ 2012-09-19 1:44 UTC (permalink / raw) To: buildroot Hi all, I tried adding something like this to one of our proprietary packages: +define TEST_PRE_GEN_HOOK_FIXUP + echo "This is a test hook" +endef + +ROOTFS_CRAMFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_CLOOP_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_EXT2_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_JFFS2_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_UBIFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_SQUASHFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_TAR_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_CPIO_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_ISO9660_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_INITRAMFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP +ROOTFS_ROMFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP But when I run make, I get: fs/cpio/cpio.mk:32: *** missing separator (did you mean TAB instead of 8 spaces?). Stop. make: *** [all] Error 2 So - are the rootfs hooks okay for general use, or are they reserved strictly for fs/*/*.mk use? Thanks again, Danomi - -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120918/62815c5c/attachment.html> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] rootfs hooks okay to use? 2012-09-19 1:44 [Buildroot] rootfs hooks okay to use? Danomi Manchego @ 2012-09-19 5:14 ` Thomas Petazzoni 2012-09-20 1:58 ` Danomi Manchego 2012-09-19 6:19 ` Arnout Vandecappelle 1 sibling, 1 reply; 6+ messages in thread From: Thomas Petazzoni @ 2012-09-19 5:14 UTC (permalink / raw) To: buildroot Dear Danomi Manchego, On Tue, 18 Sep 2012 21:44:14 -0400, Danomi Manchego wrote: > So - are the rootfs hooks okay for general use, or are they reserved > strictly for fs/*/*.mk use? Depends on what you want them to do. What are you trying to do, in the end? Thomas -- Thomas Petazzoni, Free Electrons Kernel, drivers, real-time and embedded Linux development, consulting, training and support. http://free-electrons.com ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] rootfs hooks okay to use? 2012-09-19 5:14 ` Thomas Petazzoni @ 2012-09-20 1:58 ` Danomi Manchego 0 siblings, 0 replies; 6+ messages in thread From: Danomi Manchego @ 2012-09-20 1:58 UTC (permalink / raw) To: buildroot Thomas, On Wed, Sep 19, 2012 at 1:14 AM, Thomas Petazzoni < thomas.petazzoni@free-electrons.com> wrote: >> So - are the rootfs hooks okay for general use, or are they reserved >> strictly for fs/*/*.mk use? > >Depends on what you want them to do. What are you trying to do, in the >end? WRT if multiple hooks can be used, does it matter? I have a single setup that is supporting two different hardware configurations, one with the serial port on ttyO2, and the other on ttyO0. I'm already using a custom skeleton, but since the only difference and a rootfs custom script. Since the difference in getty setup is so small, I don't want to maintain a completely separate skeleton, when a simple sed line would do. Using the rootfs custom script is possible, but then I have to call "make" again, since the script doesn't know any of the variables, other than the target directory. So adding a simple hook seems like a good way to go, and I'd like to make it as late in the process as possible. The rootfs hooks seemed like a suitable fit. Since the package hooks let me add multiple hooks, I expected the rootfs hooks to do so too ... Danomi - -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120919/02042aa5/attachment.html> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] rootfs hooks okay to use? 2012-09-19 1:44 [Buildroot] rootfs hooks okay to use? Danomi Manchego 2012-09-19 5:14 ` Thomas Petazzoni @ 2012-09-19 6:19 ` Arnout Vandecappelle 2012-09-20 2:38 ` Danomi Manchego 1 sibling, 1 reply; 6+ messages in thread From: Arnout Vandecappelle @ 2012-09-19 6:19 UTC (permalink / raw) To: buildroot On 09/19/12 03:44, Danomi Manchego wrote: > Hi all, > > I tried adding something like this to one of our proprietary packages: > > +define TEST_PRE_GEN_HOOK_FIXUP > + echo "This is a test hook" > +endef > + > +ROOTFS_CRAMFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_CLOOP_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_EXT2_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_JFFS2_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_UBIFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_SQUASHFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_TAR_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_CPIO_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_ISO9660_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_INITRAMFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > +ROOTFS_ROMFS_PRE_GEN_HOOKS += TEST_PRE_GEN_HOOK_FIXUP > > But when I run make, I get: > > fs/cpio/cpio.mk:32 <http://cpio.mk:32>: *** missing separator (did you mean TAB instead of 8 spaces?). Stop. > make: *** [all] Error 2 Any commands to be executed by make should start with a TAB character, so make recognizes them as commands. That is also true for the hooks. So you should define define TEST_PRE_GEN_HOOK_FIXUP echo "This is a test hook" endef where there is a single tab before echo. Regards, Arnout -- Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286540 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] rootfs hooks okay to use? 2012-09-19 6:19 ` Arnout Vandecappelle @ 2012-09-20 2:38 ` Danomi Manchego 2012-09-20 3:56 ` Danomi Manchego 0 siblings, 1 reply; 6+ messages in thread From: Danomi Manchego @ 2012-09-20 2:38 UTC (permalink / raw) To: buildroot Arnout. On Wed, Sep 19, 2012 at 2:19 AM, Arnout Vandecappelle <arnout@mind.be>wrote: > Any commands to be executed by make should start with a TAB character, > so make recognizes them as commands. I don't think so. If I change the beginning of my both my TEST_PRE_GEN_HOOK_FIXUP and the ROOTFS_CPIO_ADD_INIT to start with tabs, the error changes to: fs/cpio/cpio.mk:35: *** missing separator. Stop. make: *** [all] Error 2 On the other hand, the package hooks have no problem with multiple hooks and no tabs. For example, this works without any errors: +define TEST_HOOK_FIXUP1 + echo "This is a test hook1" +endef + +define TEST_HOOK_FIXUP2 + echo "This is a test hook2" +endef + +ZLIB_POST_INSTALL_TARGET_HOOKS += TEST_HOOK_FIXUP1 +ZLIB_POST_INSTALL_TARGET_HOOKS += TEST_HOOK_FIXUP2 However, I think I've figured it out the difference. The rootfs hooks are iterated by a foreach statement in fs/common.mk in ROOTFS_TARGET_INTERNAL. But ROOTFS_TARGET_INTERNAL is actually a template, so the single $ are evaluated by the $(eval $(call ROOTFS_TARGET,xxxx)). But if the single $ are replaced by double $, then the foreach evaluation is deferred to later. Then, the multiple hooks seem to work. The specific change is: $(BINARIES_DIR)/rootfs.$(1): $(ROOTFS_$(2)_DEPENDENCIES) @$(call MESSAGE,"Generating root filesystem image rootfs.$(1)") - $(foreach hook,$(ROOTFS_$(2)_PRE_GEN_HOOKS),$(call $(hook))$(sep)) + $$(foreach hook,$$(ROOTFS_$(2)_PRE_GEN_HOOKS),$$(call $$(hook))$$(sep)) rm -f $(FAKEROOT_SCRIPT) So if the hooks are supposed to be generally available for tacking on more actions, then I think we need the double $'s ... Danomi - -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120919/0b36ccc8/attachment-0001.html> ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] rootfs hooks okay to use? 2012-09-20 2:38 ` Danomi Manchego @ 2012-09-20 3:56 ` Danomi Manchego 0 siblings, 0 replies; 6+ messages in thread From: Danomi Manchego @ 2012-09-20 3:56 UTC (permalink / raw) To: buildroot Arnout, Thomas, Please disregard this thread. After some reconsideration, i've decided to abandon this approach. There are certainly plenty of alternatives ways to do what I need to do. It is probably best for me not to stir up trouble. Apologies, apologies, apologies. Danomi - -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20120919/80d5efa8/attachment.html> ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2012-09-20 3:56 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-09-19 1:44 [Buildroot] rootfs hooks okay to use? Danomi Manchego 2012-09-19 5:14 ` Thomas Petazzoni 2012-09-20 1:58 ` Danomi Manchego 2012-09-19 6:19 ` Arnout Vandecappelle 2012-09-20 2:38 ` Danomi Manchego 2012-09-20 3:56 ` Danomi Manchego
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox