packages/utils/openocd/Makefile
Karl Palsson dd48483a60 openocd: select new libjaylink
Without the +select, openocd's internal autoselection between internal
libjaylink and external libjaylink can result in linking against
external, without the depends declaration, leading to missing
depdendencies errors.

Hard depend on the external libjaylink, as that's the future direction
anyway.

Reported-by: Paul Fertser <fercerpav@gmail.com>
Signed-off-by: Karl Palsson <karlp@etactica.com>
2023-01-20 13:17:30 +00:00

95 lines
2.5 KiB
Makefile

#
# Copyright (C) 2015 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=openocd
PKG_SOURCE_VERSION:=v0.12.0
PKG_RELEASE:=2
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://git.code.sf.net/p/openocd/code
PKG_MIRROR_HASH:=19085e31904d9a04a77dc79e02c441372498e680361e77fe9ffdb482c2ddb19c
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
PKG_MAINTAINER:=Paul Fertser <fercerpav@gmail.com>
PKG_CPE_ID:=cpe:/a:openocd:open_on-chip_debugger
PKG_BUILD_PARALLEL:=1
PKG_INSTALL:=1
PKG_FIXUP:=autoreconf
PKG_CONFIG_DEPENDS:=CONFIG_PACKAGE_openocd_with_usb
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
define Package/openocd
SECTION:=utils
CATEGORY:=Utilities
TITLE:=OpenOCD Utility
URL:=http://openocd.sf.net/
DEPENDS:=+libusb-1.0 \
+libftdi1 \
+hidapi \
+libgpiod \
+libjaylink
endef
define Package/openocd/description
OpenOCD provides on-chip programming and debugging support with a
layered architecture of JTAG interface and TAP support including:
- (X)SVF playback to facilitate automated boundary scan and FPGA/CPLD
programming;
- debug target support (e.g. ARM, MIPS): single-stepping,
breakpoints/watchpoints, gprof profiling, etc;
- flash chip drivers (e.g. CFI, NAND, internal flash);
- embedded TCL interpreter for easy scripting.
Several network interfaces are available for interacting with OpenOCD:
telnet, TCL, and GDB. The GDB server enables OpenOCD to function as a
"remote target" for source-level debugging of embedded systems using
the GNU GDB program (and the others who talk GDB protocol, e.g. IDA
Pro).
endef
define Build/Prepare
$(call Build/Prepare/Default)
-$(RM) $(PKG_BUILD_DIR)/guess-rev.sh
-$(RM) $(PKG_BUILD_DIR)/jimtcl/configure.ac
endef
CONFIGURE_ARGS += \
--prefix="/usr" \
--disable-werror \
MAKEINFO=true \
--enable-dummy \
--enable-sysfsgpio \
--enable-linuxgpiod
ifeq ($(CONFIG_TARGET_bcm27xx),y)
CONFIGURE_ARGS += --enable-bcm2835gpio
endif
TARGET_CFLAGS += -DRELSTR=\\\"-$(PKG_VERSION)-$(PKG_RELEASE)-OpenWrt\\\"
define Build/Compile
+$(MAKE_VARS) \
$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR)/$(MAKE_PATH)
endef
define Package/openocd/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_DIR) $(1)/usr/share/openocd
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/openocd $(1)/usr/bin/
$(CP) $(PKG_INSTALL_DIR)/usr/share/openocd/scripts $(1)/usr/share/openocd
endef
$(eval $(call BuildPackage,openocd))