From 54e2a79b8d53c21ba49af23f0ca48daa02201939 Mon Sep 17 00:00:00 2001 From: Abdoulaye Walsimou Gaye Date: Wed, 17 Sep 2014 23:14:29 +0200 Subject: Toolchain: move gdb to addons and split it into multiple virtual packages Signed-off-by: Abdoulaye Walsimou Gaye --- core/toolchain/addons/gdb/common.mk | 35 ++++++ core/toolchain/addons/gdb/gdb.kconfig | 129 +++++++++++++++++++++++ core/toolchain/addons/gdb/gdb/gdb.mk | 39 +++++++ core/toolchain/addons/gdb/gdb_host/gdb_host.mk | 52 +++++++++ core/toolchain/addons/gdb/gdbserver/gdbserver.mk | 42 ++++++++ 5 files changed, 297 insertions(+) create mode 100644 core/toolchain/addons/gdb/common.mk create mode 100644 core/toolchain/addons/gdb/gdb.kconfig create mode 100644 core/toolchain/addons/gdb/gdb/gdb.mk create mode 100644 core/toolchain/addons/gdb/gdb_host/gdb_host.mk create mode 100644 core/toolchain/addons/gdb/gdbserver/gdbserver.mk (limited to 'core/toolchain/addons') diff --git a/core/toolchain/addons/gdb/common.mk b/core/toolchain/addons/gdb/common.mk new file mode 100644 index 0000000..22dfb72 --- /dev/null +++ b/core/toolchain/addons/gdb/common.mk @@ -0,0 +1,35 @@ +################################################################################ +# Embtoolkit +# Copyright(C) 2009-2014 Abdoulaye Walsimou GAYE. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +################################################################################ +# +# \file common.mk +# \brief common.mk options for gdb/gdbserver for target +# \author Abdoulaye Walsimou GAYE +# \date September 2014 +################################################################################ + +GDBCOMMON_DEPS := ncurses_install + +GDBCOMMON_CONFIGURE_OPTS := --disable-werror --disable-sim --disable-nls +GDBCOMMON_CONFIGURE_OPTS += --with-bugurl="$(EMBTK_BUGURL)" +GDBCOMMON_CONFIGURE_OPTS += --with-pkgversion="embtk-$(EMBTK_VERSION)" + +GDBCOMMON_INCLUDES := ansidecl.h bfd.h bfdlink.h dis-asm.h symcat.h gdb +GDBCOMMON_LIBS := lib*-sim.a libbfd.* libiberty.* libopcodes.* +GDBCOMMON_BINS := gdb gdbtui run + diff --git a/core/toolchain/addons/gdb/gdb.kconfig b/core/toolchain/addons/gdb/gdb.kconfig new file mode 100644 index 0000000..1a25ccf --- /dev/null +++ b/core/toolchain/addons/gdb/gdb.kconfig @@ -0,0 +1,129 @@ +################################################################################ +# Embtoolkit +# Copyright(C) 2009-2014 Abdoulaye Walsimou GAYE. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +################################################################################ +# +# \file gdb.kconfig +# \brief gdb.kconfig of Embtoolkit +# \author Abdoulaye Walsimou GAYE +# \date July 2009 +################################################################################ + +config EMBTK_HAVE_GDB_SYSTEM + bool "Have GDB: Gnu debugging system" + select EMBTK_HAVE_NCURSES + select KEMBTK_UCLIBC_PTHREADS_DEBUG_SUPPORT if EMBTK_CLIB_UCLIBC + select KEMBTK_UCLIBC_UCLIBC_HAS_WCHAR if EMBTK_CLIB_UCLIBC + select KEMBTK_UCLIBC_UCLIBC_SUSV3_LEGACY if EMBTK_CLIB_UCLIBC + help + Have GNU debugger components in your embedded target and/or in your + development machine. + +choice + prompt "GDB version to use" + depends on EMBTK_HAVE_GDB_SYSTEM + help + Choose which version of gdb to use. + + config EMBTK_GDB_VERSION_7_6_2 + bool "gdb-7.6.2" + select EMBTK_GDB_NEED_PATCH + config EMBTK_GDB_VERSION_7_5_1 + bool "gdb-7.5.1" + select EMBTK_GDB_NEED_PATCH +endchoice + +choice + prompt "GDB on your target system" + depends on EMBTK_HAVE_GDB_SYSTEM + config EMBTK_HAVE_GDBSERVER + bool "Have gdbserver on target" + help + Say yes if you want to have only gdbserver in your embedded + system target. + + config EMBTK_HAVE_GDB + bool "Have gdb on target" + help + Say yes if you want to have full gdb in your embedded system + target. +endchoice + +config EMBTK_HOST_HAVE_GDB + bool "Have gdb on your host development machine" + depends on EMBTK_HAVE_GDB_SYSTEM + help + Say yes if you want to have gdb in your host development machine. + +# +# GDB virtual package +# +config EMBTK_GDB_VERSION_STRING + string + default "7.6.2" if EMBTK_GDB_VERSION_7_6_2 + default "7.5.1" if EMBTK_GDB_VERSION_7_5_1 + +config EMBTK_GDB_CATEGORY + string + depends on EMBTK_HAVE_GDB_SYSTEM + default "toolchain_addons" + +config EMBTK_GDB_NEED_PATCH + bool + select EMBTK_GDBSERVER_NEED_PATCH if EMBTK_HAVE_GDBSERVER + select EMBTK_GDB_HOST_NEED_PATCH if EMBTK_HOST_HAVE_GDB + +config EMBTK_GDB_NEED_AUTORECONF + bool + select EMBTK_GDBSERVER_NEED_AUTORECONF if EMBTK_HAVE_GDBSERVER + select EMBTK_GDB_HOST_NEED_AUTORECONF if EMBTK_HOST_HAVE_GDB + +# +# GDBSERVER virtual package +# +config EMBTK_GDBSERVER_VERSION_STRING + string + depends on EMBTK_HAVE_GDBSERVER + default EMBTK_GDB_VERSION_STRING + +config EMBTK_GDBSERVER_CATEGORY + string + depends on EMBTK_HAVE_GDBSERVER + default EMBTK_GDB_CATEGORY + +config EMBTK_GDBSERVER_NEED_PATCH + bool +config EMBTK_GDBSERVER_NEED_AUTORECONF + bool + +# +# GDB_HOST virtual package +# +config EMBTK_GDB_HOST_VERSION_STRING + string + depends on EMBTK_HOST_HAVE_GDB + default EMBTK_GDB_VERSION_STRING + +config EMBTK_GDB_HOST_CATEGORY + string + depends on EMBTK_HOST_HAVE_GDB + default EMBTK_GDB_CATEGORY + +config EMBTK_GDB_HOST_NEED_PATCH + bool +config EMBTK_GDB_HOST_NEED_AUTORECONF + bool diff --git a/core/toolchain/addons/gdb/gdb/gdb.mk b/core/toolchain/addons/gdb/gdb/gdb.mk new file mode 100644 index 0000000..89f0a56 --- /dev/null +++ b/core/toolchain/addons/gdb/gdb/gdb.mk @@ -0,0 +1,39 @@ +################################################################################ +# Embtoolkit +# Copyright(C) 2009-2014 Abdoulaye Walsimou GAYE. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +################################################################################ +# +# \file gdb.mk +# \brief gdb.mk of Embtoolkit +# \author Abdoulaye Walsimou GAYE +# \date July 2009 +################################################################################ + +GDB_NAME := gdb +GDB_VERSION := $(call embtk_get_pkgversion,gdb) +GDB_SITE := http://ftp.gnu.org/gnu/gdb +GDB_PACKAGE := gdb-$(GDB_VERSION).tar.bz2 +GDB_SRC_DIR := $(embtk_pkgb)/gdb-$(GDB_VERSION) +GDB_BUILD_DIR := $(embtk_pkgb)/gdb-$(GDB_VERSION)-build + +GDB_DEPS := $(GDBCOMMON_DEPS) +GDB_CONFIGURE_OPTS := $(GDBCOMMON_CONFIGURE_OPTS) + +GDB_BINS := $(GDBCOMMON_BINS) +GDB_BINS += $(if $(CONFIG_EMBTK_HAVE_GDBSERVER),,gdbserver) +GDB_INCLUDES := $(if $(CONFIG_EMBTK_HAVE_GDBSERVER),,$(GDBCOMMON_INCLUDES)) +GDB_LIBS := $(if $(CONFIG_EMBTK_HAVE_GDBSERVER),,$(GDBCOMMON_LIBS)) diff --git a/core/toolchain/addons/gdb/gdb_host/gdb_host.mk b/core/toolchain/addons/gdb/gdb_host/gdb_host.mk new file mode 100644 index 0000000..1e67d3d --- /dev/null +++ b/core/toolchain/addons/gdb/gdb_host/gdb_host.mk @@ -0,0 +1,52 @@ +################################################################################ +# Embtoolkit +# Copyright(C) 2009-2014 Abdoulaye Walsimou GAYE. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +################################################################################ +# +# \file gdb_host.mk +# \brief gdb_host.mk of Embtoolkit +# \author Abdoulaye Walsimou GAYE +# \date July 2009 +################################################################################ + +GDB_HOST_NAME := gdb +GDB_HOST_VERSION := $(call embtk_pkg_version,gdb_host) +GDB_HOST_SITE := gdb-$(GDB_HOST_VERSION).tar.bz2 +GDB_HOST_PACKAGE := gdb-$(GDB_HOST_VERSION).tar.bz2 +GDB_HOST_SRC_DIR := $(embtk_toolsb)/gdb-$(GDB_HOST_VERSION) +GDB_HOST_BUILD_DIR := $(embtk_toolsb)/gdb-$(GDB_HOST_VERSION) + +GDB_HOST_CONFIGURE_ENV := CC=$(HOSTCC_CACHED) +GDB_HOST_CONFIGURE_ENV += CXX=$(HOSTCXX_CACHED) +GDB_HOST_CONFIGURE_ENV += CC_FOR_TARGET=$(TARGETCC_CACHED) +GDB_HOST_CONFIGURE_ENV += CXX_FOR_TARGET=$(TARGETCXX_CACHED) +GDB_HOST_CONFIGURE_ENV += AR_FOR_TARGET=$(TARGETAR) +GDB_HOST_CONFIGURE_ENV += LD_FOR_TARGET=$(TARGETLD) +GDB_HOST_CONFIGURE_ENV += NM_FOR_TARGET=$(TARGETNM) +GDB_HOST_CONFIGURE_ENV += RANLIB_FOR_TARGET=$(TARGETRANLIB) +GDB_HOST_CONFIGURE_ENV += STRIP_FOR_TARGET=$(TARGETSTRIP) +GDB_HOST_CONFIGURE_ENV += OBJDUMP_FOR_TARGET=$(TARGETOBJDUMP) + +GDB_HOST_CONFIGURE_OPTS := --disable-werror --enable-sim --disable-nls +GDB_HOST_CONFIGURE_OPTS += --with-bugurl="$(EMBTK_BUGURL)" +GDB_HOST_CONFIGURE_OPTS += --with-pkgversion="embtk-$(EMBTK_VERSION)" +GDB_HOST_CONFIGURE_OPTS += --target=$(STRICT_GNU_TARGET) +GDB_HOST_PREFIX := $(embtk_tools) + +define embtk_cleanup_gdb_host + rm -rf $(GDB_HOST_BUILD_DIR) +endef diff --git a/core/toolchain/addons/gdb/gdbserver/gdbserver.mk b/core/toolchain/addons/gdb/gdbserver/gdbserver.mk new file mode 100644 index 0000000..0266db9 --- /dev/null +++ b/core/toolchain/addons/gdb/gdbserver/gdbserver.mk @@ -0,0 +1,42 @@ +################################################################################ +# Embtoolkit +# Copyright(C) 2009-2014 Abdoulaye Walsimou GAYE. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +################################################################################ +# +# \file gdb.mk +# \brief gdbserver.mk of Embtoolkit +# \author Abdoulaye Walsimou GAYE +# \date July 2009 +################################################################################ + +GDBSERVER_NAME := gdb +GDBSERVER_VERSION := $(call embtk_pkg_version,gdbserver) +GDBSERVER_SITE := http://ftp.gnu.org/gnu/gdb +GDBSERVER_PACKAGE := gdb-$(GDBSERVER_VERSION).tar.bz2 +GDBSERVER_SRC_DIR := $(embtk_pkgb)/gdb-$(GDBSERVER_VERSION) +GDBSERVER_BUILD_DIR := $(embtk_pkgb)/gdbserver-$(GDBSERVER_VERSION)-build + +GDBSERVER_DEPS := $(GDBCOMMON_DEPS) +GDBSERVER_CONFIGURE_OPTS := $(GDBCOMMON_CONFIGURE_OPTS) + +GDBSERVER_BINS := $(if $(CONFIG_EMBTK_HAVE_GDB),,gdbserver) +GDBSERVER_INCLUDES := $(if $(CONFIG_EMBTK_HAVE_GDB),,$(__GDB_INCLUDES)) +GDBSERVER_LIBS := $(if $(CONFIG_EMBTK_HAVE_GDB),,$(__GDB_LIBS)) + +define embtk_postinstallonce_gdbserver + rm -rf $(addprefix $(embtk_sysroot)/usr/bin/,$(GDBCOMMON_BINS)) +endef -- cgit v1.2.3