# Hooks to collect statistics about installed files
-define _step_pkg_size_get_file_list
- (cd $(2) ; \
- ( \
- find . -xtype f -print0 | xargs -0 md5sum ; \
- find . -xtype d -print0 | xargs -0 -I{} printf 'directory {}\n'; \
- ) \
- ) | sort > $1
-endef
-
-# This hook will be called before the installation of a package. We store in
-# a file named .br_filelist_before the list of files currently installed.
-# Note that the MD5 is also stored, in order to identify if the files are
-# overwritten.
-# $(1): package name (ignored)
-# $(2): base directory to search in
-define step_pkg_size_start
- $(call _step_pkg_size_get_file_list,$($(PKG)_DIR)/.br_filelist_before,$(2))
-endef
-
-# This hook will be called after the installation of a package. We store in
-# a file named .br_filelist_after the list of files (and their MD5) currently
-# installed. We then do a diff with the .br_filelist_before to compute the
-# list of files installed by this package.
# The suffix is typically empty for the target variant, for legacy backward
# compatibility.
-# $(1): package name (ignored)
+# $(1): package name
# $(2): base directory to search in
# $(3): suffix of file (optional)
-define step_pkg_size_end
- $(call _step_pkg_size_get_file_list,$($(PKG)_DIR)/.br_filelist_after,$(2))
- comm -13 $($(PKG)_DIR)/.br_filelist_before $($(PKG)_DIR)/.br_filelist_after | \
- while read hash file ; do \
- echo "$(1),$${file}" ; \
- done >> $(BUILD_DIR)/packages-file-list$(3).txt
- rm -f $($(PKG)_DIR)/.br_filelist_before $($(PKG)_DIR)/.br_filelist_after
+define step_pkg_size_inner
+ cd $(2); \
+ find . \( -type f -o -type l \) \
+ -newer $($(PKG)_DIR)/.stamp_built \
+ -exec printf '$(1),%s\n' {} + \
+ >> $(BUILD_DIR)/packages-file-list$(3).txt
endef
define step_pkg_size
$(if $(filter install-target,$(2)),\
- $(if $(filter start,$(1)),$(call step_pkg_size_start,$(3),$(TARGET_DIR))) \
- $(if $(filter end,$(1)),$(call step_pkg_size_end,$(3),$(TARGET_DIR))))
+ $(if $(filter end,$(1)),$(call step_pkg_size_inner,$(3),$(TARGET_DIR))))
$(if $(filter install-staging,$(2)),\
- $(if $(filter start,$(1)),$(call step_pkg_size_start,$(3),$(STAGING_DIR),-staging)) \
- $(if $(filter end,$(1)),$(call step_pkg_size_end,$(3),$(STAGING_DIR),-staging)))
+ $(if $(filter end,$(1)),$(call step_pkg_size_inner,$(3),$(STAGING_DIR),-staging)))
$(if $(filter install-host,$(2)),\
- $(if $(filter start,$(1)),$(call step_pkg_size_start,$(3),$(HOST_DIR),-host)) \
- $(if $(filter end,$(1)),$(call step_pkg_size_end,$(3),$(HOST_DIR),-host)))
+ $(if $(filter end,$(1)),$(call step_pkg_size_inner,$(3),$(HOST_DIR),-host)))
endef
GLOBAL_INSTRUMENTATION_HOOKS += step_pkg_size