diff options
author | 1138-4EB <1138-4EB@users.noreply.github.com> | 2019-11-21 17:39:24 +0000 |
---|---|---|
committer | tgingold <tgingold@users.noreply.github.com> | 2019-11-21 18:39:24 +0100 |
commit | e506f77e8f6ddeb3e114a3b7e3ce5f114192d801 (patch) | |
tree | d9387c5867ba98c81988591713249915230db9e3 /dist/msys2-mingw | |
parent | 03862a4607fd127e6570a3e141a92265a23c2a68 (diff) | |
download | ghdl-e506f77e8f6ddeb3e114a3b7e3ce5f114192d801.tar.gz ghdl-e506f77e8f6ddeb3e114a3b7e3ce5f114192d801.tar.bz2 ghdl-e506f77e8f6ddeb3e114a3b7e3ce5f114192d801.zip |
Actions: add workflow 'push' (#1016)
* use CC=clang to build C sources on macOS
* actions: ensure that shared libs are in the PATH on windows
* ci: add GitHub Actions 'push' workflow
* ci: fix group labels
* dist: add GRAY to ansi_color
* ci: use same scripts for GHA and Travis
Diffstat (limited to 'dist/msys2-mingw')
-rw-r--r-- | dist/msys2-mingw/llvm/PKGBUILD | 28 | ||||
-rw-r--r-- | dist/msys2-mingw/mcode/PKGBUILD | 28 | ||||
-rw-r--r-- | dist/msys2-mingw/run.sh | 123 |
3 files changed, 179 insertions, 0 deletions
diff --git a/dist/msys2-mingw/llvm/PKGBUILD b/dist/msys2-mingw/llvm/PKGBUILD new file mode 100644 index 000000000..0f6ebf9af --- /dev/null +++ b/dist/msys2-mingw/llvm/PKGBUILD @@ -0,0 +1,28 @@ +_realname=ghdl-llvm +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=ci +pkgrel=1 +pkgdesc="GHDL: the open-source analyzer, compiler and simulator for VHDL (LLVM backend) (mingw-w64)" +arch=('any') +#depends=() +makedepends=("${MINGW_PACKAGE_PREFIX}-clang" "${MINGW_PACKAGE_PREFIX}-gcc-ada") +#source=( +# "ghdl::git://github.com/ghdl/ghdl.git#branch=master" +#) +#sha512sums=( +# 'SKIP' +#) + +build() { + mkdir "${srcdir}/builddir" + cd "${srcdir}/builddir" + ../../../../../configure --prefix=${MINGW_PREFIX} --with-llvm-config LDFLAGS=-static --enable-libghdl --enable-synth + make GNATMAKE="gnatmake -j$(nproc)" +} + +package() { + cd "${srcdir}/builddir" + mkdir -p "${pkgdir}${MINGW_PREFIX}/lib" + make DESTDIR="${pkgdir}" install +} diff --git a/dist/msys2-mingw/mcode/PKGBUILD b/dist/msys2-mingw/mcode/PKGBUILD new file mode 100644 index 000000000..591fa6693 --- /dev/null +++ b/dist/msys2-mingw/mcode/PKGBUILD @@ -0,0 +1,28 @@ +_realname=ghdl-mcode +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") +pkgver=ci +pkgrel=1 +pkgdesc="GHDL: the open-source analyzer, compiler and simulator for VHDL (mcode backend) (mingw-w64)" +arch=('any') +#depends=() +makedepends=("${MINGW_PACKAGE_PREFIX}-gcc" "${MINGW_PACKAGE_PREFIX}-gcc-ada") +#source=( +# "ghdl::git://github.com/ghdl/ghdl.git#branch=master" +#) +#sha512sums=( +# 'SKIP' +#) + +build() { + mkdir "${srcdir}/builddir" + cd "${srcdir}/builddir" + ../../../../../configure --prefix=${MINGW_PREFIX} LDFLAGS=-static --enable-libghdl --enable-synth + make GNATMAKE="gnatmake -j$(nproc)" +} + +package() { + cd "${srcdir}/builddir" + mkdir -p "${pkgdir}${MINGW_PREFIX}/lib" + make DESTDIR="${pkgdir}" install +} diff --git a/dist/msys2-mingw/run.sh b/dist/msys2-mingw/run.sh new file mode 100644 index 000000000..42af62b19 --- /dev/null +++ b/dist/msys2-mingw/run.sh @@ -0,0 +1,123 @@ +#!/bin/sh + +# Stop in case of error +set -e + +enable_color() { + ENABLECOLOR='-c ' + ANSI_RED="\033[31m" + ANSI_GREEN="\033[32m" + ANSI_YELLOW="\033[33m" + ANSI_BLUE="\033[34m" + ANSI_MAGENTA="\033[35m" + ANSI_GRAY="\033[90m" + ANSI_CYAN="\033[36;1m" + ANSI_DARKCYAN="\033[36m" + ANSI_NOCOLOR="\033[0m" +} + +disable_color() { unset ENABLECOLOR ANSI_RED ANSI_GREEN ANSI_YELLOW ANSI_BLUE ANSI_MAGENTA ANSI_CYAN ANSI_DARKCYAN ANSI_NOCOLOR; } +enable_color + +print_start() { + if [ "x$2" != "x" ]; then + COL="$2" + elif [ "x$BASE_COL" != "x" ]; then + COL="$BASE_COL" + else + COL="$ANSI_YELLOW" + fi + printf "${COL}${1}$ANSI_NOCOLOR\n" +} + +gstart () { + print_start "$@" +} +gend () { + : +} + +[ -n "$CI" ] && { + echo "INFO: set 'gstart' and 'gend' for CI" + gstart () { + printf '::group::' + print_start "$@" + SECONDS=0 + } + + gend () { + duration=$SECONDS + echo '::endgroup::' + printf "${ANSI_GRAY}took $(($duration / 60)) min $(($duration % 60)) sec.${ANSI_NOCOLOR}\n" + } +} || echo "INFO: not in CI" + +#--- + +cd $(dirname $0) + +build () { + gstart 'Install common build dependencies' + pacman -S --noconfirm base-devel git + gend + + if [ -z "$TARGET" ]; then + printf "${ANSI_RED}Undefined TARGET!$ANSI_NOCOLOR" + exit 1 + fi + cd "$TARGET" + + MINGW_INSTALLS="$(echo "$MINGW_INSTALLS" | tr '[:upper:]' '[:lower:]')" + + case "$MINGW_INSTALLS" in + mingw32) + TARBALL_ARCH="i686" + ;; + mingw64) + TARBALL_ARCH="x86_64" + + # FIXME: specific versions of these packages should be installed automatically by makepkg-mingw. + # E.g.: mingw-w64-x86_64-llvm-8.0.1-3 mingw-w64-x86_64-clang-8.0.1-3 mingw-w64-x86_64-z3-4.8.5-1 + # However, specifying the version produces 'error: target not found:' + gstart "Install build dependencies" + pacman -S --noconfirm mingw-w64-x86_64-llvm mingw-w64-x86_64-clang mingw-w64-x86_64-z3 + gend + ;; + *) + echo "Unknown MING_INSTALLS=${MINGW_INSTALLS}!" + exit 1 + esac + gstart 'Install toolchain' + pacman -S --noconfirm mingw-w64-${TARBALL_ARCH}-toolchain + gend + + gstart 'Build package' + dos2unix PKGBUILD + makepkg-mingw -sCLfc --noconfirm --noprogressbar + gend + + ls -la + + gstart 'Install package' + pacman --noconfirm -U "mingw-w64-${TARBALL_ARCH}-ghdl-${TARGET}-ci"-*-any.pkg.tar.xz + gend +} + +test () { + gstart 'Environment' + env | grep MSYSTEM + env | grep MINGW + gend + + export PATH=$PATH:"$(cd $(dirname $(which ghdl))/../lib; pwd)" + GHDL=ghdl ../../testsuite/testsuite.sh +} + +case "$1" in + -t) + test + ;; + *) + build + ;; +esac |