build: prevent dupes in autotools.mk
authorSebastian Kemper <sebastian_ml@gmx.net>
Mon, 1 Mar 2021 16:13:07 +0000 (17:13 +0100)
committerDaniel Golle <daniel@makrotopia.org>
Mon, 1 Mar 2021 16:16:32 +0000 (16:16 +0000)
autotools.mk does not have any protection currently that would prevent
it from being sourced multiple times. Note that both package.mk and
host-build.mk source autotools.mk. So any package Makefile that includes
both will cause hooks to be added twice (at least twice).

This is fixed by declaring a new variable, __autotools_inc, and only
continuing if this variable doesn't equal 1. The same is done by
rules.mk already.

Also, this commit does away with an ifneq that checks PKG_FIXUP (instead
of HOST_FIXUP) for patch-libtool before adding to the host pre-configure
hook. This does not make sense.

The second ifneq is amended. The current one manually does what the
define patch_libtool_host is already doing. It can just use the define.

Signed-off-by: Sebastian Kemper <sebastian_ml@gmx.net>
include/autotools.mk

index eb52b55924e95b2975f44beeb575eae611f975d4..1686f69f870851820ca0c7f29e8d9437d8f9ebbc 100644 (file)
@@ -2,6 +2,9 @@
 #
 # Copyright (C) 2007-2020 OpenWrt.org
 
+ifneq ($(__autotools_inc),1)
+__autotools_inc=1
+
 autoconf_bool = $(patsubst %,$(if $($(1)),--enable,--disable)-%,$(2))
 
 # delete *.la-files from staging_dir - we can not yet remove respective lines within all package
@@ -152,12 +155,8 @@ define patch_libtool_host
     $(HOST_BUILD_DIR)))
 endef
 
-ifneq ($(filter patch-libtool,$(PKG_FIXUP)),)
-  Hooks/HostConfigure/Pre += patch_libtool_host
-endif
-
 ifneq ($(filter patch-libtool,$(HOST_FIXUP)),)
-  Hooks/HostConfigure/Pre += $(strip $(call patch_libtool,$(HOST_BUILD_DIR)))
+  Hooks/HostConfigure/Pre += patch_libtool_host
 endif
 
 ifneq ($(filter libtool,$(HOST_FIXUP)),)
@@ -177,3 +176,5 @@ ifneq ($(filter autoreconf,$(HOST_FIXUP)),)
     Hooks/HostConfigure/Pre += autoreconf_host
   endif
 endif
+
+endif #__autotools_inc