0a4856ce27
This modifies the definition of DOWNLOAD to receive two arguments: the first one is the full URL of the file to download, whereas the second (and optional) is the name the file will have once downloaded. Same thing with the SOURCE_CHECK_WGET and SCP functions. All calls to these functions have been changed to the shortest form of the new API, except for toolchains acquisition. Since there is quite a number of different toolchains this call to DOWNLOAD is better set to the generic one. Signed-off-by: Alvaro G. M <alvaro.gamez@hazent.com> Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Tested-by: Stephan Hoffmann <sho@relinux.de> Downloading Microblaze LE toolchain works on a clean install Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
234 lines
6.3 KiB
Makefile
234 lines
6.3 KiB
Makefile
######################################################################
|
|
#
|
|
# gdb
|
|
#
|
|
######################################################################
|
|
GDB_VERSION:=$(call qstrip,$(BR2_GDB_VERSION))
|
|
|
|
GDB_SOURCE:=gdb-$(GDB_VERSION).tar.bz2
|
|
GDB_CAT:=$(BZCAT)
|
|
|
|
ifeq ($(findstring avr32,$(GDB_VERSION)),avr32)
|
|
GDB_SITE:=ftp://www.at91.com/pub/buildroot/
|
|
GDB_PATCH_DIR:=toolchain/gdb/$(GDB_VERSION)
|
|
else
|
|
GDB_SITE:=$(BR2_GNU_MIRROR)/gdb
|
|
GDB_PATCH_DIR:=toolchain/gdb/$(GDB_VERSION)
|
|
endif
|
|
|
|
ifneq ($(filter xtensa%,$(ARCH)),)
|
|
include target/xtensa/patch.in
|
|
GDB_PATCH_EXTRA:=$(call XTENSA_PATCH,gdb,$(GDB_PATCH_DIR),. ..)
|
|
endif
|
|
|
|
GDB_DIR:=$(TOOLCHAIN_DIR)/gdb-$(GDB_VERSION)
|
|
|
|
$(DL_DIR)/$(GDB_SOURCE):
|
|
$(call DOWNLOAD,$(GDB_SITE)/$(GDB_SOURCE))
|
|
|
|
gdb-unpacked: $(GDB_DIR)/.unpacked
|
|
$(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE)
|
|
mkdir -p $(GDB_DIR)
|
|
$(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(GDB_DIR) $(TAR_STRIP_COMPONENTS)=1 $(TAR_OPTIONS) -
|
|
ifneq ($(wildcard $(GDB_PATCH_DIR)),)
|
|
support/scripts/apply-patches.sh $(GDB_DIR) $(GDB_PATCH_DIR) \*.patch $(GDB_PATCH_EXTRA)
|
|
endif
|
|
$(call CONFIG_UPDATE,$(@D))
|
|
touch $@
|
|
|
|
gdb-patched: $(GDB_DIR)/.unpacked
|
|
|
|
gdb-source: $(DL_DIR)/$(GDB_SOURCE)
|
|
gdb-dirclean:
|
|
rm -rf $(GDB_DIR)
|
|
|
|
######################################################################
|
|
#
|
|
# gdb target
|
|
#
|
|
######################################################################
|
|
|
|
GDB_TARGET_DIR:=$(BUILD_DIR)/gdb-$(GDB_VERSION)-target
|
|
|
|
GDB_TARGET_CONFIGURE_VARS:= \
|
|
ac_cv_type_uintptr_t=yes \
|
|
gt_cv_func_gettext_libintl=yes \
|
|
ac_cv_func_dcgettext=yes \
|
|
gdb_cv_func_sigsetjmp=yes \
|
|
bash_cv_func_strcoll_broken=no \
|
|
bash_cv_must_reinstall_sighandlers=no \
|
|
bash_cv_func_sigsetjmp=present \
|
|
bash_cv_have_mbstate_t=yes
|
|
|
|
$(GDB_TARGET_DIR)/.configured: $(GDB_DIR)/.unpacked
|
|
mkdir -p $(GDB_TARGET_DIR)
|
|
(cd $(GDB_TARGET_DIR); \
|
|
gdb_cv_func_sigsetjmp=yes \
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
CFLAGS_FOR_TARGET="$(TARGET_CFLAGS) $(TARGET_LDFLAGS) -Wno-error" \
|
|
CFLAGS="$(TARGET_CFLAGS) $(TARGET_LDFLAGS) -Wno-error" \
|
|
$(GDB_TARGET_CONFIGURE_VARS) \
|
|
$(GDB_DIR)/configure $(QUIET) \
|
|
--cache-file=/dev/null \
|
|
--build=$(GNU_HOST_NAME) \
|
|
--host=$(REAL_GNU_TARGET_NAME) \
|
|
--target=$(REAL_GNU_TARGET_NAME) \
|
|
--prefix=/usr \
|
|
$(DISABLE_NLS) \
|
|
--without-uiout $(DISABLE_GDBMI) \
|
|
--disable-tui --disable-gdbtk --without-x \
|
|
--disable-sim --enable-gdbserver \
|
|
--without-included-gettext \
|
|
--disable-werror \
|
|
$(QUIET) \
|
|
)
|
|
ifeq ($(BR2_ENABLE_LOCALE),y)
|
|
-$(SED) "s,^INTL *=.*,INTL = -lintl,g;" $(GDB_DIR)/gdb/Makefile
|
|
endif
|
|
touch $@
|
|
|
|
$(GDB_TARGET_DIR)/gdb/gdb: $(GDB_TARGET_DIR)/.configured
|
|
# force ELF support since it fails due to BFD linking problems
|
|
gdb_cv_var_elf=yes \
|
|
$(MAKE) CC="$(TARGET_CC)" MT_CFLAGS="$(TARGET_CFLAGS)" \
|
|
-C $(GDB_TARGET_DIR)
|
|
|
|
$(TARGET_DIR)/usr/bin/gdb: $(GDB_TARGET_DIR)/gdb/gdb
|
|
install -c -D $(GDB_TARGET_DIR)/gdb/gdb $(TARGET_DIR)/usr/bin/gdb
|
|
|
|
gdb_target: ncurses $(TARGET_DIR)/usr/bin/gdb
|
|
|
|
gdb_target-source: $(DL_DIR)/$(GDB_SOURCE)
|
|
|
|
gdb_target-clean:
|
|
-$(MAKE) -C $(GDB_DIR) clean
|
|
|
|
gdb_target-dirclean:
|
|
rm -rf $(GDB_DIR)
|
|
|
|
######################################################################
|
|
#
|
|
# gdbserver
|
|
#
|
|
######################################################################
|
|
|
|
GDB_SERVER_DIR:=$(BUILD_DIR)/gdbserver-$(GDB_VERSION)
|
|
|
|
$(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked
|
|
mkdir -p $(GDB_SERVER_DIR)
|
|
(cd $(GDB_SERVER_DIR); \
|
|
$(TARGET_CONFIGURE_OPTS) \
|
|
gdb_cv_func_sigsetjmp=yes \
|
|
bash_cv_have_mbstate_t=yes \
|
|
$(GDB_DIR)/gdb/gdbserver/configure $(QUIET) \
|
|
--cache-file=/dev/null \
|
|
--build=$(GNU_HOST_NAME) \
|
|
--host=$(REAL_GNU_TARGET_NAME) \
|
|
--target=$(REAL_GNU_TARGET_NAME) \
|
|
--prefix=/usr \
|
|
--exec-prefix=/usr \
|
|
--bindir=/usr/bin \
|
|
--sbindir=/usr/sbin \
|
|
--libexecdir=/usr/lib \
|
|
--sysconfdir=/etc \
|
|
--datadir=/usr/share \
|
|
--localstatedir=/var \
|
|
--mandir=/usr/man \
|
|
--infodir=/usr/info \
|
|
--includedir=$(STAGING_DIR)/usr/include \
|
|
$(DISABLE_NLS) \
|
|
--without-uiout $(DISABLE_GDBMI) \
|
|
--disable-tui --disable-gdbtk --without-x \
|
|
--without-included-gettext \
|
|
)
|
|
touch $@
|
|
|
|
$(GDB_SERVER_DIR)/gdbserver: $(GDB_SERVER_DIR)/.configured
|
|
$(MAKE) CC="$(TARGET_CC)" MT_CFLAGS="$(TARGET_CFLAGS)" \
|
|
-C $(GDB_SERVER_DIR)
|
|
|
|
$(TARGET_DIR)/usr/bin/gdbserver: $(GDB_SERVER_DIR)/gdbserver
|
|
ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
|
|
mkdir -p $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils
|
|
install -c $(GDB_SERVER_DIR)/gdbserver \
|
|
$(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/target_utils/gdbserver
|
|
endif
|
|
install -c -D $(GDB_SERVER_DIR)/gdbserver $(TARGET_DIR)/usr/bin/gdbserver
|
|
|
|
gdbserver: $(TARGET_DIR)/usr/bin/gdbserver
|
|
|
|
gdbserver-source: $(DL_DIR)/$(GDB_SOURCE)
|
|
|
|
gdbserver-clean:
|
|
-$(MAKE) -C $(GDB_SERVER_DIR) clean
|
|
|
|
gdbserver-dirclean:
|
|
rm -rf $(GDB_SERVER_DIR)
|
|
|
|
######################################################################
|
|
#
|
|
# gdb on host
|
|
#
|
|
######################################################################
|
|
|
|
GDB_HOST_DIR:=$(TOOLCHAIN_DIR)/gdbhost-$(GDB_VERSION)
|
|
|
|
$(GDB_HOST_DIR)/.configured: $(GDB_DIR)/.unpacked
|
|
mkdir -p $(GDB_HOST_DIR)
|
|
(cd $(GDB_HOST_DIR); \
|
|
gdb_cv_func_sigsetjmp=yes \
|
|
bash_cv_have_mbstate_t=yes \
|
|
$(HOST_CONFIGURE_OPTS) \
|
|
$(GDB_DIR)/configure $(QUIET) \
|
|
--cache-file=/dev/null \
|
|
--prefix=$(STAGING_DIR) \
|
|
--build=$(GNU_HOST_NAME) \
|
|
--host=$(GNU_HOST_NAME) \
|
|
--target=$(REAL_GNU_TARGET_NAME) \
|
|
$(DISABLE_NLS) \
|
|
--without-uiout $(DISABLE_GDBMI) \
|
|
--disable-tui --disable-gdbtk --without-x \
|
|
--without-included-gettext \
|
|
--enable-threads \
|
|
--disable-werror \
|
|
)
|
|
touch $@
|
|
|
|
$(GDB_HOST_DIR)/gdb/gdb: $(GDB_HOST_DIR)/.configured
|
|
# force ELF support since it fails due to BFD linking problems
|
|
gdb_cv_var_elf=yes \
|
|
$(MAKE) -C $(GDB_HOST_DIR)
|
|
strip $(GDB_HOST_DIR)/gdb/gdb
|
|
|
|
$(TARGET_CROSS)gdb: $(GDB_HOST_DIR)/gdb/gdb
|
|
install -c $(GDB_HOST_DIR)/gdb/gdb $(TARGET_CROSS)gdb
|
|
ln -snf $(REAL_GNU_TARGET_NAME)-gdb \
|
|
$(HOST_DIR)/usr/bin/$(GNU_TARGET_NAME)-gdb
|
|
|
|
gdbhost: host-expat $(TARGET_CROSS)gdb
|
|
|
|
gdbhost-source: $(DL_DIR)/$(GDB_SOURCE)
|
|
|
|
gdbhost-clean:
|
|
-$(MAKE) -C $(GDB_HOST_DIR) clean
|
|
|
|
gdbhost-dirclean:
|
|
rm -rf $(GDB_HOST_DIR)
|
|
|
|
#############################################################
|
|
#
|
|
# Toplevel Makefile options
|
|
#
|
|
#############################################################
|
|
ifeq ($(BR2_PACKAGE_GDB),y)
|
|
TARGETS+=gdb_target
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
|
|
TARGETS+=gdbserver
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_GDB_HOST),y)
|
|
TARGETS+=gdbhost
|
|
endif
|