88 lines
2.5 KiB
Bash
88 lines
2.5 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-2017 Volker Barthelmann"
|
|
LICENSE="vasm"
|
|
REVISION="1"
|
|
SOURCE_URI="https://server.owl.de/~frank/tags/vasm1_8e.tar.gz"
|
|
CHECKSUM_SHA256="5f1ebb8b81d2d9664e5c2646f1abbc5fb795642ed117f55e84a66590a62760ff"
|
|
SOURCE_DIR="vasm"
|
|
|
|
ARCHITECTURES="x86_gcc2"
|
|
|
|
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
|
|
}
|