From 3404ad7c4fd5997ba7becf239ab8bc5b919393aa Mon Sep 17 00:00:00 2001 From: Gustavo Zacarias Date: Wed, 9 Jun 2010 10:36:26 -0300 Subject: bash: bump to 4.1.7(1) and migrate to autotargets Closes #1993 Signed-off-by: Gustavo Zacarias Signed-off-by: Peter Korsgaard --- package/bash/bash.mk | 131 ++++++++++----------------------------------------- 1 file changed, 26 insertions(+), 105 deletions(-) (limited to 'package/bash/bash.mk') diff --git a/package/bash/bash.mk b/package/bash/bash.mk index 5abae559b..d7bb699e1 100644 --- a/package/bash/bash.mk +++ b/package/bash/bash.mk @@ -3,109 +3,30 @@ # bash # ############################################################# -BASH_VERSION:=3.2 -BASH_SOURCE:=bash-$(BASH_VERSION).tar.gz -BASH_SITE:=$(BR2_GNU_MIRROR)/bash -BASH_CAT:=$(ZCAT) -BASH_DIR:=$(BUILD_DIR)/bash-$(BASH_VERSION) -BASH_BINARY:=bash -BASH_TARGET_BINARY:=bin/bash -$(DL_DIR)/$(BASH_SOURCE): - $(call DOWNLOAD,$(BASH_SITE),$(BASH_SOURCE)) - -bash-source: $(DL_DIR)/$(BASH_SOURCE) - -bash-unpacked: $(BASH_DIR)/.unpacked - -$(BASH_DIR)/.unpacked: $(DL_DIR)/$(BASH_SOURCE) - $(BASH_CAT) $(DL_DIR)/$(BASH_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) - - toolchain/patch-kernel.sh $(BASH_DIR) package/bash/ bash??-\* - # This is broken when -lintl is added to LIBS - $(SED) 's,LIBS_FOR_BUILD =.*,LIBS_FOR_BUILD =,g' \ - $(BASH_DIR)/builtins/Makefile.in - # using target's LDFLAGS as LDFLAGS_FOR_BUILD is b0rked - -$(SED) '/^LDFLAGS_FOR_BUILD/d' $(BASH_DIR)/{,*/{,*/}}Makefile.in - $(CONFIG_UPDATE) $(BASH_DIR)/support - touch $@ - -$(BASH_DIR)/.configured: $(BASH_DIR)/.unpacked - # bash_cv_have_mbstate_t=yes - (cd $(BASH_DIR); rm -rf config.cache; \ - $(AUTOCONF) && \ - $(TARGET_CONFIGURE_OPTS) \ - $(TARGET_CONFIGURE_ARGS) \ - CCFLAGS_FOR_BUILD="$(HOST_CFLAGS)" \ - ac_cv_func_setvbuf_reversed=no \ - ac_cv_have_decl_sys_siglist=yes \ - bash_cv_job_control_missing=present \ - bash_cv_sys_named_pipes=present \ - bash_cv_unusable_rtsigs=no \ - bash_cv_func_ctype_nonascii=yes \ - bash_cv_decl_under_sys_siglist=yes \ - bash_cv_ulimit_maxfds=yes \ - bash_cv_getcwd_malloc=yes \ - bash_cv_func_sigsetjmp=present \ - bash_cv_printf_a_format=yes \ - ./configure $(QUIET) \ - --target=$(GNU_TARGET_NAME) \ - --host=$(GNU_TARGET_NAME) \ - --build=$(GNU_HOST_NAME) \ - --prefix=/usr \ - --exec-prefix=/usr \ - --bindir=/usr/bin \ - --sbindir=/usr/sbin \ - --libdir=/lib \ - --libexecdir=/usr/lib \ - --sysconfdir=/etc \ - --datadir=/usr/share \ - --localstatedir=/var \ - --mandir=/usr/share/man \ - --infodir=/usr/share/info \ - --includedir=/usr/include \ - $(DISABLE_NLS) \ - $(DISABLE_LARGEFILE) \ - --with-curses \ - --enable-alias \ - --without-bash-malloc \ - $(ENABLE_DEBUG) \ - ) - touch $@ - -$(BASH_DIR)/$(BASH_BINARY): $(BASH_DIR)/.configured - $(MAKE1) CC_FOR_BUILD="$(HOSTCC)" -C $(BASH_DIR) - -$(TARGET_DIR)/$(BASH_TARGET_BINARY): $(BASH_DIR)/$(BASH_BINARY) - mkdir -p $(TARGET_DIR)/bin - $(MAKE1) DESTDIR=$(TARGET_DIR) -C $(BASH_DIR) install - rm -f $(TARGET_DIR)/bin/bash* - mv $(TARGET_DIR)/usr/bin/bash* $(TARGET_DIR)/bin/ - (cd $(TARGET_DIR)/bin; /bin/ln -fs bash sh) - rm -rf $(TARGET_DIR)/share/locale - -# If both bash and busybox are selected, make certain bash wins -# the fight over who gets to own the /bin/sh symlink. -ifeq ($(BR2_PACKAGE_BUSYBOX),y) -bash: ncurses busybox host-autoconf $(TARGET_DIR)/$(BASH_TARGET_BINARY) -else -bash: ncurses host-autoconf $(TARGET_DIR)/$(BASH_TARGET_BINARY) -endif - -# If both bash and busybox are selected, the /bin/sh symlink -# may need to be reinstated by the clean targets. -bash-clean: - -$(MAKE1) DESTDIR=$(TARGET_DIR) -C $(BASH_DIR) uninstall - rm -f $(TARGET_DIR)/$(BASH_TARGET_BINARY) - -$(MAKE1) -C $(BASH_DIR) clean - -bash-dirclean: - rm -rf $(BASH_DIR) - -############################################################# -# -# Toplevel Makefile options -# -############################################################# -ifeq ($(BR2_PACKAGE_BASH),y) -TARGETS+=bash -endif +BASH_VERSION = 4.1 +BASH_SITE = $(BR2_GNU_MIRROR)/bash +BASH_DEPENDENCIES = ncurses + +# Save the old sh file/link if there is one and symlink bash->sh +define BASH_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \ + DESTDIR=$(TARGET_DIR) exec_prefix=/ install + rm -f $(TARGET_DIR)/bin/bashbug + if [ -e $(TARGET_DIR)/bin/sh ]; then \ + mv -f $(TARGET_DIR)/bin/sh $(TARGET_DIR)/bin/sh.prebash; \ + fi + ln -sf bash $(TARGET_DIR)/bin/sh +endef + +# Restore the old shell file/link if there was one +define BASH_UNINSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) DESTDIR=$(TARGET_DIR) \ + -C $(BASH_DIR) exec_prefix=/ uninstall + rm -f $(TARGET_DIR)/bin/sh + if [ -e $(TARGET_DIR)/bin/sh.prebash ]; then \ + mv -f $(TARGET_DIR)/bin/sh.prebash $(TARGET_DIR)/bin/sh; \ + fi +endef + +$(eval $(call AUTOTARGETS,package,bash)) -- cgit v1.2.3