Sign inSign up

gkbmdz/vbcc

By gkbmdz

•Updated almost 4 years ago

Docker image that can be used to create a container with vbcc, vasm and vlink build tools.

Image
Developer tools
0

1.6K

gkbmdz/vbcc repository overview

⁠VBCC Compiler and Assembler

Multi platform, multi target compiler, assembler and linker.

⁠SYNOPSIS

Dockerfile to build a Linux based image that can create containers for the purpose of providing build tools to cross compile on an 'x86' based host that target multiple platforms.

⁠Build Tools

The following table shows the base build tools:

NameDescription
vbccPortable ISO C compiler
vasmPortable and retargetable assembler
vlinkVersatile linker



⁠VASM Assemblers
ToolTargetSyntaxDescription
vasm6502_madmac6502madmacMotorola 6502 CPU
vasm6502_oldstyle6502oldstyleMotorola 6502 CPU
vasm6502_std6502stdMotorola 6502 CPU
vasm6800_oldstyle6800oldstyleMotorola 6800 CPU
vasm6800_std6800stdMotorola 6800 CPU
vasm6809_oldstyle6809oldstyleMotorola 6809 CPU
vasm6809_std6808stdMotorola 6808 CPU
vasmarm_stdarmstdARM CPU
vasmc16x_stdC16xstdInfineon C16x microcontroller
vasmjagrisc_madmacriscmadmacJaguuar RISC CPU
vasmjagrisc_stdriscstdJaguuar RISC CPU
vasmm68k_madmac68000madmacMotorola 68000 CPU
vasmm68k_mot68000motorolaMotorola 68000 CPU
vasmm68k_std68000stdMotorola 68000 CPU
vasmpdp11_stdpdp11stdPDP-11 CPU
vasmppc_stdppcstdPower PC CPU
vasmqnice_stdqnicestdQNICE CPU
vasmtr3200_oldstyletr3200oldstyleTR3200 RISC CPU
vasmtr3200_stdtr3200stdTR3200 RISC CPU
vasmvidcore_stdvidcorestdVidCore CPU
vasmx86_stdx86stdIntel x86 series CPU
vasmz80_oldstylez80oldstyleZilog Z80 CPU
vasmz80_stdz80stdZilog Z80 CPU



⁠VBCC Compilers
ToolTargetDescription
vbcc65026502Motorola 6502 CPU
vbcc832
vbccalphaalpha
vbccc16xc16xC16x microcontroller
vbcchc12
vbcci386i386Intel i386 CPU
vbccm68k68000Motorola 68000 CPU
vbccm68ks68000Motorola 68000 CPU
vbccppcppcPower PC CPU
vbccqniceqniceQNICE CPU
vbccvidcorevidcoreVidCore CPU
vbccz



⁠Other Build Tools

ToolTargetDescription
vlinkmultipleLinker for multiple targets



⁠Docker Image Details

The Docker image uses 2 stages. The first stage is based on an alpine linux image and is used to download and extract the vbcc and vasm binaries.

The second stage is based on an alpine linux image with glibc. The 'make' program is installed and some environment variables are set. The binaries are copied from the first stage to the second stage and /home/dev/project is set as the working directory. Finally 'make' is set as the command to run when the container is started.

⁠Usage

The container can be used to build the project from the local computer in a couple of ways. The container can be run interactively and build commands can be entered in the cli. The preferred method is to run the container as part of a build process from the local computer project directory.

The following is an example of a project directory structure:

project
├── inc
├── obj
├── out
├── src
└── Makefile

From the local computer shell, inside the project folder a 'docker run' command can be issued to automatically build the project. The command can be entered manually or automatically from an IDE as part of a build task or process.

Depending on the host OS and shell being used, the command to run the container will differ slightly. The commands that follow will map a local project folder into the container at /home/dev/project and automatically run 'make' using the Makefile within the project folder.

⁠Windows Host
ShellCommand
PowerShelldocker run --rm -v ${PWD}:/home/dev/project gkbmdz/vbcc:latest
cmd.exedocker run --rm -v %CD%:/home/dev/project gkbmdz/vbcc:latest

⁠Linux Host
ShellCommand
bashdocker run --rm -v $(pwd):/home/dev/project gkbmdz/vbcc:latest

Tag summary

Content type

Image

Digest

sha256:f4dae755d…

Size

41.1 MB

Last updated

almost 4 years ago

docker pull gkbmdz/vbcc