# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 inherit eapi9-ver flag-o-matic toolchain-funcs readme.gentoo-r1 COMMIT="3a2180c063811a715faa28d39a94739c33e0abd0" DESCRIPTION="Radio Shack TRS-80 emulator" HOMEPAGE="https://www.tim-mann.org/xtrs.html" SRC_URI="https://github.com/TimothyPMann/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz ls-dos? ( https://www.tim-mann.org/trs80/ld4-631.zip https://dev.gentoo.org/~ulm/distfiles/ld4-631l.xd3 )" S="${WORKDIR}/${PN}-${COMMIT}" LICENSE="xtrs ls-dos? ( freedist )" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="ls-dos" RESTRICT="ls-dos? ( bindist )" RDEPEND="sys-libs/ncurses:0= sys-libs/readline:0= x11-libs/libX11" DEPEND="${RDEPEND}" BDEPEND="dev-embedded/zmac ls-dos? ( app-arch/unzip dev-util/xdelta:3 )" src_prepare() { default if use ls-dos; then cd "${WORKDIR}" || die xdelta3 -d -s ld4-631.dsk "${DISTDIR}"/ld4-631l.xd3 out.dsk || die mv out.dsk ld4-631.dsk || die fi } src_compile() { append-flags -std=gnu17 case $(tc-endian) in little) ;; big) append-flags -Dbig_endian ;; *) die ;; esac emake \ CC="$(tc-getCC)" \ DEBUG="${CFLAGS}" \ LDFLAGS="${LDFLAGS}" \ ZMACFLAGS="-h -l" \ HTMLDOCS= } src_install() { emake DESTDIR="${ED}" install-progs insinto /usr/share/xtrs/disks insopts -m0444 doins cpmutil.dsk utility.dsk if use ls-dos; then doins "${WORKDIR}"/ld4-631.dsk dosym disks/ld4-631.dsk /usr/share/xtrs/disk4p-0 dosym disks/utility.dsk /usr/share/xtrs/disk4p-1 fi local f for f in xtrs cassette mkdisk cmddump hex2cmd; do newman ${f}.man ${f}.1 done dodoc AUTHORS ChangeLog README xtrsrom4p.README cpmutil.html dskspec.html local DOC_CONTENTS="For copyright reasons, xtrs does not include actual ROM images. Because of this, unless you supply your own ROM, xtrs will not function in any mode except 'Model 4p' mode (a minimal free ROM is included for this), which can be run like this: \n\nxtrs -model 4p -diskdir /usr/share/xtrs \n\nIf you already own a copy of the ROM software (e.g., if you have a TRS-80 with this ROM), then you can make yourself a copy of this for use with xtrs, using utilities available on the web. To load your own ROM, specify the '-romfile1' option, or the 'Xtrs.romfile1' X resource. ROM files can be in Intel hex or binary format." readme.gentoo_create_doc } pkg_postinst() { readme.gentoo_print_elog if ver_replacing -lt 4.9d_p; then elog "The option and X resource to load a ROM file for the Model I" elog "have been renamed:" elog "'-romfile1' (instead of '-romfile') for the option," elog "'Xtrs.romfile1' (instead of 'Xtrs.romfile') for the X resource" fi }