remote_bitbang: Add SWD support #1273
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# SPDX-License-Identifier: GPL-2.0-or-later | |
# Copyright (C) 2020 by Tarek BOUCHKATI <[email protected]> | |
on: push | |
name: OpenOCD Snapshot | |
jobs: | |
package: | |
runs-on: [ubuntu-20.04] | |
env: | |
DL_DIR: ../downloads | |
BUILD_DIR: ../build | |
steps: | |
- name: Install needed packages | |
run: | | |
sudo apt-get update | |
sudo apt-get install autotools-dev autoconf automake libtool pkg-config cmake texinfo texlive g++-mingw-w64-i686 | |
- name: Checkout Code | |
uses: actions/checkout@v1 | |
- run: ./bootstrap | |
- name: Prepare libusb1 | |
env: | |
LIBUSB1_VER: 1.0.26 | |
run: | | |
mkdir -p $DL_DIR && cd $DL_DIR | |
wget "https://github.com/libusb/libusb/releases/download/v${LIBUSB1_VER}/libusb-${LIBUSB1_VER}.tar.bz2" | |
tar -xjf libusb-${LIBUSB1_VER}.tar.bz2 | |
echo "LIBUSB1_SRC=$PWD/libusb-${LIBUSB1_VER}" >> $GITHUB_ENV | |
- name: Prepare hidapi | |
env: | |
HIDAPI_VER: 0.13.1 | |
run: | | |
mkdir -p $DL_DIR && cd $DL_DIR | |
wget "https://github.com/libusb/hidapi/archive/hidapi-${HIDAPI_VER}.tar.gz" | |
tar -xzf hidapi-${HIDAPI_VER}.tar.gz | |
cd hidapi-hidapi-${HIDAPI_VER} | |
./bootstrap | |
echo "HIDAPI_SRC=$PWD" >> $GITHUB_ENV | |
- name: Prepare libftdi | |
env: | |
LIBFTDI_VER: 1.5 | |
run: | | |
mkdir -p $DL_DIR && cd $DL_DIR | |
wget "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-${LIBFTDI_VER}.tar.bz2" | |
tar -xjf libftdi1-${LIBFTDI_VER}.tar.bz2 | |
echo "LIBFTDI_SRC=$PWD/libftdi1-${LIBFTDI_VER}" >> $GITHUB_ENV | |
- name: Prepare capstone | |
env: | |
CAPSTONE_VER: 4.0.2 | |
run: | | |
mkdir -p $DL_DIR && cd $DL_DIR | |
CAPSTONE_NAME=${CAPSTONE_VER} | |
CAPSTONE_FOLDER=capstone-${CAPSTONE_VER} | |
wget "https://github.com/aquynh/capstone/archive/${CAPSTONE_VER}.tar.gz" | |
tar -xzf ${CAPSTONE_VER}.tar.gz | |
echo "CAPSTONE_SRC=$PWD/capstone-${CAPSTONE_VER}" >> $GITHUB_ENV | |
- name: Prepare libjaylink | |
env: | |
LIBJAYLINK_VER: 0.3.1 | |
run: | | |
mkdir -p $DL_DIR && cd $DL_DIR | |
wget https://gitlab.zapb.de/libjaylink/libjaylink/-/archive/${LIBJAYLINK_VER}/libjaylink-${LIBJAYLINK_VER}.tar.gz | |
tar -xzf libjaylink-${LIBJAYLINK_VER}.tar.gz | |
cd libjaylink-${LIBJAYLINK_VER} | |
./autogen.sh | |
echo "LIBJAYLINK_SRC=$PWD" >> $GITHUB_ENV | |
- name: Package OpenOCD for windows | |
env: | |
MAKE_JOBS: 2 | |
HOST: i686-w64-mingw32 | |
LIBUSB1_CONFIG: --enable-shared --disable-static | |
HIDAPI_CONFIG: --enable-shared --disable-static --disable-testgui | |
LIBFTDI_CONFIG: -DSTATICLIBS=OFF -DEXAMPLES=OFF -DFTDI_EEPROM=OFF | |
CAPSTONE_CONFIG: "CAPSTONE_BUILD_CORE_ONLY=yes CAPSTONE_STATIC=yes CAPSTONE_SHARED=no" | |
LIBJAYLINK_CONFIG: --enable-shared --disable-static | |
run: | | |
# check if there is tag pointing at HEAD, otherwise take the HEAD SHA-1 as OPENOCD_TAG | |
OPENOCD_TAG="`git tag --points-at HEAD`" | |
[ -z $OPENOCD_TAG ] && OPENOCD_TAG="`git rev-parse --short HEAD`" | |
# check if there is tag pointing at HEAD, if so the release will have the same name as the tag, | |
# otherwise it will be named 'latest' | |
RELEASE_NAME="`git tag --points-at HEAD`" | |
[ -z $RELEASE_NAME ] && RELEASE_NAME="latest" | |
[[ $RELEASE_NAME = "latest" ]] && IS_PRE_RELEASE="true" || IS_PRE_RELEASE="false" | |
# set env and call cross-build.sh | |
export OPENOCD_TAG=$OPENOCD_TAG | |
export OPENOCD_SRC=$PWD | |
export OPENOCD_CONFIG="" | |
mkdir -p $BUILD_DIR && cd $BUILD_DIR | |
bash $OPENOCD_SRC/contrib/cross-build.sh $HOST | |
# add missing dlls | |
cd $HOST-root/usr | |
cp `$HOST-gcc --print-file-name=libwinpthread-1.dll` ./bin/ | |
# required by libftdi1.dll. For the gcc-mingw-10.3.x or later "libgcc_s_dw2-1.dll" will need to be copied. | |
cp `$HOST-gcc --print-file-name=libgcc_s_sjlj-1.dll` ./bin/ | |
# prepare the artifact | |
ARTIFACT="openocd-${OPENOCD_TAG}-${HOST}.tar.gz" | |
tar -czf $ARTIFACT * | |
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV | |
echo "IS_PRE_RELEASE=$IS_PRE_RELEASE" >> $GITHUB_ENV | |
echo "ARTIFACT_PATH=$PWD/$ARTIFACT" >> $GITHUB_ENV | |
- name: Publish OpenOCD packaged for windows | |
uses: actions/upload-artifact@v3 | |
with: | |
path: ${{ env.ARTIFACT_PATH }} | |
- name: Delete 'latest' Release | |
uses: dev-drprasad/[email protected] | |
with: | |
delete_release: true | |
tag_name: ${{ env.RELEASE_NAME }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create Release | |
uses: ncipollo/release-action@v1 | |
with: | |
tag: ${{ env.RELEASE_NAME }} | |
commit: ${{ github.sha }} | |
draft: false | |
artifacts: ${{ env.ARTIFACT_PATH }} | |
prerelease: ${{ env.IS_PRE_RELEASE }} | |
token: ${{ secrets.GITHUB_TOKEN }} |