summaryrefslogtreecommitdiff
path: root/mk
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-01-22 17:28:54 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2012-01-22 17:28:54 +0100
commit81f74bc52ec7378781696174c83bbcbfe07e5141 (patch)
treea39692da98654db4469b5c7042b0225d7bc15593 /mk
parent316c10a1bf3a2ce5e3889aeb1965eb40e0d07a06 (diff)
downloadembtoolkit-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.mk119
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