git: 9e0e0d7b0444 - main - devel/exomizer: Add new port

From: Felix Palmen <zirias_at_FreeBSD.org>
Date: Mon, 09 Jan 2023 08:23:49 UTC
The branch main has been updated by zirias:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9e0e0d7b0444ef463764be0375fcd538af5379af

commit 9e0e0d7b0444ef463764be0375fcd538af5379af
Author:     Felix Palmen <zirias@FreeBSD.org>
AuthorDate: 2023-01-06 16:02:58 +0000
Commit:     Felix Palmen <zirias@FreeBSD.org>
CommitDate: 2023-01-09 08:22:27 +0000

    devel/exomizer: Add new port
    
    Exomizer is a cruncher for old 8-bit computers, with focus on the MOS
    6502 CPU. It can create self-decrunching executables for a variety of
    these systems, as well as plain crunched data. Some decrunching code
    for the target systems is bundled.
    
    Approved by:            tcberner (mentor)
    Differential Revision:  https://reviews.freebsd.org/D37965
---
 devel/Makefile           |  1 +
 devel/exomizer/Makefile  | 43 +++++++++++++++++++++++++++++
 devel/exomizer/distinfo  |  3 +++
 devel/exomizer/pkg-descr | 24 +++++++++++++++++
 devel/exomizer/pkg-plist | 70 ++++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 141 insertions(+)

diff --git a/devel/Makefile b/devel/Makefile
index b357bbb72c13..5facac1f71f1 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -623,6 +623,7 @@
     SUBDIR += evemu
     SUBDIR += eventxx
     SUBDIR += exercisix
+    SUBDIR += exomizer
     SUBDIR += f18
     SUBDIR += f77flow
     SUBDIR += fam
