From 3e9e9f65b060a3502cb5be239022ab06a529ea7e Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sat, 26 Aug 2017 21:07:03 +0200 Subject: [PATCH] vasm: add recipe for version 1.8a * Add 6800 CPU, just because. --- dev-lang/vasm/vasm-1.8a.recipe | 85 ++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 dev-lang/vasm/vasm-1.8a.recipe diff --git a/dev-lang/vasm/vasm-1.8a.recipe b/dev-lang/vasm/vasm-1.8a.recipe new file mode 100644 index 000000000..825d02dcc --- /dev/null +++ b/dev-lang/vasm/vasm-1.8a.recipe @@ -0,0 +1,85 @@ +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="http://server.owl.de/~frank/tags/vasm1_8a.tar.gz" +CHECKSUM_SHA256="69981927a5e12f4befeb4b4b7b5eec8114f1470f7ec9131f9adf11034ab75c9f" +SOURCE_DIR="vasm" + +ARCHITECTURES="x86_gcc2" + +PROVIDES=" + vasm = $portVersion + cmd:vasmz80_oldstyle + cmd:vasm6800_oldstyle + " +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 +}