1 # SPDX-License-Identifier: GPL-2.0-or-later
3 # Copyright (C) 2020 by Tarek BOUCHKATI <tarek.bouchkati@gmail.com>
11 runs-on: [ubuntu-18.04]
16 - name: Install needed packages
17 run: sudo apt-get install autotools-dev autoconf automake libtool pkg-config cmake texinfo texlive g++-mingw-w64-i686
18 - uses: actions/checkout@v1
20 - name: Prepare libusb1
24 mkdir -p $DL_DIR && cd $DL_DIR
25 wget "https://github.com/libusb/libusb/releases/download/v${LIBUSB1_VER}/libusb-${LIBUSB1_VER}.tar.bz2"
26 tar -xjf libusb-${LIBUSB1_VER}.tar.bz2
27 echo "LIBUSB1_SRC=$PWD/libusb-${LIBUSB1_VER}" >> $GITHUB_ENV
28 - name: Prepare hidapi
32 mkdir -p $DL_DIR && cd $DL_DIR
33 wget "https://github.com/libusb/hidapi/archive/hidapi-${HIDAPI_VER}.tar.gz"
34 tar -xzf hidapi-${HIDAPI_VER}.tar.gz
35 cd hidapi-hidapi-${HIDAPI_VER}
37 echo "HIDAPI_SRC=$PWD" >> $GITHUB_ENV
38 - name: Prepare libftdi
42 mkdir -p $DL_DIR && cd $DL_DIR
43 wget "http://www.intra2net.com/en/developer/libftdi/download/libftdi1-${LIBFTDI_VER}.tar.bz2"
44 tar -xjf libftdi1-${LIBFTDI_VER}.tar.bz2
45 echo "LIBFTDI_SRC=$PWD/libftdi1-${LIBFTDI_VER}" >> $GITHUB_ENV
46 - name: Prepare capstone
50 mkdir -p $DL_DIR && cd $DL_DIR
51 CAPSTONE_NAME=${CAPSTONE_VER}
52 CAPSTONE_FOLDER=capstone-${CAPSTONE_VER}
53 wget "https://github.com/aquynh/capstone/archive/${CAPSTONE_VER}.tar.gz"
54 tar -xzf ${CAPSTONE_VER}.tar.gz
55 echo "CAPSTONE_SRC=$PWD/capstone-${CAPSTONE_VER}" >> $GITHUB_ENV
56 - name: Package OpenOCD for windows
59 HOST: i686-w64-mingw32
60 LIBUSB1_CONFIG: --enable-shared --enable-static
61 HIDAPI_CONFIG: --enable-shared --disable-static --disable-testgui
62 LIBFTDI_CONFIG: "-DCMAKE_TOOLCHAIN_FILE='${{ env.LIBFTDI_SRC }}/cmake/Toolchain-i686-w64-mingw32.cmake' -DBUILD_TESTS:BOOL=off -DFTDIPP:BOOL=off -DPYTHON_BINDINGS:BOOL=off -DEXAMPLES:BOOL=off -DDOCUMENTATION:BOOL=off -DFTDI_EEPROM:BOOL=off"
63 CAPSTONE_CONFIG: "CAPSTONE_BUILD_CORE_ONLY=yes CAPSTONE_STATIC=yes CAPSTONE_SHARED=no"
66 OPENOCD_TAG="`git tag --points-at HEAD`"
67 [ -z $OPENOCD_TAG ] && OPENOCD_TAG="`git rev-parse --short HEAD`"
68 # set env and call cross-build.sh
69 export OPENOCD_TAG=$OPENOCD_TAG
70 export OPENOCD_SRC=$PWD
71 export OPENOCD_CONFIG=""
72 mkdir -p $BUILD_DIR && cd $BUILD_DIR
73 bash $OPENOCD_SRC/contrib/cross-build.sh $HOST
76 cp `$HOST-gcc --print-file-name=libwinpthread-1.dll` ./bin/
77 cp `$HOST-gcc --print-file-name=libgcc_s_sjlj-1.dll` ./bin/
78 # prepare the artifact
79 ARTIFACT="openocd-${OPENOCD_TAG}-${HOST}.tar.gz"
81 echo "ARTIFACT_NAME=$ARTIFACT" >> $GITHUB_ENV
82 echo "ARTIFACT_PATH=$PWD/$ARTIFACT" >> $GITHUB_ENV
83 - name: Publish OpenOCD packaged for windows
84 uses: actions/upload-artifact@v1
86 name: ${{ env.ARTIFACT_NAME }}
87 path: ${{ env.ARTIFACT_PATH }}
88 - name: Create Release
90 if: startsWith(github.ref, 'refs/tags/')
91 uses: actions/create-release@v1.1.4
93 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
95 tag_name: ${{ github.ref }}
96 release_name: ${{ github.ref }}
99 - name: Release OpenOCD packaged for windows
100 if: startsWith(github.ref, 'refs/tags/')
101 uses: actions/upload-release-asset@v1
103 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
105 upload_url: ${{ steps.create_release.outputs.upload_url }}
106 asset_path: ${{ env.ARTIFACT_PATH }}
107 asset_name: ${{ env.ARTIFACT_NAME }}
108 asset_content_type: application/gzip