diff options
author | Hamish Moffatt <hamish@cloud.net.au> | 2008-04-02 00:18:57 +0000 |
---|---|---|
committer | Hamish Moffatt <hamish@cloud.net.au> | 2008-04-02 00:18:57 +0000 |
commit | 4b01dfced94424a32b9d2dc57276a469c28092c5 (patch) | |
tree | ffe774a4b4634d61457fcf15a4ab296fb3ecefb6 | |
parent | 90ee3a0561f08ad977d7da9d968bcbd0c7efcd8f (diff) | |
download | buildroot-novena-4b01dfced94424a32b9d2dc57276a469c28092c5.tar.gz buildroot-novena-4b01dfced94424a32b9d2dc57276a469c28092c5.zip |
Add romfs target support, courtesy Josh <buildroot@digitalpeer.com>
-rw-r--r-- | target/Config.in | 1 | ||||
-rw-r--r-- | target/romfs/Config.in | 7 | ||||
-rw-r--r-- | target/romfs/romfs.mk | 79 |
3 files changed, 87 insertions, 0 deletions
diff --git a/target/Config.in b/target/Config.in index edd7c601b..385d7ffb3 100644 --- a/target/Config.in +++ b/target/Config.in @@ -11,6 +11,7 @@ source "target/tar/Config.in" source "target/cpio/Config.in" source "target/iso9660/Config.in" source "target/initramfs/Config.in" +source "target/romfs/Config.in" comment "bootloader for target device" diff --git a/target/romfs/Config.in b/target/romfs/Config.in new file mode 100644 index 000000000..e34242c0a --- /dev/null +++ b/target/romfs/Config.in @@ -0,0 +1,7 @@ +config BR2_TARGET_ROOTFS_ROMFS + bool "romfs root filesystem" + default n + select BR2_HOST_FAKEROOT + help + Build a romfs image of the root filesystem. + diff --git a/target/romfs/romfs.mk b/target/romfs/romfs.mk new file mode 100644 index 000000000..8fa4c9afd --- /dev/null +++ b/target/romfs/romfs.mk @@ -0,0 +1,79 @@ +############################################################# +# +# genromfs to build to target romfs filesystems +# +############################################################# +ROMFS_VERSION=0.5.2 +ROMFS_DIR=$(BUILD_DIR)/genromfs-$(ROMFS_VERSION) +ROMFS_SOURCE=genromfs-$(ROMFS_VERSION).tar.gz +ROMFS_SITE=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/romfs + +$(DL_DIR)/$(ROMFS_SOURCE): + $(WGET) -P $(DL_DIR) $(ROMFS_SITE)/$(ROMFS_SOURCE) + +$(ROMFS_DIR): $(DL_DIR)/$(ROMFS_SOURCE) + $(ZCAT) $(DL_DIR)/$(ROMFS_SOURCE) | tar -C $(BUILD_DIR) -xvf - + +$(ROMFS_DIR)/genromfs: $(ROMFS_DIR) + $(MAKE) -C $(ROMFS_DIR) + touch -c $@ + +romfs: $(ROMFS_DIR)/genromfs + +romfs-source: $(DL_DIR)/$(ROMFS_SOURCE) + +romfs-clean: + -$(MAKE) -C $(ROMFS_DIR) clean + +romfs-dirclean: + rm -rf $(ROMFS_DIR) + +############################################################# +# +# Build the romfs root filesystem image +# +############################################################# + +ROMFS_TARGET=$(IMAGE).romfs + +romfsroot: host-fakeroot makedevs romfs + -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true +ifneq ($(BR2_HAVE_MANPAGES),y) + @rm -rf $(TARGET_DIR)/usr/man +endif +ifneq ($(BR2_HAVE_INFOPAGES),y) + @rm -rf $(TARGET_DIR)/usr/info +endif + $(if $(TARGET_LDCONFIG),test -x $(TARGET_LDCONFIG) && $(TARGET_LDCONFIG) -r $(TARGET_DIR) 2>/dev/null) + # Use fakeroot to pretend all target binaries are owned by root + rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + touch $(PROJECT_BUILD_DIR)/.fakeroot.00000 + cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) +ifneq ($(TARGET_DEVICE_TABLE),) + # Use fakeroot to pretend to create all needed device nodes + echo "$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \ + >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) +endif + # Use fakeroot so genromfs believes the previous fakery + echo "$(ROMFS_DIR)/genromfs -d $(TARGET_DIR) -f $(ROMFS_TARGET)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + $(STAGING_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + -@rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(ROMFS_TARGET)) + +romfsroot-source: romfs-source + +romfsroot-clean: + -$(MAKE) -C $(ROMFS_DIR) clean + +romfsroot-dirclean: + rm -rf $(ROMFS_DIR) + +############################################################# +# +# Toplevel Makefile options +# +############################################################# +ifeq ($(strip $(BR2_TARGET_ROOTFS_ROMFS)),y) +TARGETS+=romfsroot +endif |