unset INITRAMFS_SOURCE if appropriate
[buildroot.git] / toolchain / gdb / gdb.mk
blobf828f3a7b6f9ffdfb1bac5db9c3f775e9bd871c8
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 toolchain/patch-kernel.sh $(GDB_DIR) $(GDB_PATCH_DIR) \*.patch
66 $(SED) '/^ac_subdirs_all/s/ testsuite//g' \
67 -e '/^subdirs/s/ testsuite//g' $(@D)/gdb/configure
68 $(CONFIG_UPDATE) $(@D)
69 $(CONFIG_UPDATE) $(@D)/readline/support
70 touch $@
72 gdb-source: $(DL_DIR)/$(GDB_SOURCE)
73 gdb-dirclean:
74 rm -rf $(GDB_DIR)
76 ######################################################################
78 # gdb target
80 ######################################################################
82 GDB_TARGET_DIR:=$(BUILD_DIR)/gdb-$(GDB_VERSION)-target
84 GDB_TARGET_CONFIGURE_VARS:= \
85 ac_cv_type_uintptr_t=yes \
86 gt_cv_func_gettext_libintl=yes \
87 ac_cv_func_dcgettext=yes \
88 gdb_cv_func_sigsetjmp=yes \
89 bash_cv_func_strcoll_broken=no \
90 bash_cv_must_reinstall_sighandlers=no \
91 bash_cv_func_sigsetjmp=present \
92 bash_cv_have_mbstate_t=yes
94 $(GDB_TARGET_DIR)/.configured: THIS_SRCDIR = $(GDB_DIR)
95 $(GDB_TARGET_DIR)/.configured: $(GDB_DIR)/.unpacked
96 mkdir -p $(GDB_TARGET_DIR)
97 (cd $(GDB_TARGET_DIR); rm -rf config.cache; \
98 gdb_cv_func_sigsetjmp=yes \
99 $(AUTO_CONFIGURE_TARGET) \
100 --prefix=/usr \
101 $(DISABLE_NLS) \
102 --without-uiout $(DISABLE_GDBMI) \
103 --disable-tui --disable-gdbtk --without-x \
104 --disable-sim --enable-gdbserver \
105 --without-included-gettext \
106 --disable-werror \
108 ifeq ($(BR2_ENABLE_LOCALE),y)
109 -$(SED) "s,^INTL *=.*,INTL = -lintl,g;" $(GDB_DIR)/gdb/Makefile
110 endif
111 touch $@
113 $(GDB_TARGET_DIR)/gdb/gdb: $(GDB_TARGET_DIR)/.configured
114 $(MAKE) -C $(GDB_TARGET_DIR)
115 touch -c $@
117 $(TARGET_DIR)/usr/bin/gdb: $(GDB_TARGET_DIR)/gdb/gdb
118 $(INSTALL) -D -m 0755 $(GDB_TARGET_DIR)/gdb/gdb $@
119 $(STRIPCMD) $(STRIP_STRIP_ALL) $@
121 gdb_target: ncurses $(TARGET_DIR)/usr/bin/gdb
123 gdb_target-source: $(DL_DIR)/$(GDB_SOURCE)
125 gdb_target-clean:
126 -$(MAKE) -C $(GDB_TARGET_DIR) clean
127 rm -f $(TARGET_DIR)/usr/bin/gdb
129 gdb_target-dirclean:
130 rm -rf $(GDB_TARGET_DIR)
132 ######################################################################
134 # gdbserver
136 ######################################################################
138 GDB_SERVER_DIR:=$(BUILD_DIR)/gdbserver-$(GDB_VERSION)
140 $(GDB_SERVER_DIR)/.configured: THIS_SRCDIR = $(GDB_DIR)/gdb/gdbserver
141 $(GDB_SERVER_DIR)/.configured: $(GDB_DIR)/.unpacked
142 mkdir -p $(GDB_SERVER_DIR)
143 (cd $(GDB_SERVER_DIR); rm -rf config.cache; \
144 gdb_cv_func_sigsetjmp=yes \
145 bash_cv_have_mbstate_t=yes \
146 $(AUTO_CONFIGURE_TARGET) \
147 --prefix=/usr \
148 --exec-prefix=/usr \
149 --bindir=/usr/bin \
150 --sbindir=/usr/sbin \
151 --libexecdir=/usr/lib \
152 --sysconfdir=/etc \
153 --datadir=/usr/share \
154 --localstatedir=/var \
155 --mandir=/usr/share/man \
156 --infodir=/usr/share/info \
157 --includedir=$(STAGING_DIR)/usr/include \
158 $(DISABLE_NLS) \
159 --without-uiout $(DISABLE_GDBMI) \
160 --disable-tui --disable-gdbtk --without-x \
161 --without-included-gettext \
163 touch $@
165 $(GDB_SERVER_DIR)/gdbserver: $(GDB_SERVER_DIR)/.configured
166 $(MAKE) -C $(GDB_SERVER_DIR)
168 $(TARGET_DIR)/usr/bin/gdbserver: $(GDB_SERVER_DIR)/gdbserver
169 ifeq ($(BR2_CROSS_TOOLCHAIN_TARGET_UTILS),y)
170 $(INSTALL) -d $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils
171 $(INSTALL) -D -m 0755 $(GDB_SERVER_DIR)/gdbserver \
172 $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/target_utils/gdbserver
173 endif
174 $(INSTALL) -D -m 0755 $(GDB_SERVER_DIR)/gdbserver $@
175 $(STRIPCMD) $(STRIP_STRIP_ALL) $@
177 gdbserver: $(TARGET_DIR)/usr/bin/gdbserver
179 gdbserver-clean:
180 -$(MAKE) -C $(GDB_SERVER_DIR) clean
181 rm -f $(TARGET_DIR)/usr/bin/gdbserver
183 gdbserver-dirclean:
184 rm -rf $(GDB_SERVER_DIR)
186 ######################################################################
188 # gdb on host
190 ######################################################################
192 GDB_HOST_DIR:=$(TOOL_BUILD_DIR)/gdbhost-$(GDB_VERSION)
194 $(GDB_HOST_DIR)/.configured: $(GDB_DIR)/.unpacked
195 mkdir -p $(GDB_HOST_DIR)
196 (cd $(GDB_HOST_DIR); rm -rf config.cache; \
197 gdb_cv_func_sigsetjmp=yes \
198 bash_cv_have_mbstate_t=yes \
199 $(GDB_DIR)/configure \
200 --prefix=$(STAGING_DIR) \
201 --build=$(GNU_HOST_NAME) \
202 --host=$(GNU_HOST_NAME) \
203 --target=$(REAL_GNU_TARGET_NAME) \
204 $(DISABLE_NLS) \
205 --without-uiout $(DISABLE_GDBMI) \
206 --disable-tui --disable-gdbtk --without-x \
207 --without-included-gettext \
208 --enable-threads \
210 touch $@
212 $(GDB_HOST_DIR)/gdb/gdb: $(GDB_HOST_DIR)/.configured
213 $(MAKE) -C $(GDB_HOST_DIR)
214 strip $(GDB_HOST_DIR)/gdb/gdb
216 $(TARGET_CROSS)gdb: $(GDB_HOST_DIR)/gdb/gdb
217 $(INSTALL) -D $(GDB_HOST_DIR)/gdb/gdb $(TARGET_CROSS)gdb
218 ln -snf ../../bin/$(REAL_GNU_TARGET_NAME)-gdb \
219 $(STAGING_DIR)/usr/$(REAL_GNU_TARGET_NAME)/bin/gdb
220 ln -snf $(REAL_GNU_TARGET_NAME)-gdb \
221 $(STAGING_DIR)/usr/bin/$(GNU_TARGET_NAME)-gdb
223 gdbhost: $(TARGET_CROSS)gdb
225 gdbhost-clean:
226 -$(MAKE) -C $(GDB_HOST_DIR) clean
227 rm -f $(TARGET_CROSS)gdb
229 gdbhost-dirclean:
230 rm -rf $(GDB_HOST_DIR)
232 #############################################################
234 # Toplevel Makefile options
236 #############################################################
237 ifeq ($(BR2_PACKAGE_GDB),y)
238 TARGETS+=gdb_target
239 endif
241 ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
242 TARGETS+=gdbserver
243 endif
245 ifeq ($(BR2_PACKAGE_GDB_HOST),y)
246 TARGETS+=gdbhost
247 endif
248 ifeq ($(findstring y,$(BR2_PACKAGE_GDB_SERVER)$(BR2_PACKAGE_GDB_HOST)),y)
249 HOST_SOURCE+=gdb-source
250 endif