diff --git a/devel/exomizer/Makefile b/devel/exomizer/Makefile
new file mode 100644
index 000000000000..a02af825ea1b
--- /dev/null
+++ b/devel/exomizer/Makefile
@@ -0,0 +1,43 @@
+PORTNAME=	exomizer
+DISTVERSION=	3.1.1
+CATEGORIES=	devel
+MASTER_SITES=	https://bitbucket.org/magli143/exomizer/wiki/downloads/
+
+MAINTAINER=	zirias@FreeBSD.org
+COMMENT=	Cruncher for 6502-based systems
+WWW=		https://bitbucket.org/magli143/exomizer/wiki/Home
+
+LICENSE=		ZLIB EXO
+LICENSE_COMB=		multi
+LICENSE_NAME_EXO=	exomizer
+LICENSE_TEXT_EXO=	The names of this software and/or it's copyright\
+			holders may not be used to endorse or promote products\
+			derived from this software without specific prior\
+			written permission.
+LICENSE_PERMS_EXO=	dist-mirror pkg-mirror auto-accept
+
+USES=		gmake zip
+
+MAKE_ARGS=	LDFLAGS="${LDFLAGS} -s" \
+		SHELL="${SH} -x" \
+		WFLAGS="${CFLAGS}"
+ALL_TARGET=	build
+
+NO_WRKSUBDIR=	yes
+BUILD_WRKSRC=	${WRKSRC}/src
+
+OPTIONS_DEFINE=	DOCS
+
+do-install:
+	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/exomizer \
+		${STAGEDIR}${PREFIX}/bin/exomizer
+	${INSTALL_PROGRAM} ${BUILD_WRKSRC}/exobasic \
+		${STAGEDIR}${PREFIX}/bin/exobasic
+	(cd ${WRKSRC} && ${COPYTREE_SHARE} "exodecrs rawdecrs" \
+		${STAGEDIR}${DATADIR})
+
+do-install-DOCS-on:
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	${INSTALL_MAN} ${WRKSRC}/*.txt ${STAGEDIR}${DOCSDIR}
+
+.include <bsd.port.mk>
diff --git a/devel/exomizer/distinfo b/devel/exomizer/distinfo
new file mode 100644
index 000000000000..464fd37e5c30
--- /dev/null
+++ b/devel/exomizer/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1673014159
+SHA256 (exomizer-3.1.1.zip) = 2dfc821220d90185e31b5fe0958682e498e1bd8aaca7fe1b122febb863e9fe2d
+SIZE (exomizer-3.1.1.zip) = 713134
diff --git a/devel/exomizer/pkg-descr b/devel/exomizer/pkg-descr
new file mode 100644
index 000000000000..3bc725d33b37
--- /dev/null
+++ b/devel/exomizer/pkg-descr
@@ -0,0 +1,24 @@
+Exomizer is a program that compresses files in a way that tries to be as
+efficient as possible but still allows them to be decompressed in environments
+where CPU speed and RAM are limited. For some popular 8-bit computers using
+6502 compatible CPUs it can also generate executable files that decompress
+themselves in memory when run.
+
+Exomizer operates in two major modes. It has a raw mode that compresses plain
+files and produces plain files. This mode is used by the raw subcommand. All
+other subcommands use the second mode. It requires all source files to be
+targeted to be decrunched at specific addresses in the 16-bit address space of
+the target computer. In this mode, no file can be larger than 64kB since all
+data must be addressable using 16-bits. The targeted mode has the following
+features:
+* It reads plain or .prg files to any given address.
+* It can produce stand-alone self-decrunching files for the following targets:
+  - Commodore VIC20, C64, C65, C16/plus4, C128 and PET 4032
+  - Atari 400/800 XL/XE
+  - Apple ][+ and //e
+  - Oric-1 and Oric Atmos
+  - BBC Micro B
+* It can produce files for both "in memory" and "from disk" decrunching.
+* It handles RLE-sequences well, no packer is necessary.
+* It is able to link/combine more than one source file into the same crunched
+  target file.
diff --git a/devel/exomizer/pkg-plist b/devel/exomizer/pkg-plist
new file mode 100644
index 000000000000..e917d1b37df4
--- /dev/null
+++ b/devel/exomizer/pkg-plist
@@ -0,0 +1,70 @@
+bin/exobasic
+bin/exomizer
+%%PORTDOCS%%%%DOCSDIR%%/changelog.txt
+%%PORTDOCS%%%%DOCSDIR%%/exo20info.txt
+%%PORTDOCS%%%%DOCSDIR%%/exo31info.txt
+%%PORTDOCS%%%%DOCSDIR%%/exobasic10b2.txt
+%%DATADIR%%/exodecrs/Makefile
+%%DATADIR%%/exodecrs/README_exo3.txt
+%%DATADIR%%/exodecrs/acme/Makefile
+%%DATADIR%%/exodecrs/acme/exodecrunch.asm
+%%DATADIR%%/exodecrs/acme/main.asm
+%%DATADIR%%/exodecrs/acme/split/Makefile
+%%DATADIR%%/exodecrs/acme/split/data.asm.template
+%%DATADIR%%/exodecrs/acme/split/main.asm
+%%DATADIR%%/exodecrs/c64.cfg
+%%DATADIR%%/exodecrs/dasm/Makefile
+%%DATADIR%%/exodecrs/dasm/exodecrunch.s
+%%DATADIR%%/exodecrs/dasm/main.s
+%%DATADIR%%/exodecrs/dasm/split/Makefile
+%%DATADIR%%/exodecrs/dasm/split/data.s.template
+%%DATADIR%%/exodecrs/dasm/split/main.s
+%%DATADIR%%/exodecrs/data.bin
+%%DATADIR%%/exodecrs/exodecrunch.s
+%%DATADIR%%/exodecrs/exostreamdecr1.s
+%%DATADIR%%/exodecrs/exostreamdecr2.s
+%%DATADIR%%/exodecrs/main.s
+%%DATADIR%%/exodecrs/main1.s
+%%DATADIR%%/exodecrs/main2.s
+%%DATADIR%%/exodecrs/perf/Makefile
+%%DATADIR%%/exodecrs/perf/data.raw
+%%DATADIR%%/exodecrs/split/Makefile
+%%DATADIR%%/exodecrs/split/data.s.template
+%%DATADIR%%/exodecrs/split/main.s
+%%DATADIR%%/exodecrs/testrun.c
+%%DATADIR%%/rawdecrs/6809/README_exo3.txt
+%%DATADIR%%/rawdecrs/6809/exo2_final.asm
+%%DATADIR%%/rawdecrs/6809/exo2_puls.txt
+%%DATADIR%%/rawdecrs/8080/P43/deexo.asm
+%%DATADIR%%/rawdecrs/8080/P43E/deexo.asm
+%%DATADIR%%/rawdecrs/8080/P47T4/deexo.asm
+%%DATADIR%%/rawdecrs/8080/README.txt
+%%DATADIR%%/rawdecrs/8086/P47/deexo.asm
+%%DATADIR%%/rawdecrs/8086/README.txt
+%%DATADIR%%/rawdecrs/Makefile
+%%DATADIR%%/rawdecrs/exodecr.c
+%%DATADIR%%/rawdecrs/exodecr.h
+%%DATADIR%%/rawdecrs/exodecrunch.c
+%%DATADIR%%/rawdecrs/exodecrunch.h
+%%DATADIR%%/rawdecrs/main.c
+%%DATADIR%%/rawdecrs/main2.c
+%%DATADIR%%/rawdecrs/test1.bin
+%%DATADIR%%/rawdecrs/test2.bin
+%%DATADIR%%/rawdecrs/test3.bin
+%%DATADIR%%/rawdecrs/test4.bin
+%%DATADIR%%/rawdecrs/thumb2/README.txt
+%%DATADIR%%/rawdecrs/thumb2/speed.S
+%%DATADIR%%/rawdecrs/thumb2/universal.S
+%%DATADIR%%/rawdecrs/z80/deexoopt.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_b0.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_b1.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_b2.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_b3.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_b4.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_f0.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_f1.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_f2.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_f3.asm
+%%DATADIR%%/rawdecrs/z80/deexoopt_f4.asm
+%%DATADIR%%/rawdecrs/z80/lgpl-2.1.txt
+%%DATADIR%%/rawdecrs/z80/readme.txt