Files
haikuports/dev-lang/vasm/vasm-1.9d.recipe
2023-08-08 10:58:24 +02:00

91 lines
2.6 KiB
Bash

SUMMARY="Portable and retargetable assembler"
DESCRIPTION="vasm is a portable and retargetable assembler to create linkable \
objects in various formats or absolute code. Multiple CPU-, syntax and \
output-modules can be selected.
Many common directives/pseudo-opcodes are supported (depending on the syntax \
module) as well as CPU-specific extensions.
The assembler supports optimizations (e.g. choosing the shortest possible \
branch instruction or addressing mode) and relaxations (e.g. converting a \
branch to an absolute jump when necessary).
Most syntax modules support macros, include directives, repetitions, \
conditional assembly and local symbols.
Currently the following CPUs are officially supported by vasm:
* M680x0 family (including M6888x, M68851 and CPU32)
* ColdFire family (all models of V2, V3, V4, V4e)
* PowerPC family (POWER, 40x, 440, 460, 6xx, 7xx, 7xxx, 860, Book-E, e300 and e500)
* Z80 family (Z80, 8080, GBZ80, 64180, RCM2/3/4k)
* 6502 family
* Jaguar RISC (GPU and DSP instruction sets)
* ARM (architecture ARMv1 to ARMv4, including THUMB mode)
* 80x86 family (IA32 8/16/32 bit, using MIT-syntax)
* C16x/ST10
* 6800 family (6800, 6801, 6803, 68HC11)
* QNICE (elegant 16-bit FPGA CPU)
* TR3200 (virtual CPU from 0x10c)
* Raspberry-Pi VideoCore IV
These syntax flavours are supported:
* Standard MIT (GNU-as style) syntax
* Motorola/Freescale 68k syntax (Devpac compatible)
* Atari MadMac syntax (6502, 68k, Jaguar)
* Old 8-bit style syntax
Supported output file formats:
* ELF (M68k, PowerPC, i386, ARM and JRISC)
* a.out (M68k and i386)
* Amiga hunk format (M68k)
* TOS executable format (M68k)
* EHF extended hunk format (PowerPC)
* Raw, binary output (all)
* VOBJ proprietary versatile object format (all)
* Test, debugging output (all)"
HOMEPAGE="http://sun.hasenbraten.de/vasm/"
COPYRIGHT="2002-2023 Volker Barthelmann
2002-2023 Frank Wille
2013-2021 Esben Norby
2007-2009 Dominic Morris"
LICENSE="vasm"
REVISION="1"
SOURCE_URI="https://server.owl.de/~frank/tags/vasm1_9d.tar.gz"
CHECKSUM_SHA256="0e5d4285bdca8d1db9eae4ea8061788bce603bf5c1f369f070c2218b4915c985"
SOURCE_DIR="vasm"
ARCHITECTURES="all"
PROVIDES="
vasm = $portVersion
cmd:vasmz80_oldstyle
cmd:vasm6800_oldstyle
cmd:vobjdump
"
REQUIRES="
haiku
"
BUILD_REQUIRES="
haiku_devel
"
BUILD_PREREQUIRES="
cmd:gcc
cmd:make
"
BUILD()
{
make -f Makefile.Haiku $jobArgs CPU=z80 SYNTAX=oldstyle
make -f Makefile.Haiku $jobArgs CPU=6800 SYNTAX=oldstyle
# TODO add other cpu/syntax pairs as needed (not all of them make sense)
}
INSTALL()
{
mkdir $binDir
cp vasmz80_oldstyle $binDir
cp vasm6800_oldstyle $binDir
cp vobjdump $binDir
}