From f9fc72c000bcaab0639c481d3dbc0add13ca911a Mon Sep 17 00:00:00 2001 From: AlaskanEmily Date: Thu, 28 Apr 2022 15:07:33 -0700 Subject: [PATCH] New packages: mercury-22.01_1, mercury-libs-22.01_1, mercury-tools-22.01_1 --- srcpkgs/mercury-libs | 1 + srcpkgs/mercury-tools | 1 + srcpkgs/mercury/template | 150 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+) create mode 120000 srcpkgs/mercury-libs create mode 120000 srcpkgs/mercury-tools create mode 100644 srcpkgs/mercury/template diff --git a/srcpkgs/mercury-libs b/srcpkgs/mercury-libs new file mode 120000 index 000000000000..899d2a75a9aa --- /dev/null +++ b/srcpkgs/mercury-libs @@ -0,0 +1 @@ +mercury \ No newline at end of file diff --git a/srcpkgs/mercury-tools b/srcpkgs/mercury-tools new file mode 120000 index 000000000000..899d2a75a9aa --- /dev/null +++ b/srcpkgs/mercury-tools @@ -0,0 +1 @@ +mercury \ No newline at end of file diff --git a/srcpkgs/mercury/template b/srcpkgs/mercury/template new file mode 100644 index 000000000000..39c67e3aef0c --- /dev/null +++ b/srcpkgs/mercury/template @@ -0,0 +1,150 @@ +# Template file for 'mercury' +pkgname=mercury +version=22.01 +revision=1 +wrksrc="mercury-srcdist-${version}" +hostmakedepends="flex bison gettext texinfo" +depends="mercury-libs>=${version}_${revision}" +short_desc="Logic/Functional Programming Language" +maintainer="Emily McDonough " +license="GPL-2.0-only" +homepage="https://mercurylang.org/" +distfiles="http://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.xz" +checksum=4ab0734aaa66808c91ffe7f54c7d818bdc4f0247aa255932e1e3d50610db4150 +nocross="Mercury cannot be cross-compiled to different architectures" +noverifyrdeps=yes +noshlibprovides=yes +shlib_requires="libc.so.6" + +# asm_fast is preferable, but does not work on all architectures. +case "$XBPS_MACHINE" in + *x86_64*|*arm*) + _LLDS_GRADE=asm_fast ;; + *i686*) + _LLDS_GRADE=reg ;; + *) + _LLDS_GRADE=none ;; +esac + +_LIBGRADES="hlc.gc,hlc.gc.ssdebug,hlc.gc.memprof,${_LLDS_GRADE}.gc,${_LLDS_GRADE}.gc.stseg,${_LLDS_GRADE}.gc.decldebug.stseg,${_LLDS_GRADE}.gc.profdeep.stseg" + +# The parallel grades have some issues on musl systems. +if [ "$XBPS_LIBC" != musl ] ; then + _LIBGRADES="${_LIBGRADES},hlc.par.gc,${_LLDS_GRADE}.par.gc.stseg" +fi + +do_configure() { + # Prefer the low-level C grade as default, unless it is none. + if [ "${_LLDS_GRADE}" != "none" ] ; then + DEFAULT_GRADES="${_LLDS_GRADE}.gc.stseg" + else + DEFAULT_GRADES=hlc.gc + fi + + ./configure --prefix=/usr/ \ + --enable-new-mercuryfile-struct \ + --enable-gc-mmap --enable-gc-munmap \ + --without-readline --with-editline \ + --enable-libgrades="${_LIBGRADES}" --with-llds-base-grade="${_LLDS_GRADE}" --with-default-grade="${DEFAULT_GRADES}" +} + +do_build() { + make PARALLEL="${makejobs}" DESTDIR=$(pwd) + make PARALLEL="${makejobs}" DESTDIR=$(pwd) install +} + +mercury-libs_package() { + license="custom:LGPL-2.0-only-linking-exception" + short_desc+=" - runtime libraries" + noverifyrdeps=yes + noshlibprovides=yes + pkg_install() { + vmkdir /usr/lib/mercury/lib + vcopy usr/lib/mercury/lib/libgc*.so /usr/lib/mercury/lib + vlicense COPYING.LIB + for GRADE in $(echo $_LIBGRADES | sed 's/,/ /g') ; do + # Ignore profiling and debug grades for the runtime libraries. + # Also skip pregen, we don't need that after bootstrapping. + case $GRADE in + *prof*|*debug*|hlc.gc.pregen) + ;; + *) + vmkdir /usr/lib/mercury/lib/$GRADE + vcopy usr/lib/mercury/lib/$GRADE/lib*.so /usr/lib/mercury/lib/$GRADE + ;; + esac + done + } +} + +mercury-tools_package() { + depends="mercury-libs>=${version}_${revision}" + short_desc+=" - extra tools" + noverifyrdeps=yes + noshlibprovides=yes + pkg_install() { + vman usr/share/man/man1/mprof.1 + vman usr/share/man/man1/mprof_merge_runs.1 + vlicense COPYING + vbin usr/bin/mcov + vbin usr/bin/mdprof + vbin usr/bin/mercury_profile + vbin usr/bin/mprof + vbin usr/bin/mprof_merge_runs + vbin usr/bin/mtc + vbin usr/bin/mtc_diff + vbin usr/bin/mtc_union + } +} + +do_install() { + vmkdir /usr/lib/mercury/lib + vmkdir /usr/lib/mercury/conf + vman usr/share/man/man1/c2init.1 + vman usr/share/man/man1/mdb.1 + vman usr/share/man/man1/mercury_config.1 + vman usr/share/man/man1/mgnuc.1 + vman usr/share/man/man1/ml.1 + vman usr/share/man/man1/mmake.1 + vman usr/share/man/man1/mmc.1 + vman usr/share/man/man1/mtags.1 + vlicense COPYING + vbin usr/bin/c2init + vbin usr/bin/canonical_grade + vbin usr/bin/mdb + vbin usr/bin/mdemangle + vbin usr/bin/mercury_compile + vbin usr/bin/mercury_config + vbin usr/bin/mfiltercc + vbin usr/bin/mfilterjavac + vbin usr/bin/mgnuc + vbin usr/bin/mkinit + vbin usr/bin/ml + vbin usr/bin/mmake + vbin usr/bin/mmc + vbin usr/bin/mtags + vcopy usr/lib/mercury/conf/Mercury.config /usr/lib/mercury/conf/Mercury.config + vcopy usr/lib/mercury/conf/mercury_conf.h /usr/lib/mercury/conf/mercury_conf.h + vcopy usr/lib/mercury/ints /usr/lib/mercury/ints + vcopy usr/lib/mercury/inc /usr/lib/mercury/inc + vcopy usr/lib/mercury/ints /usr/lib/mercury/ints + vcopy usr/lib/mercury/mdb /usr/lib/mercury/mdb + vcopy usr/lib/mercury/mmake /usr/lib/mercury/mmake + vcopy usr/lib/mercury/lib/libgc*.a /usr/lib/mercury/lib + for GRADE in $(echo $_LIBGRADES | sed 's/,/ /g') ; do + # Skip pregen, we don't need that after bootstrapping. + if test "$GRADE" != hlc.gc.pregen ; then + vmkdir /usr/lib/mercury/lib/$GRADE + vmkdir /usr/lib/mercury/modules/$GRADE + vcopy usr/lib/mercury/lib/$GRADE/inc /usr/lib/mercury/lib/$GRADE + vcopy usr/lib/mercury/lib/$GRADE/lib*.a /usr/lib/mercury/lib/$GRADE + vcopy usr/lib/mercury/modules/$GRADE/*.init usr/lib/mercury/modules/$GRADE + # Copy the shared libraries for profiling and debug grades. + case $GRADE in + *prof*|*debug*) + vcopy usr/lib/mercury/lib/$GRADE/lib*.so /usr/lib/mercury/lib/$GRADE + ;; + esac + fi + done +}