diff --git a/.github/test.sh b/.github/test.sh new file mode 100755 index 000000000..f49eee291 --- /dev/null +++ b/.github/test.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env sh + +suffix=-11 + +git clone https://github.com/steveicarus/ivtest.git +cd ivtest + +if [ "$OS" = 'Windows_NT' ]; then + perl update_msys2_report.pl + perl vvp_reg.pl $suffix + diff --strip-trailing-cr regression_report-msys2.txt regression_report.txt +else + perl vvp_reg.pl $suffix + diff regression_report-devel.txt regression_report.txt +fi + +perl vpi_reg.pl $suffix diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..32d2ae3d0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,85 @@ +name: test + +on: + push: + pull_request: + +jobs: + + + lin: + strategy: + fail-fast: false + matrix: + os: [ + '18.04', + '20.04' + ] + runs-on: ubuntu-${{ matrix.os }} + name: '🐧 Ubuntu ${{ matrix.os }}' + steps: + + - uses: actions/checkout@v2 + + - name: Install dependencies + run: | + sudo apt update -qq + sudo apt install -y make g++ git bison flex gperf libreadline-dev autoconf + + - name: Build, install and check + run: | + autoconf + ./configure + sudo make install + make check + + - name: Test + run: ./.github/test.sh + + + win: + runs-on: windows-latest + strategy: + fail-fast: false + matrix: + include: [ + { msystem: MINGW64, arch: x86_64 }, + { msystem: MINGW32, arch: i686 } + ] + name: 🟪 ${{ matrix.msystem}} · ${{ matrix.arch }} + defaults: + run: + shell: msys2 {0} + env: + MINGW_INSTALLS: ${{ matrix.msystem }} + steps: + + - run: git config --global core.autocrlf input + shell: bash + + - uses: actions/checkout@v2 + + - uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msystem }} + update: true + install: > + git + base-devel + mingw-w64-${{ matrix.arch }}-toolchain + + - name: Build and check + run: | + cd msys2 + makepkg-mingw --noconfirm --noprogressbar -sCLf + + - name: Install + run: pacman -U --noconfirm msys2/*.zst + + - name: Test + run: ./.github/test.sh + + - uses: actions/upload-artifact@v2 + with: + name: ${{ matrix.msystem }}-${{ matrix.arch }} + path: msys2/*.zst diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 6b4e8c3b6..000000000 --- a/.travis.yml +++ /dev/null @@ -1,71 +0,0 @@ -language: cpp -sudo: required -dist: xenial - -addons: - apt: - packages: - - gperf - -sudo: false - -notifications: - email: false - -jobs: - include: - - - stage: Test - os: linux - dist: xenial - before_install: - - git clone https://github.com/steveicarus/ivtest.git - - export PATH=$HOME/bin:$PATH - script: - - autoconf - - ./configure --prefix=$HOME - - make install - - make check - - cd ivtest - - perl vvp_reg.pl - - diff regression_report-devel.txt regression_report.txt - - perl vpi_reg.pl - - - stage: Test - os: linux - dist: bionic - before_install: - - git clone https://github.com/steveicarus/ivtest.git - - export PATH=$HOME/bin:$PATH - script: - - autoconf - - ./configure --prefix=$HOME - - make install - - make check - - cd ivtest - - perl vvp_reg.pl - - diff regression_report-devel.txt regression_report.txt - - perl vpi_reg.pl - - - stage: Test - os: windows - before_install: - - git clone https://github.com/steveicarus/ivtest.git - - choco uninstall -y mingw - - choco upgrade --no-progress -y msys2 - - export msys2='cmd //C RefreshEnv.cmd ' - - export msys2+='& set MSYS=winsymlinks:nativestrict ' - - export msys2+='& C:\\tools\\msys64\\msys2_shell.cmd -defterm -no-start' - - export mingw64="$msys2 -mingw64 -full-path -here -c "\"\$@"\" --" - - export msys2+=" -msys2 -c "\"\$@"\" --" - - $msys2 pacman --sync --noconfirm --needed base-devel mingw-w64-x86_64-toolchain - script: - - $mingw64 ./autoconf.sh - - $mingw64 ./configure - - $mingw64 make install - - $mingw64 make check - - cd ivtest - - $mingw64 perl update_msys2_report.pl - - $mingw64 perl vvp_reg.pl - - diff --strip-trailing-cr regression_report-msys2.txt regression_report.txt - - $mingw64 perl vpi_reg.pl diff --git a/msys2/PKGBUILD b/msys2/PKGBUILD new file mode 100644 index 000000000..999f22f79 --- /dev/null +++ b/msys2/PKGBUILD @@ -0,0 +1,37 @@ +_realname=iverilog +pkgbase=mingw-w64-${_realname} +pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" +pkgver=11-ci +pkgrel=1 +pkgdesc="Icarus Verilog, a Verilog simulation and synthesis tool (mingw-w64)" +arch=('any') +url="http://iverilog.icarus.com/" +license=('GPLv2+') +depends=("${MINGW_PACKAGE_PREFIX}-readline" + "${MINGW_PACKAGE_PREFIX}-gcc-libs") +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" + "${MINGW_PACKAGE_PREFIX}-ghostscript") + +source=() +sha256sums=() + +build() { + cd "${srcdir}"/../.. + sh autoconf.sh + ./configure \ + --prefix="${MINGW_PREFIX}" \ + --host="$CARCH"-w64-mingw32 + mingw32-make +} + +check() { + cd "${srcdir}"/../.. + mingw32-make check +} + +package() { + cd "${srcdir}"/../.. + mingw32-make DESTDIR="${pkgdir}" install + mkdir -p "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" + mv "${pkgdir}${MINGW_PREFIX}"/*.pdf "${pkgdir}${MINGW_PREFIX}/share/doc/${_realname}" +}