1 # SPDX-License-Identifier: GPL-2.0-only
3 # Copyright (C) 2007-2020 OpenWrt.org
5 autoconf_bool
= $(patsubst %,$(if
$($(1)),--enable
,--disable
)-%,$(2))
7 # delete *.la-files from staging_dir - we can not yet remove respective lines within all package
8 # Makefiles, since backfire still uses libtool v1.5.x which (may) require those files
9 define libtool_remove_files
10 find
$(1) -name
'*.la' |
$(XARGS
) rm -f
;
15 AUTOM4TE
=$(STAGING_DIR_HOST
)/bin
/autom4te \
16 AUTOCONF
=$(STAGING_DIR_HOST
)/bin
/autoconf \
17 AUTOMAKE
=$(STAGING_DIR_HOST
)/bin
/automake \
18 ACLOCAL
=$(STAGING_DIR_HOST
)/bin
/aclocal \
19 AUTOHEADER
=$(STAGING_DIR_HOST
)/bin
/autoheader \
20 LIBTOOLIZE
=$(STAGING_DIR_HOST
)/bin
/libtoolize \
21 LIBTOOL
=$(STAGING_DIR_HOST
)/bin
/libtool \
22 M4
=$(STAGING_DIR_HOST
)/bin
/m4 \
32 $(patsubst %,rm -f
%;,$(2)) \
34 if
[ -f
$(p
)/configure.ac
] ||
[ -f
$(p
)/configure.in
]; then \
35 [ -d
$(p
)/autom4te.cache
] && rm -rf autom4te.cache
; \
36 [ -e
$(p
)/config.rpath
] || \
37 ln
-s
$(SCRIPT_DIR
)/config.rpath
$(p
)/config.rpath
; \
38 touch NEWS AUTHORS COPYING ABOUT-NLS ChangeLog
; \
40 LIBTOOLIZE
='$(STAGING_DIR_HOST)/bin/libtoolize --install' \
41 $(STAGING_DIR_HOST
)/bin
/autoreconf
-v
-f
-i
-s \
42 $(if
$(word 2,$(3)),--no-recursive
) \
43 -B
$(STAGING_DIR_HOST
)/share
/aclocal \
44 $(patsubst %,-I
%,$(5)) \
45 $(patsubst %,-I
%,$(4)) $(p
) || true
; \
54 for lt in
$$$$($$(STAGING_DIR_HOST
)/bin
/find .
-name ltmain.sh
); do \
55 lt_version
="$$$$($$(STAGING_DIR_HOST)/bin/sed -ne 's,^[[:space:]]*VERSION="\?\
([0-9]\.
[0-9]\
+\
).
*,\
1,p
' $$$$lt)"; \
56 case "$$$$lt_version" in \
57 1.5|2.2|2.4) echo "autotools.mk: Found libtool v$$$$lt_version - applying patch to $$$$lt"; \
58 (cd $$$$(dirname $$$$lt) && $$(PATCH) -N -s -p1 < $$(TOPDIR)/tools/libtool/files/libtool-v$$$$lt_version.patch || true) ;; \
59 *) echo "autotools.mk: error: Unsupported libtool version v$$$$lt_version - cannot patch $$$$lt"; exit 1 ;; \
66 PKG_LIBTOOL_PATHS?=$(CONFIGURE_PATH)
67 PKG_AUTOMAKE_PATHS?=$(CONFIGURE_PATH)
69 PKG_REMOVE_FILES?=aclocal.m4
71 Hooks/InstallDev/Post += libtool_remove_files
73 define autoreconf_target
74 $(strip $(call autoreconf, \
75 $(PKG_BUILD_DIR), $(PKG_REMOVE_FILES), \
76 $(PKG_AUTOMAKE_PATHS), $(PKG_LIBTOOL_PATHS), \
77 $(STAGING_DIR)/host/share/aclocal $(STAGING_DIR_HOSTPKG)/share/aclocal $(STAGING_DIR)/usr/share/aclocal $(PKG_MACRO_PATHS)))
80 define patch_libtool_target
81 $(strip $(call patch_libtool, \
85 define gettext_version_target
86 (cd $(PKG_BUILD_DIR) && \
87 GETTEXT_VERSION=$(shell $(STAGING_DIR_HOSTPKG)/bin/gettext -V | $(STAGING_DIR_HOST)/bin/sed -ne '1s
/.
*\
([0-9]\.
[0-9]\
{2\
}\.
[0-9]\
).
*/\
1/p
' ) && \
88 $(STAGING_DIR_HOST)/bin/sed \
89 -i $(PKG_BUILD_DIR)/configure.ac \
90 -e "s/AM_GNU_GETTEXT_VERSION(.*)/AM_GNU_GETTEXT_VERSION(\[$$$$GETTEXT_VERSION\])/g" && \
91 $(STAGING_DIR_HOSTPKG)/bin/autopoint --force \
95 ifneq ($(filter gettext-version,$(PKG_FIXUP)),)
96 Hooks/Configure/Pre += gettext_version_target
97 ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),)
98 Hooks/Configure/Pre += autoreconf_target
102 ifneq ($(filter patch-libtool,$(PKG_FIXUP)),)
103 Hooks/Configure/Pre += patch_libtool_target
106 ifneq ($(filter libtool,$(PKG_FIXUP)),)
107 PKG_BUILD_DEPENDS += libtool gettext libiconv
108 ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),)
109 Hooks/Configure/Pre += autoreconf_target
113 ifneq ($(filter libtool-ucxx,$(PKG_FIXUP)),)
114 PKG_BUILD_DEPENDS += libtool gettext libiconv
115 ifeq ($(filter no-autoreconf,$(PKG_FIXUP)),)
116 Hooks/Configure/Pre += autoreconf_target
120 ifneq ($(filter autoreconf,$(PKG_FIXUP)),)
121 ifeq ($(filter autoreconf,$(Hooks/Configure/Pre)),)
122 Hooks/Configure/Pre += autoreconf_target
127 HOST_FIXUP?=$(PKG_FIXUP)
128 HOST_LIBTOOL_PATHS?=$(if $(PKG_LIBTOOL_PATHS),$(PKG_LIBTOOL_PATHS),.)
129 HOST_AUTOMAKE_PATHS?=$(if $(PKG_AUTOMAKE_PATHS),$(PKG_AUTOMAKE_PATHS),.)
130 HOST_MACRO_PATHS?=$(if $(PKG_MACRO_PATHS),$(PKG_MACRO_PATHS),m4)
131 HOST_REMOVE_FILES?=$(PKG_REMOVE_FILES)
133 define autoreconf_host
134 $(strip $(call autoreconf, \
135 $(HOST_BUILD_DIR), $(HOST_REMOVE_FILES), \
136 $(HOST_AUTOMAKE_PATHS), $(HOST_LIBTOOL_PATHS), \
137 $(HOST_MACRO_PATHS)))
140 define patch_libtool_host
141 $(strip $(call patch_libtool, \
145 ifneq ($(filter patch-libtool,$(PKG_FIXUP)),)
146 Hooks/HostConfigure/Pre += patch_libtool_host
149 ifneq ($(filter patch-libtool,$(HOST_FIXUP)),)
150 Hooks/HostConfigure/Pre += $(strip $(call patch_libtool,$(HOST_BUILD_DIR)))
153 ifneq ($(filter libtool,$(HOST_FIXUP)),)
154 ifeq ($(filter no-autoreconf,$(HOST_FIXUP)),)
155 Hooks/HostConfigure/Pre += autoreconf_host
159 ifneq ($(filter libtool-ucxx,$(HOST_FIXUP)),)
160 ifeq ($(filter no-autoreconf,$(HOST_FIXUP)),)
161 Hooks/HostConfigure/Pre += autoreconf_host
165 ifneq ($(filter autoreconf,$(HOST_FIXUP)),)
166 ifeq ($(filter autoreconf,$(Hooks/HostConfigure/Pre)),)
167 Hooks/HostConfigure/Pre += autoreconf_host