There it can be reused by eclasses & ebuilds.
---
 gx86/eclass/autotools-multilib.eclass | 29 +-------------------------
 gx86/eclass/multilib-build.eclass     | 38 +++++++++++++++++++++++++++++++++++
 2 files changed, 39 insertions(+), 28 deletions(-)

diff --git a/gx86/eclass/autotools-multilib.eclass 
b/gx86/eclass/autotools-multilib.eclass
index 97abfe6..ff7e8b8 100644
--- a/gx86/eclass/autotools-multilib.eclass
+++ b/gx86/eclass/autotools-multilib.eclass
@@ -50,34 +50,7 @@ autotools-multilib_src_install() {
                autotools-utils_src_install
 
                # Make sure all headers are the same for each ABI.
-               autotools-multilib_cksum() {
-                       find "${ED}"usr/include -type f \
-                               -exec cksum {} + | sort -k2
-               }
-
-               local cksum=$(autotools-multilib_cksum)
-               local cksum_file=${T}/.autotools-multilib_cksum
-
-               if [[ -f ${cksum_file} ]]; then
-                       local cksum_prev=$(< "${cksum_file}")
-
-                       if [[ ${cksum} != ${cksum_prev} ]]; then
-                               echo "${cksum}" > "${cksum_file}.new"
-
-                               eerror "Header files have changed between ABIs."
-
-                               if type -p diff &>/dev/null; then
-                                       eerror "$(diff -du "${cksum_file}" 
"${cksum_file}.new")"
-                               else
-                                       eerror "Old checksums in: ${cksum_file}"
-                                       eerror "New checksums in: 
${cksum_file}.new"
-                               fi
-
-                               die "Header checksum mismatch, aborting."
-                       fi
-               else
-                       echo "${cksum}" > "${cksum_file}"
-               fi
+               multilib_check_headers
        }
 
        multilib_foreach_abi autotools-multilib_secure_install
diff --git a/gx86/eclass/multilib-build.eclass 
b/gx86/eclass/multilib-build.eclass
index 4298a54..2b6c8b5 100644
--- a/gx86/eclass/multilib-build.eclass
+++ b/gx86/eclass/multilib-build.eclass
@@ -137,5 +137,43 @@ multilib_parallel_foreach_abi() {
        multijob_finish
 }
 
+# @FUNCTION: multilib_check_headers
+# @DESCRIPTION:
+# Check whether the header files are consistent between ABIs.
+#
+# This function needs to be called after each ABI's installation phase.
+# It obtains the header file checksums and compares them with previous
+# runs (if any). Dies if header files differ.
+multilib_check_headers() {
+       _multilib_header_cksum() {
+               find "${ED}"usr/include -type f \
+                       -exec cksum {} + | sort -k2
+       }
+
+       local cksum=$(_multilib_header_cksum)
+       local cksum_file=${T}/.multilib_header_cksum
+
+       if [[ -f ${cksum_file} ]]; then
+               local cksum_prev=$(< "${cksum_file}")
+
+               if [[ ${cksum} != ${cksum_prev} ]]; then
+                       echo "${cksum}" > "${cksum_file}.new"
+
+                       eerror "Header files have changed between ABIs."
+
+                       if type -p diff &>/dev/null; then
+                               eerror "$(diff -du "${cksum_file}" 
"${cksum_file}.new")"
+                       else
+                               eerror "Old checksums in: ${cksum_file}"
+                               eerror "New checksums in: ${cksum_file}.new"
+                       fi
+
+                       die "Header checksum mismatch, aborting."
+               fi
+       else
+               echo "${cksum}" > "${cksum_file}"
+       fi
+}
+
 _MULTILIB_BUILD=1
 fi
-- 
1.8.1.2


Reply via email to