|
@@ -57,53 +57,26 @@ GLOBAL_INSTRUMENTATION_HOOKS += step_time
|
|
|
|
|
|
# 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
|
|
|
|