diff options
author | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-01-22 17:28:54 +0100 |
---|---|---|
committer | Abdoulaye Walsimou Gaye <awg@embtoolkit.org> | 2012-01-22 17:28:54 +0100 |
commit | 81f74bc52ec7378781696174c83bbcbfe07e5141 (patch) | |
tree | a39692da98654db4469b5c7042b0225d7bc15593 /mk | |
parent | 316c10a1bf3a2ce5e3889aeb1965eb40e0d07a06 (diff) | |
download | embtoolkit-81f74bc52ec7378781696174c83bbcbfe07e5141.tar.gz embtoolkit-81f74bc52ec7378781696174c83bbcbfe07e5141.tar.bz2 embtoolkit-81f74bc52ec7378781696174c83bbcbfe07e5141.tar.xz |
RootFS: rework a little the makefile
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
Diffstat (limited to 'mk')
-rw-r--r-- | mk/rootfs.mk | 119 |
1 files changed, 62 insertions, 57 deletions
diff --git a/mk/rootfs.mk b/mk/rootfs.mk index dd0a8fd..dd652a2 100644 --- a/mk/rootfs.mk +++ b/mk/rootfs.mk @@ -26,7 +26,6 @@ ifeq ($(CONFIG_EMBTK_HAVE_ROOTFS),y) ROOTFS_HOSTTOOLS-y := -ROOTFS_HOSTTOOLS_CLEAN-y := FILESYSTEMS-y := #include various filesystems targets @@ -66,70 +65,76 @@ ROOTFS_STRIPPED_FILES += `[ -d $$ROOTFS/usr/sbin ] && find $$ROOTFS/usr/sbin -ty ROOTFS_STRIPPED_FILES += `[ -d $$ROOTFS/usr/libexec ] && find $$ROOTFS/usr/libexec -type f` endif -ROOTFS_BUILD_DEPS := rootfs_clean mkinitialrootfs $(ROOTFS_HOSTTOOLS-y) -ROOTFS_BUILD_DEPS += $(ROOTFS_COMPONENTS-y) build_rootfs_devnodes -ROOTFS_BUILD_DEPS += rootfs_fill build_tarbz2_rootfs $(FILESYSTEMS-y) +define __embtk_rootfs_mkdevnodes + $(call embtk_pinfo,"Populating devices nodes of the rootfs...") + $(FAKEROOT_BIN) -s $(FAKEROOT_ENV_FILE) -- $(MAKEDEVS_BIN) \ + -d $(EMBTK_ROOT)/src/devices_table.txt $(ROOTFS) +endef -rootfs_build: - $(call embtk_pinfo,"Building selected root filesystems...") - $(Q)$(MAKE) $(ROOTFS_BUILD_DEPS) - $(Q)rm -rf $(ROOTFS) - $(call embtk_pinfo,"Selected root filesystems built successfully!") +define __embtk_rootfs_cleanup + $(foreach pkg-n,$(__embtk_rootfs_pkgs-n),$(MAKE) $(pkg-n)_clean;) + rm -rf $(EMBTK_GENERATED)/rootfs-$(GNU_TARGET)-$(EMBTK_MCU_FLAG)* + rm -rf $(EMBTK_GENERATED)/initramfs-$(GNU_TARGET)-$(EMBTK_MCU_FLAG)* +endef -rootfs_fill: - @mkdir -p $(ROOTFS)/$(LIBDIR) - @mkdir -p $(ROOTFS)/lib - @mkdir -p $(ROOTFS)/usr - @mkdir -p $(ROOTFS)/usr/$(LIBDIR) - @mkdir -p $(ROOTFS)/usr/lib -ifeq ($(CONFIG_EMBTK_64BITS_FS),y) - @cd $(ROOTFS); ln -s lib lib64 - @cd $(ROOTFS)/usr; ln -s lib lib64 -endif -ifeq ($(CONFIG_EMBTK_64BITS_FS_COMPAT32),y) - @cd $(ROOTFS); ln -s lib lib64 - @cd $(ROOTFS)/usr; ln -s lib lib64 -endif - @-cp -d $(SYSROOT)/lib/*.so* $(ROOTFS)/lib/ - @-cp -d $(SYSROOT)/usr/lib/*.so* $(ROOTFS)/usr/lib/ -ifeq ($(CONFIG_EMBTK_64BITS_FS_COMPAT32),y) - @-cp -d $(SYSROOT)/lib32/*.so* $(ROOTFS)/lib32/ - @-cp -d $(SYSROOT)/usr/lib32/*.so* $(ROOTFS)/usr/lib32/ -endif - @-cp -R $(SYSROOT)/bin/* $(ROOTFS)/bin/ >/dev/null 2>/dev/null - @-cp -R $(SYSROOT)/usr/bin/* $(ROOTFS)/usr/bin/ - @-cp -R $(SYSROOT)/sbin/* $(ROOTFS)/sbin/ >/dev/null 2>/dev/null - @-cp -R $(SYSROOT)/usr/sbin/* $(ROOTFS)/usr/sbin/ - @-cp -R $(SYSROOT)/etc/* $(ROOTFS)/etc/ >/dev/null 2>/dev/null - @cp -R $(SYSROOT)/root $(ROOTFS)/ -ifeq ($(CONFIG_EMBTK_TARGET_STRIPPED),y) - $(call embtk_pinfo,"Stripping binaries as specified...") - @-$(FAKEROOT_BIN) -i $(EMBTK_ROOT)/.fakeroot.001 -- \ - $(TARGETSTRIP) $(ROOTFS_STRIPPED_FILES) >/dev/null 2>&1 -endif - @-$(FAKEROOT_BIN) -i $(EMBTK_ROOT)/.fakeroot.001 -- \ - rm -rf `find $$ROOTFS -type f -name *.la` +define __embtk_rootfs_mkinitpath + mkdir -p $(ROOTFS) + cp -Rp $(EMBTK_ROOT)/src/target_skeleton/* $(ROOTFS) + mkdir -p $(PACKAGES_BUILD) + $(if $(CONFIG_EMBTK_64BITS_FS_COMPAT32), + mkdir -p $(ROOTFS)/lib32 + mkdir -p $(ROOTFS)/usr/lib32) +endef -mkinitialrootfs: - @mkdir -p $(ROOTFS) - @cp -Rp $(EMBTK_ROOT)/src/target_skeleton/* $(ROOTFS)/ - @mkdir -p $(PACKAGES_BUILD) -ifeq ($(CONFIG_EMBTK_64BITS_FS_COMPAT32),y) - @mkdir -p $(ROOTFS)/lib32 - @mkdir -p $(ROOTFS)/usr/lib32 -endif - @mkdir -p $(PACKAGES_BUILD) +define __embtk_rootfs_fill + mkdir -p $(ROOTFS)/$(LIBDIR) + mkdir -p $(ROOTFS)/lib + mkdir -p $(ROOTFS)/usr + mkdir -p $(ROOTFS)/usr/$(LIBDIR) + mkdir -p $(ROOTFS)/usr/lib + $(if $(CONFIG_EMBTK_64BITS_FS), + cd $(ROOTFS); ln -s lib lib64 + cd $(ROOTFS)/usr; ln -s lib lib64) + $(if $(CONFIG_EMBTK_64BITS_FS_COMPAT32), + cd $(ROOTFS); ln -s lib lib64 + cd $(ROOTFS)/usr; ln -s lib lib64) + -cp -d $(SYSROOT)/lib/*.so* $(ROOTFS)/lib/ + -cp -d $(SYSROOT)/usr/lib/*.so* $(ROOTFS)/usr/lib/ + $(if $(CONFIG_EMBTK_64BITS_FS_COMPAT32), + -cp -d $(SYSROOT)/lib32/*.so* $(ROOTFS)/lib32/ + -cp -d $(SYSROOT)/usr/lib32/*.so* $(ROOTFS)/usr/lib32/) + -cp -R $(SYSROOT)/bin/* $(ROOTFS)/bin/ >/dev/null 2>/dev/null + -cp -R $(SYSROOT)/usr/bin/* $(ROOTFS)/usr/bin/ + -cp -R $(SYSROOT)/sbin/* $(ROOTFS)/sbin/ >/dev/null 2>/dev/null + -cp -R $(SYSROOT)/usr/sbin/* $(ROOTFS)/usr/sbin/ + -cp -R $(SYSROOT)/etc/* $(ROOTFS)/etc/ >/dev/null 2>/dev/null + cp -R $(SYSROOT)/root $(ROOTFS)/ + $(if $(CONFIG_EMBTK_TARGET_STRIPPED), + $(call embtk_pinfo,"Stripping binaries as specified...") + -$(FAKEROOT_BIN) -i $(EMBTK_ROOT)/.fakeroot.001 -- \ + $(TARGETSTRIP) $(ROOTFS_STRIPPED_FILES) >/dev/null 2>&1) + -$(FAKEROOT_BIN) -i $(EMBTK_ROOT)/.fakeroot.001 -- \ + rm -rf `find $$ROOTFS -type f -name *.la` +endef -rootfs_clean: $(ROOTFS_HOSTTOOLS_CLEAN) $(ROOTFS_COMPONENTS_CLEAN) - @rm -rf $(EMBTK_GENERATED)/rootfs-$(GNU_TARGET)-$(EMBTK_MCU_FLAG)* - @rm -rf $(EMBTK_GENERATED)/initramfs-$(GNU_TARGET)-$(EMBTK_MCU_FLAG)* +define __embtk_rootfs_build + $(call embtk_pinfo,"Building selected root filesystems - please wait...") + $(__embtk_rootfs_cleanup) + $(__embtk_rootfs_mkinitpath) + $(MAKE) $(ROOTFS_HOSTTOOLS-y) $(ROOTFS_COMPONENTS-y) + $(__embtk_rootfs_mkdevnodes) + $(__embtk_rootfs_fill) + $(MAKE) build_tarbz2_rootfs $(FILESYSTEMS-y) + rm -rf $(ROOTFS) + $(call embtk_pinfo,"Selected root filesystems built successfully!") +endef + +rootfs_build: + $(Q)$(__embtk_rootfs_build) # Download target for offline build packages_fetch:: $(patsubst %_install,download_%,$(ROOTFS_HOSTTOOLS-y)) else rootfs_build: $(call embtk_pinfo,"Build of root filesystem not selected") - -rootfs_clean: $(ROOTFS_HOSTTOOLS_CLEAN) - true endif |