Files
buildroot/package/gawk/gawk.mk
Yann E. MORIN fa047bb052 package/gawk: do not use readeline or mpfr in host variant
gawk has an optional dependency on mpfr (and thus gmp) and readline,
and will probe for them. If they are present, they are used; if they
are missing, that's not an error. mpfr (and gmp) is used for "BIGNUM"
support on gawk; readline is used by the gawk debugger.

However, mpfr (bringing gmp) are also host-packages in Buildroot, but in
the standard build order (i.e. a plain 'make'), they are built after
gawk. Ditto readline (from ncurses).

If the user has the development files for gmp and mpfr, then gawk is
linked to them. Ditto readline.

Now, further on in the build, we build gmp and mpfr (for gcci or guile),
so we install them in the host dir. Ditto readline (for gdb, ncurses
itself and a few other packages...)

But because we forcibly set an RPATH tag on all our host binaries, our
host gawk will now dynamically link with our versions, when it was in
fact built against the host ones.

This did not seem to cause any harm so far, but is far from ideal.

Since we do not really need BIGNUM or the debugger in our host gawk, we
just forcibly disable them and configure gawk without readline or mpfr
(there's no switch for gmp, but it's not a direct dependency, it comes
just with mpfr).

[Adjust comment as suggested by Thomas/Yann]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>

(cherry picked from commit fc08a57305)
2015-12-03 00:01:52 +01:00

40 lines
1.1 KiB
Makefile

################################################################################
#
# gawk
#
################################################################################
GAWK_VERSION = 4.1.3
GAWK_SOURCE = gawk-$(GAWK_VERSION).tar.xz
GAWK_SITE = $(BR2_GNU_MIRROR)/gawk
GAWK_DEPENDENCIES = host-gawk $(if $(BR2_PACKAGE_MPFR),mpfr)
GAWK_LICENSE = GPLv3+
GAWK_LICENSE_FILES = COPYING
# Prefer full-blown gawk over busybox awk
ifeq ($(BR2_PACKAGE_BUSYBOX),y)
GAWK_DEPENDENCIES += busybox
endif
# We don't have a host-busybox, and we don't want to use readline or mpfr
HOST_GAWK_DEPENDENCIES =
HOST_GAWK_CONF_OPTS = --without-readline --without-mpfr
define GAWK_CREATE_SYMLINK
ln -sf /usr/bin/gawk $(TARGET_DIR)/usr/bin/awk
endef
GAWK_POST_INSTALL_TARGET_HOOKS += GAWK_CREATE_SYMLINK
# Assume we support shared libs
# The check isn't cross-compile friendly and it's mandatory anyway
define GAWK_DISABLE_SHARED_CHECK
$(SED) 's/ check-for-shared-lib-support//' $(@D)/extension/Makefile.in
endef
GAWK_POST_PATCH_HOOKS += GAWK_DISABLE_SHARED_CHECK
$(eval $(autotools-package))
$(eval $(host-autotools-package))