aboutsummaryrefslogtreecommitdiff
path: root/package/bash
diff options
context:
space:
mode:
Diffstat (limited to 'package/bash')
-rw-r--r--package/bash/Config.in14
-rw-r--r--package/bash/bash.mk26
2 files changed, 35 insertions, 5 deletions
diff --git a/package/bash/Config.in b/package/bash/Config.in
index 5a9ebb8d02..0212df6bfd 100644
--- a/package/bash/Config.in
+++ b/package/bash/Config.in
@@ -9,3 +9,17 @@ config BR2_PACKAGE_BASH
The standard GNU Bourne again shell.
http://tiswww.case.edu/php/chet/bash/bashtop.html
+
+if BR2_PACKAGE_BASH
+
+config BR2_PACKAGE_BASH_LOADABLE_EXAMPLES
+ bool "loadable examples"
+ depends on !BR2_STATIC_LIBS
+ help
+ This option will enable the installation of the "loadable"
+ examples, which are dynamically loadable extension providing
+ additional built-ins commands to bash. There are typically
+ not needed as they are provided as regular, external
+ commands.
+
+endif
diff --git a/package/bash/bash.mk b/package/bash/bash.mk
index efe7cbbe59..7b853ece08 100644
--- a/package/bash/bash.mk
+++ b/package/bash/bash.mk
@@ -7,11 +7,16 @@
BASH_VERSION = 5.1
BASH_SITE = $(BR2_GNU_MIRROR)/bash
BASH_DEPENDENCIES = ncurses readline host-bison
-BASH_CONF_OPTS = --with-installed-readline --without-bash-malloc
BASH_LICENSE = GPL-3.0+
BASH_LICENSE_FILES = COPYING
BASH_CPE_ID_VENDOR = gnu
+# We want the bash binary in /bin
+BASH_CONF_OPTS = \
+ --bindir=/bin \
+ --with-installed-readline \
+ --without-bash-malloc
+
BASH_CONF_ENV += \
ac_cv_rl_prefix="$(STAGING_DIR)" \
ac_cv_rl_version="$(READLINE_VERSION)" \
@@ -24,7 +29,6 @@ BASH_CONF_ENV += \
# The static build needs some trickery
ifeq ($(BR2_STATIC_LIBS),y)
BASH_CONF_OPTS += --enable-static-link
-BASH_CONF_ENV += SHOBJ_STATUS=unsupported
# bash wants to redefine the getenv() function. To check whether this is
# possible, AC_TRY_RUN is used which is not possible in
# cross-compilation.
@@ -38,11 +42,23 @@ BASH_CONF_ENV += bash_cv_getenv_redef=yes
endif
endif
-define BASH_INSTALL_TARGET_CMDS
- $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
- DESTDIR=$(TARGET_DIR) exec_prefix=/ install
+define BASH_REMOVE_UNUSED_FILES
rm -f $(TARGET_DIR)/bin/bashbug
endef
+BASH_POST_INSTALL_TARGET_HOOKS += BASH_REMOVE_UNUSED_FILES
+
+ifeq ($(BR2_PACKAGE_BASH_LOADABLE_EXAMPLES),y)
+define BASH_REMOVE_LOADABLE_UNUSED_FILES
+ rm -f $(TARGET_DIR)/usr/lib/bash/Makefile.inc
+ rm -f $(TARGET_DIR)/usr/lib/bash/loadables.h
+endef
+BASH_POST_INSTALL_TARGET_HOOKS += BASH_REMOVE_LOADABLE_UNUSED_FILES
+else
+define BASH_REMOVE_LOADABLE_EXAMPLES
+ rm -rf $(TARGET_DIR)/usr/lib/bash
+endef
+BASH_POST_INSTALL_TARGET_HOOKS += BASH_REMOVE_LOADABLE_EXAMPLES
+endif
# Add /bin/bash to /etc/shells otherwise some login tools like dropbear
# can reject the user connection. See man shells.