pkg-autotools: commonalise the libtool patching code
authorJohan Oudinet <johan.oudinet@gmail.com>
Wed, 12 Nov 2014 00:25:49 +0000 (01:25 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sat, 22 Nov 2014 19:35:04 +0000 (20:35 +0100)
Currently, the heuristic to patch libtool scripts is duplicated both in
the libtool post-patch hook and the autoreconf pre-configure hook.

Move that code into a single function that gets called from both hooks.

[Thomas: change back the author to Johan. Yann mistakenly changed it
when submitting the patch series.]

Signed-off-by: Johan Oudinet <johan.oudinet@gmail.com>
[yann.morin.1998@free.fr: split the patch into semantically separate
patches]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/pkg-autotools.mk

index 6e198edf2a7bc069ca0211fb084555114e0eed27..393f9956440311e98d1fa4b367d589f034a01009 100644 (file)
@@ -36,6 +36,29 @@ define CONFIG_UPDATE
        done
 endef
 
+#
+# Utility function to patch the libtool files
+#
+# argument 1 : directory into which to search for libtool scripts to patch.
+# Note that libtool scripts are searched for recursively in this directory
+#
+define PATCH_LIBTOOL
+       @$(call MESSAGE,"Patching libtool")
+       $(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" ]; then \
+               for i in `find $(1) -name ltmain.sh`; do \
+                       ltmain_version=`sed -n '/^[     ]*VERSION=/{s/^[        ]*VERSION=//;p;q;}' $$i | \
+                       sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
+                       if test $${ltmain_version} = '1.5'; then \
+                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
+                       elif test $${ltmain_version} = "2.2"; then\
+                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
+                       elif test $${ltmain_version} = "2.4"; then\
+                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
+                       fi \
+               done \
+       fi
+endef
+
 # This function generates the ac_cv_file_<foo> value for a given
 # filename. This is needed to convince configure script doing
 # AC_CHECK_FILE() tests that the file actually exists, since such
@@ -58,21 +81,7 @@ endef
 # Hook to patch libtool to make it work properly for cross-compilation
 #
 define LIBTOOL_PATCH_HOOK
-       @$(call MESSAGE,"Patching libtool")
-       if test "$($(PKG)_LIBTOOL_PATCH)" = "YES" \
-               -a "$($(PKG)_AUTORECONF)" != "YES"; then \
-               for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
-                       ltmain_version=`sed -n '/^[     ]*VERSION=/{s/^[        ]*VERSION=//;p;q;}' $$i | \
-                       sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-                       if test $${ltmain_version} = '1.5'; then \
-                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-                       elif test $${ltmain_version} = "2.2"; then\
-                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-                       elif test $${ltmain_version} = "2.4"; then\
-                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-                       fi \
-               done \
-       fi
+       $(call PATCH_LIBTOOL,$($(PKG)_SRCDIR))
 endef
 
 #
@@ -89,19 +98,7 @@ endef
 define AUTORECONF_HOOK
        @$(call MESSAGE,"Autoreconfiguring")
        $(Q)cd $($(PKG)_SRCDIR) && $($(PKG)_AUTORECONF_ENV) $(AUTORECONF) $($(PKG)_AUTORECONF_OPTS)
-       $(Q)if test "$($(PKG)_LIBTOOL_PATCH)" = "YES"; then \
-               for i in `find $($(PKG)_SRCDIR) -name ltmain.sh`; do \
-                       ltmain_version=`sed -n '/^[     ]*VERSION=/{s/^[        ]*VERSION=//;p;q;}' $$i | \
-                       sed -e 's/\([0-9].[0-9]*\).*/\1/' -e 's/\"//'`; \
-                       if test $${ltmain_version} = "1.5"; then \
-                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v1.5.patch; \
-                       elif test $${ltmain_version} = "2.2"; then\
-                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.2.patch; \
-                       elif test $${ltmain_version} = "2.4"; then\
-                               $(APPLY_PATCHES) $${i%/*} support/libtool buildroot-libtool-v2.4.patch; \
-                       fi \
-               done \
-       fi
+       $(call PATCH_LIBTOOL,$($(PKG)_SRCDIR))
 endef
 
 ################################################################################