File vasm.spec of Package vasm
#
# spec file for package vasm
#
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: vasm
Version: 1.9f
Release: 0
Summary: A portable and retargetable assembler
License: BSD-2-Clause
Group: Development/Languages/Other
URL: http://sun.hasenbraten.de/vasm/
Source: http://sun.hasenbraten.de/vasm/release/vasm.tar.gz
# stupid Tex is hardcoded to libz1
#BuildRequires: texinfo
#BuildRequires: texi2html
%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 (loosely ordered by maturity):
M680x0 family (including M6888x, M68851, CPU32 and Apollo 68080)
ColdFire family (all models of V2, V3, V4, V4e)
PowerPC family (POWER, 40x, 440, 460, 6xx, 7xx, 7xxx, 860, Book-E, e300 and e500)
6502 family (including 65C02, 65CE02, DTV, 45GS02, HU6280, 65802, 65816)
6809 family (6809, 6309 and 68HC12)
Z80 family (Z80, 8080, 8085, GBZ80, 64180, RCM2/3/4k)
Jaguar RISC (GPU and DSP instruction sets)
ARM (architecture ARMv1 to ARMv4, including THUMB mode)
80x86 family (IA32 8/16/32 bit, using AT&T-syntax)
C16x/ST10
6800 family (6800, 6801, 6803, 68HC11)
PDP-11 architecture (includes EIS, FIS)
QNICE (elegant 16-bit FPGA CPU)
TR3200 (virtual CPU from 0x10c)
Raspberry-Pi VideoCore IV
These syntax flavours are supported:
Standard (GNU-as style) syntax
Motorola/Freescale 68k syntax (Devpac compatible)
Atari MadMac syntax (6502, 68k, Jaguar)
Old 8-bit style syntax
%prep
%autosetup -p1 -n %{name}
%build
# see http://sun.hasenbraten.de/vasm/index.php?view=compile
for cpu in 6502 6800 6809 m68k pdp11 tr3200 vidcore x86 z80; do
for syntax in std mot; do
%make_build CPU=$cpu SYNTAX=$syntax all
done
done
#make_build doc/vasm.pdf
%install
chmod -v +x vobjdump vasm*_*
mkdir -p "%{buildroot}%{_bindir}"
cp -v vobjdump vasm*_* "%{buildroot}%{_bindir}"/
%files
#doc doc/vasm.pdf
%{_bindir}/*
%changelog