summaryrefslogtreecommitdiff
path: root/dev-lang/smlnj/smlnj-110.99.4.ebuild
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-08-05 21:20:55 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-08-05 21:20:55 +0100
commit2092ebe8b45cc45ad3357e2ccb2c37d5c1eaba2a (patch)
tree25c07bf0e025915c671c69127e02b8d201967e16 /dev-lang/smlnj/smlnj-110.99.4.ebuild
parent2fc12e1ffd37b655f78c4277bd595010e18a8447 (diff)
gentoo auto-resync : 05:08:2023 - 21:20:55
Diffstat (limited to 'dev-lang/smlnj/smlnj-110.99.4.ebuild')
-rw-r--r--dev-lang/smlnj/smlnj-110.99.4.ebuild151
1 files changed, 151 insertions, 0 deletions
diff --git a/dev-lang/smlnj/smlnj-110.99.4.ebuild b/dev-lang/smlnj/smlnj-110.99.4.ebuild
new file mode 100644
index 000000000000..8b5e2ab139ba
--- /dev/null
+++ b/dev-lang/smlnj/smlnj-110.99.4.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Standard ML of New Jersey compiler and libraries"
+HOMEPAGE="http://www.smlnj.org"
+
+BASE_URI="http://smlnj.cs.uchicago.edu/dist/working/${PV}"
+
+SRC_FILES="
+doc.tgz
+
+config.tgz
+
+asdl.tgz
+cm.tgz
+compiler.tgz
+runtime.tgz
+system.tgz
+MLRISC.tgz
+smlnj-lib.tgz
+old-basis.tgz
+
+ckit.tgz
+nlffi.tgz
+
+cml.tgz
+eXene.tgz
+
+ml-lpt.tgz
+ml-lex.tgz
+ml-yacc.tgz
+ml-burg.tgz
+
+pgraph.tgz
+trace-debug-profile.tgz
+
+heap2asm.tgz
+
+smlnj-c.tgz
+"
+
+SRC_URI="
+ amd64? ( ${BASE_URI}/boot.amd64-unix.tgz -> ${P}-boot.amd64-unix.tgz )
+ ppc? ( ${BASE_URI}/boot.ppc-unix.tgz -> ${P}-boot.ppc-unix.tgz )
+ sparc? ( ${BASE_URI}/boot.sparc-unix.tgz -> ${P}-boot.sparc-unix.tgz )
+ x86? ( ${BASE_URI}/boot.x86-unix.tgz -> ${P}-boot.x86-unix.tgz )
+"
+
+for file in ${SRC_FILES} ; do
+ SRC_URI+=" ${BASE_URI}/${file} -> ${P}-${file} "
+done
+
+S="${WORKDIR}"
+
+LICENSE="BSD"
+SLOT="0"
+
+# sparc support should be there but is untested
+KEYWORDS="~amd64 ~ppc ~x86"
+
+src_unpack() {
+ mkdir -p "${S}" || die
+ local file
+ for file in ${A} ; do
+ if [[ ${file} != ${P}-config.tgz ]] ; then
+ cp "${DISTDIR}/${file}" "${S}/${file#${P}-}" || die
+ fi
+ done
+
+ # make sure we don't use the internet to download anything
+ unpack ${P}-config.tgz
+ rm config/*.bat || die
+ echo SRCARCHIVEURL=\"file:/${S}\" > "${S}"/config/srcarchiveurl
+
+ mkdir base || die # without this unpacking runtime will fail
+ ./config/unpack "${S}" runtime || die
+
+ # Unpack asdl to fix autoconf linker check
+ unpack "${S}"/asdl.tgz
+}
+
+src_prepare() {
+ default
+
+ # respect CC et al. (bug 243886)
+ sed -e "/^AS/s|as|$(tc-getAS)|" \
+ -e "/^CC/s|gcc|$(tc-getCC)|" \
+ -e "/^CPP/s|gcc|$(tc-getCC)|" \
+ -e "/^CFLAGS/{s|-O[0123s]|| ; s|=|= ${CFLAGS}|}" \
+ -i base/runtime/objs/mk.* || die
+ sed -e "/^AS/s|as|$(tc-getAS)|" \
+ -e "/^AR/s|ar|$(tc-getAR)|" \
+ -e "/^CC/s|cc|$(tc-getCC)|" \
+ -e "/^CPP/s|/lib/cpp|$(tc-getCPP)|" \
+ -e "/^RANLIB/s|ranlib|$(tc-getRANLIB)|" \
+ -i base/runtime/objs/makefile || die
+
+ sed -i "s|nm |$(tc-getNM) |g" config/chk-global-names.sh || die
+ sed -i "/^AC_PATH_PROG/s|\[ld\]|\[$(tc-getLD)\]|" asdl/configure.ac || die
+}
+
+src_compile() {
+ local config_opts=( )
+ use amd64 && config_opts+=( "-default 64" ) # force 64-bit build for amd64
+
+ SMLNJ_HOME="${S}" ./config/install.sh ${config_opts[@]} ||
+ die "compilation failed"
+}
+
+src_install() {
+ local DIR=/usr/$(get_libdir)/${PN}
+ local i
+
+ local file
+ for file in bin/{*,.*} ; do
+ [[ -f ${file} ]] &&
+ sed -e "2iSMLNJ_HOME=${EPREFIX}/${DIR}" \
+ -e "s|${WORKDIR}|${EPREFIX}/${DIR}|" \
+ -i ${file}
+ done
+
+ newbin ./config/_heap2exec heap2exec
+ exeinto ${DIR}/bin
+ pushd bin || die
+ for i in {*,.*} ; do
+ [[ -f ${i} ]] && doexe ${i}
+ done
+ for i in ml-* sml ; do
+ dosym ../../${DIR}/bin/${i} /usr/bin/${i}
+ done
+ popd || die
+
+ exeinto ${DIR}/bin/.run
+ pushd bin/.run || die
+ for i in run* ; do
+ doexe ${i}
+ done
+ popd || die
+
+ insinto ${DIR}/bin/.heap
+ doins bin/.heap/*
+
+ insinto ${DIR}
+ doins -r lib
+ doman doc/man/man*/*.*
+ dodoc -r doc/*
+}