From 0b60738e6489f856f1992a5cc684b76a47133b1b Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Thu, 20 Oct 2022 21:13:57 +0100 Subject: [PATCH] Updates for MSYS2 PKGBUILD Co-authored-by: Adam Barnes --- .github/workflows/build-test.yml | 2 +- contrib/msys2/PKGBUILD | 75 ++++++++++++++++++++++---------- src/Makemodule.am | 4 +- src/nvc.c | 2 +- 4 files changed, 56 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 9de9eaa7..731bfe30 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -104,7 +104,7 @@ jobs: steps: - uses: actions/checkout@v3 with: - fetch-depth: 1 + fetch-depth: 0 # Needed for PKGBUILD - uses: msys2/setup-msys2@v2 with: update: true diff --git a/contrib/msys2/PKGBUILD b/contrib/msys2/PKGBUILD index f061193f..c971be32 100644 --- a/contrib/msys2/PKGBUILD +++ b/contrib/msys2/PKGBUILD @@ -1,42 +1,69 @@ -pkgname=${MINGW_PACKAGE_PREFIX}-nvc +_realname=nvc +pkgbase=mingw-w64-${_realname} +pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}") repo_root_dir=$(git rev-parse --show-toplevel) -commit7=$(git describe --match=X --always) -read -r l<$repo_root_dir/configure.ac -[[ $l =~ ([[:digit:]][^\]]*) ]] -nvcver="${BASH_REMATCH[1]}_${commit7}" -pkgver=${nvcver//[-]/_} +_pkgver() { + (cd "${repo_root_dir}";\ + git describe --long | sed 's/^r\(.*\)/\1/; s/\([^-]*-g\)/r\1/;s/-/./g') +} +pkgver="$(_pkgver)" pkgrel=1 -pkgdesc="VHDL compiler and simulator" -arch=('x86_64') -mingw_arch=('mingw64') -url='https://github.com/nickg/nvc' +pkgdesc="VHDL compiler and simulator (mingw-w64)" +arch=('any') +mingw_arch=('mingw64' 'ucrt64' 'clang64') +url='https://www.nickg.me.uk/nvc/' license=('GPL3') +groups=("${MINGW_PACKAGE_PREFIX}-eda") depends=( + "${MINGW_PACKAGE_PREFIX}-llvm" # required by NVC for compiling + "${MINGW_PACKAGE_PREFIX}-cc" # required by NVC for linking +) +makedepends=( "base-devel" "git" "autoconf" "automake-wrapper" - "${MINGW_PACKAGE_PREFIX}-gcc" - "${MINGW_PACKAGE_PREFIX}-llvm" "${MINGW_PACKAGE_PREFIX}-ncurses" "${MINGW_PACKAGE_PREFIX}-libffi" "${MINGW_PACKAGE_PREFIX}-check" "${MINGW_PACKAGE_PREFIX}-pkg-config" ) -makedepends=( "${depends[@]}" ) -provides=("${MINGW_PACKAGE_PREFIX}-nvc") -build() { - makepkg_dir=$(pwd) - cd $repo_root_dir + +pkgver() { + _pkgver +} + +prepare() { + mkdir -p "${srcdir}/${_realname}-${pkgver}" + cd "${repo_root_dir}" + ./autogen.sh - cd $makepkg_dir - mkdir $srcdir/build - cd $srcdir/build - $repo_root_dir/configure --prefix=${MINGW_PREFIX} +} + +build() { + cd "${srcdir}/${_realname}-${pkgver}" + mkdir -p "${srcdir}/build-${MSYSTEM}" && cd "${srcdir}/build-${MSYSTEM}" + + "${repo_root_dir}"/configure \ + --prefix="${MINGW_PREFIX}" \ + --build="${MINGW_CHOST}" \ + --host="${MINGW_CHOST}" \ + --target="${MINGW_CHOST}" \ + --enable-static \ + --enable-shared \ + --program-prefix= + make } + +check() { + cd "${srcdir}/build-${MSYSTEM}" + + make check +} + package() { - cd ${srcdir}/build - #mkdir -p "${pkgdir}/${MINGW_PREFIX}/lib" - make DESTDIR=$pkgdir install + cd "${srcdir}/build-${MSYSTEM}" + + make install DESTDIR="${pkgdir}" } diff --git a/src/Makemodule.am b/src/Makemodule.am index 825c4b6d..d910adbe 100644 --- a/src/Makemodule.am +++ b/src/Makemodule.am @@ -105,8 +105,10 @@ nodist_EXTRA_bin_nvc_SOURCES += gitsha.h CLEANFILES += gitsha.h BUILT_SOURCES += gitsha.h +GIT_SHA_CMD = git describe --long | sed 's/^r\(.*\)/\1/; s/\([^-]*-g\)/r\1/;s/-/./g' + gitsha.h: .git/logs/HEAD - $(AM_V_GEN)echo "#define GIT_SHA \"$$(git describe --match=X --always --dirty)\"" > gitsha.h + $(AM_V_GEN)echo "#define GIT_SHA \"$$(GIT_DIR=$(top_srcdir)/.git $(GIT_SHA_CMD))\"" > gitsha.h endif EXTRA_DIST += src/symbols.txt diff --git a/src/nvc.c b/src/nvc.c index 6e462f27..9918e7ba 100644 --- a/src/nvc.c +++ b/src/nvc.c @@ -56,7 +56,7 @@ const char *copy_string = "and\nyou are welcome to redistribute it under certain conditions. See " "the GNU\nGeneral Public Licence for details."; const char *version_string = - PACKAGE_STRING GIT_SHA_ONLY(" " GIT_SHA) + PACKAGE_STRING GIT_SHA_ONLY(" (" GIT_SHA ")") LLVM_ONLY(" (Using LLVM " LLVM_VERSION ")") DEBUG_ONLY(" [debug]"); static ident_t top_level = NULL; -- 2.39.2