pass HOST_ variables, not BUILD_
[buildroot.git] / target / squashfs / squashfsroot.mk
blobf8956be9e9528f1f5081e59d7f48a7aa11891f4d
1 #############################################################
3 # mksquashfs to build to target squashfs filesystems
5 #############################################################
6 SQUASHFS_VERSION:=3.2-r2
7 SQUASHFS_DIR:=$(BUILD_DIR)/squashfs$(SQUASHFS_VERSION)
8 SQUASHFS_SOURCE:=squashfs$(SQUASHFS_VERSION).tar.gz
9 SQUASHFS_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/squashfs
10 SQUASHFS_CAT:=$(ZCAT)
12 $(DL_DIR)/$(SQUASHFS_SOURCE):
13 $(WGET) -P $(DL_DIR) $(SQUASHFS_SITE)/$(SQUASHFS_SOURCE)
15 $(SQUASHFS_DIR)/.unpacked: $(DL_DIR)/$(SQUASHFS_SOURCE) #$(SQUASHFS_PATCH)
16 $(SQUASHFS_CAT) $(DL_DIR)/$(SQUASHFS_SOURCE) | tar -C $(BUILD_DIR) -xvf -
17 toolchain/patch-kernel.sh $(SQUASHFS_DIR) target/squashfs/ squashfs\*.patch
18 touch $@
20 $(SQUASHFS_DIR)/squashfs-tools/mksquashfs: $(SQUASHFS_DIR)/.unpacked
21 $(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools
23 squashfs: $(SQUASHFS_DIR)/squashfs-tools/mksquashfs
25 squashfs-source: $(DL_DIR)/$(SQUASHFS_SOURCE)
27 squashfs-clean:
28 -$(MAKE) -C $(SQUASHFS_DIR)/squashfs-tools clean
30 squashfs-dirclean:
31 rm -rf $(SQUASHFS_DIR)
33 #############################################################
35 # Build the squashfs root filesystem image
37 #############################################################
38 ifeq ($(BR2_ENDIAN),"BIG")
39 SQUASHFS_ENDIANNESS=-be
40 else
41 SQUASHFS_ENDIANNESS=-le
42 endif
44 SQUASHFS_TARGET:=$(IMAGE).squashfs
46 squashfsroot: host-fakeroot makedevs squashfs
47 -@find $(TARGET_DIR) -type f -perm +111 | xargs $(STRIPCMD) 2>/dev/null || true
48 ifneq ($(BR2_HAVE_MANPAGES),y)
49 @rm -rf $(TARGET_DIR)/usr/share/man
50 endif
51 ifneq ($(BR2_HAVE_INFOPAGES),y)
52 @rm -rf $(TARGET_DIR)/usr/share/info
53 endif
54 $(if $(TARGET_LDCONFIG),test ! -x $(TARGET_LDCONFIG) && true || $(TARGET_LDCONFIG) -r $(TARGET_DIR) 2>/dev/null)
55 # Use fakeroot to pretend all target binaries are owned by root
56 rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
57 touch $(PROJECT_BUILD_DIR)/.fakeroot.00000
58 cat $(PROJECT_BUILD_DIR)/.fakeroot* > $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
59 echo "chown -R 0:0 $(TARGET_DIR)" >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
60 ifneq ($(TARGET_DEVICE_TABLE),)
61 # Use fakeroot to pretend to create all needed device nodes
62 echo "$(STAGING_DIR)/bin/makedevs -d $(TARGET_DEVICE_TABLE) $(TARGET_DIR)" \
63 >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
64 endif
65 # Use fakeroot so mksquashfs believes the previous fakery
66 echo "$(SQUASHFS_DIR)/squashfs-tools/mksquashfs " \
67 "$(TARGET_DIR) $(SQUASHFS_TARGET) " \
68 "-noappend $(SQUASHFS_ENDIANNESS)" \
69 >> $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
70 chmod a+x $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
71 $(STAGING_DIR)/usr/bin/fakeroot -- $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
72 -@rm -f $(PROJECT_BUILD_DIR)/_fakeroot.$(notdir $(SQUASHFS_TARGET))
74 squashfsroot-source: squashfs-source
76 squashfsroot-clean:
77 -$(MAKE) -C $(SQUASHFS_DIR) clean
79 squashfsroot-dirclean:
80 rm -rf $(SQUASHFS_DIR)
82 #############################################################
84 # Toplevel Makefile options
86 #############################################################
87 ifeq ($(BR2_TARGET_ROOTFS_SQUASHFS),y)
88 TARGETS+=squashfsroot
89 endif