use alternate download url
[buildroot.git] / toolchain / gdb / gdb.mk
blob1ab9e4d6007c089eec52e0796339cd6e342cf0ba
1 ######################################################################
3 # gdb
5 ######################################################################
6 ifeq ($(BR2_TOOLCHAIN_SOURCE),y)
7 GDB_VERSION:=$(strip $(subst ",, $(BR2_GDB_VERSION)))
8 #"))
9 else
10 GDB_VERSION:=$(strip $(subst ",, $(BR2_EXT_GDB_VERSION)))
11 #"))
12 endif
14 ifeq ($(GDB_VERSION),snapshot)
15 # Be aware that this changes daily....
16 GDB_SITE:=ftp://sources.redhat.com/pub/gdb/snapshots/current
17 GDB_SOURCE:=gdb.tar.bz2
18 GDB_CAT:=$(BZCAT)
19 GDB_DIR:=$(TOOL_BUILD_DIR)/gdb-$(GDB_VERSION)
20 GDB_PATCH_DIR:=toolchain/gdb/$(GDB_VERSION)
22 else
24 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
25 GDB_SITE:=$(BR2_GNU_MIRROR)/gdb
26 else
27 GDB_SITE:=$(VENDOR_SITE)
28 endif
30 GDB_OFFICIAL_VERSION:=$(GDB_VERSION)$(VENDOR_SUFFIX)$(VENDOR_GDB_RELEASE)
32 GDB_SOURCE:=gdb-$(GDB_OFFICIAL_VERSION).tar.bz2
33 GDB_CAT:=$(BZCAT)
35 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
36 GDB_PATCH_DIR:=toolchain/gdb/$(GDB_OFFICIAL_VERSION)
37 else
38 GDB_PATCH_DIR:=$(VENDOR_PATCH_DIR)/gdb-$(GDB_OFFICIAL_VERSION)
39 endif
41 GDB_DIR:=$(TOOL_BUILD_DIR)/gdb-$(GDB_OFFICIAL_VERSION)
43 # NOTE: This option should not be used with gdb versions 6.4 and above.
44 ifeq ($(GDB_VERSION),6.2.1)
45 DISABLE_GDBMI:=--disable-gdbmi
46 endif
48 ifeq ($(GDB_VERSION),6.3)
49 DISABLE_GDBMI:=--disable-gdbmi
50 endif
51 endif
53 $(DL_DIR)/$(GDB_SOURCE):
54 $(WGET) -P $(DL_DIR) $(GDB_SITE)/$(GDB_SOURCE)
56 gdb-unpacked: $(GDB_DIR)/.unpacked
57 $(GDB_DIR)/.unpacked: $(DL_DIR)/$(GDB_SOURCE)
58 mkdir -p $(TOOL_BUILD_DIR)
59 $(GDB_CAT) $(DL_DIR)/$(GDB_SOURCE) | tar -C $(TOOL_BUILD_DIR) $(TAR_OPTIONS) -
60 ifeq ($(GDB_VERSION),snapshot)
61 GDB_REAL_DIR=$(shell \
62 tar jtf $(DL_DIR)/$(GDB_SOURCE) | head -1 | cut -d"/" -f1)
63 ln -sf $(TOOL_BUILD_DIR)/$(shell tar jtf $(DL_DIR)/$(GDB_SOURCE) | head -1 | cut -d"/" -f1) $(GDB_DIR)
64 endif
65 if [ -d $(GDB_PATCH_DIR) ]; then \
66 toolchain/patch-kernel.sh $(GDB_DIR) $(GDB_PATCH_DIR) \*.patch; \
68 $(SED) '/^ac_subdirs_all/s/ testsuite//g' \
69 -e '/^subdirs/s/ testsuite//g' $(@D)/gdb/configure
70 $(CONFIG_UPDATE) $(@D)
71 $(CONFIG_UPDATE) $(@D)/readline/support
72 touch $@
74 gdb-source: $(DL_DIR)/$(GDB_SOURCE)
75 gdb-dirclean:
76 rm -rf $(GDB_DIR)
78 ######################################################################
80 # gdb target
82 ######################################################################
84 GDB_TARGET_DIR:=$(BUILD_DIR)/gdb-$(GDB_VERSION)-target
86 GDB_TARGET_CONFIGURE_VARS:= \
87 ac_cv_type_uintptr_t=yes \
88 gt_cv_func_gettext_libintl=yes \
89 ac_cv_func_dcgettext=yes \
90 gdb_cv_func_sigsetjmp=yes \
91 bash_cv_func_strcoll_broken=no \
92 bash_cv_must_reinstall_sighandlers=no \
93 bash_cv_func_sigsetjmp=present \
94 bash_cv_have_mbstate_t=yes
96 $(GDB_TARGET_DIR)/.configured: THIS_SRCDIR = $(GDB_DIR)
97 $(GDB_TARGET_DIR)/.configured: $(GDB_DIR)/.unpacked
98 mkdir -p $(GDB_TARGET_DIR)
99 (cd $(GDB_TARGET_DIR); rm -rf config.cache; \
100 gdb_cv_func_sigsetjmp=yes \
101 $(AUTO_CONFIGURE_TARGET) \
102 --prefix=/usr \
103 $(DISABLE_NLS) \
104 --without-uiout $(DISABLE_GDBMI) \
105 --disable-tui --disable-gdbtk --without-x \
106 --disable-sim --enable-gdbserver \
107 --without-included-gettext \
108 --disable-werror \
110 ifeq ($(BR2_ENABLE_LOCALE),y)
111 -$(SED) "s,^INTL *=.*,INTL = -lintl,g;" $(GDB_DIR)/gdb/Makefile
112 endif
113 touch $@
115 $(GDB_TARGET_DIR)/gdb/gdb: $(GDB_TARGET_DIR)/.configured
116 $(MAKE) -C $(GDB_TARGET_DIR)
117 touch -c $@
119 $(TARGET_DIR)/usr/bin/gdb: $(GDB_TARGET_DIR)/gdb/gdb
120 $(INSTALL) -D -m 0755 $(GDB_TARGET_DIR)/gdb/gdb $@
121 $(STRIPCMD) $(STRIP_STRIP_ALL) $@
123 gdb_target: ncurses $(TARGET_DIR)/usr/bin/gdb
125 gdb_target-source: $(DL_DIR)/$(GDB_SOURCE)
127 gdb_target-clean:
128 -$(MAKE) -C $(GDB_TARGET_DIR) clean
129 rm -f $(TARGET_DIR)/usr/bin/gdb
131 gdb_target-dirclean:
132 rm -rf $(GDB_TARGET_DIR)
134 ######################################################################
136 # gdbserver
138 ######################################################################
140 GDB_SERVER_DIR:=$(BUILD_DIR)/gdbserver-$(GDB_VERSION)
142 $(GDB_SERVER_DIR)/.configured: THIS_SRCDIR = $(GDB_DIR)/gdb/gdbserver
143 $(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked
144 mkdir -p $(GDB_SERVER_DIR)
145 (cd $(GDB_SERVER_DIR); rm -rf config.cache; \
146 gdb_cv_func_sigsetjmp=yes \
147 bash_cv_have_mbstate_t=yes \
148 $(AUTO_CONFIGURE_TARGET) \
149 --prefix=/usr \
150 --exec-prefix=/usr \
151 --bindir=/usr/bin \
152 --sbindir=/usr/sbin \
153 --libexecdir=/usr/lib \
154 --sysconfdir=/etc \
155 --datadir=/usr/share \
156 --localstatedir=/var \
157 --mandir=/usr/share/man \
158 --infodir=/usr/share/info \
159 --includedir=$(STAGING_DIR)/usr/include \
160 $(DISABLE_NLS) \
161 --without-uiout $(DISABLE_GDBMI) \
162 --disable-tui --disable-gdbtk --without-x \
163 --without-included-gettext \
165 touch $@
167 $(GDB_SERVER_DIR)/gdbserver: $(GDB_SERVER_DIR)/.configured
168 $(MAKE) -C $(GDB_SERVER_DIR)
170 $(TARGET_DIR)/usr/bin/gdbserver: $(GDB_SERVER_DIR)/gdbserver
171 ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
172 $(INSTALL) -d $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils
173 $(INSTALL) -D -m 0755 $(GDB_SERVER_DIR)/gdbserver \
174 $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils/gdbserver
175 endif
176 $(INSTALL) -D -m 0755 $(GDB_SERVER_DIR)/gdbserver $@
177 $(STRIPCMD) $(STRIP_STRIP_ALL) $@
179 gdbserver: $(TARGET_DIR)/usr/bin/gdbserver
181 gdbserver-clean:
182 -$(MAKE) -C $(GDB_SERVER_DIR) clean
183 rm -f $(TARGET_DIR)/usr/bin/gdbserver
185 gdbserver-dirclean:
186 rm -rf $(GDB_SERVER_DIR)
188 ######################################################################
190 # gdb on host
192 ######################################################################
194 GDB_HOST_DIR:=$(TOOL_BUILD_DIR)/gdbhost-$(GDB_VERSION)
196 $(GDB_HOST_DIR)/.configured: $(GDB_DIR)/.unpacked
197 mkdir -p $(GDB_HOST_DIR)
198 (cd $(GDB_HOST_DIR); rm -rf config.cache; \
199 gdb_cv_func_sigsetjmp=yes \
200 bash_cv_have_mbstate_t=yes \
201 $(GDB_DIR)/configure \
202 --prefix=$(STAGING_DIR) \
203 --build=$(GNU_HOST_NAME) \
204 --host=$(GNU_HOST_NAME) \
205 --target=$(REAL_GNU_TARGET_NAME) \
206 $(DISABLE_NLS) \
207 --without-uiout $(DISABLE_GDBMI) \
208 --disable-tui --disable-gdbtk --without-x \
209 --without-included-gettext \
210 --enable-threads \
212 touch $@
214 $(GDB_HOST_DIR)/gdb/gdb: $(GDB_HOST_DIR)/.configured
215 $(MAKE) -C $(GDB_HOST_DIR)
216 strip $(GDB_HOST_DIR)/gdb/gdb
218 $(TARGET_CROSS)gdb: $(GDB_HOST_DIR)/gdb/gdb
219 $(INSTALL) -D $(GDB_HOST_DIR)/gdb/gdb $(TARGET_CROSS)gdb
220 ln -snf ../../bin/$(REAL_GNU_TARGET_NAME)-gdb \
221 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/gdb
222 ln -snf $(REAL_GNU_TARGET_NAME)-gdb \
223 $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-gdb
225 gdbhost: $(TARGET_CROSS)gdb
227 gdbhost-clean:
228 -$(MAKE) -C $(GDB_HOST_DIR) clean
229 rm -f $(TARGET_CROSS)gdb
231 gdbhost-dirclean:
232 rm -rf $(GDB_HOST_DIR)
234 #############################################################
236 # Toplevel Makefile options
238 #############################################################
239 ifeq ($(BR2_PACKAGE_GDB),y)
240 TARGETS+=gdb_target
241 endif
243 ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
244 TARGETS+=gdbserver
245 endif
247 ifeq ($(BR2_PACKAGE_GDB_HOST),y)
248 TARGETS+=gdbhost
249 endif
250 ifeq ($(findstring y,$(BR2_PACKAGE_GDB_SERVER)$(BR2_PACKAGE_GDB_HOST)),y)
251 HOST_SOURCE+=gdb-source
252 endif