kumquat-buildroot/package/bash/bash.mk
Lionel Landwerlin 5082e476d1 bash: fix configuration
Patch bash32-011 modifies the configure.in script. Therefor we need to
run autoconf before launching the configure script. Otherwise, once
the configure script called, the makefile's dependencies over
configure.in will relaunch autoconf without options/environnement
variables we usually set when calling configure.

[Peter: use our own host-autoconf instead of what's on the host]
Signed-off-by: Lionel Landwerlin <llandwerlin@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2010-01-28 17:50:54 +01:00

119 lines
3.5 KiB
Makefile

#############################################################
#
# 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)
ifneq ($(BR2_HAVE_INFOPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/info
endif
ifneq ($(BR2_HAVE_MANPAGES),y)
rm -rf $(TARGET_DIR)/usr/share/man
endif
rm -rf $(TARGET_DIR)/share/locale
rm -rf $(TARGET_DIR)/usr/share/doc
# 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