Belgian Amiga Club

It seems there are 4 main options for Amiga C compilers

  • Sas/C
  • VBCC
    • made for cross platform compiling
    • needs addiotional header files from os3.9 NDK
    • it appears much easier to set this up outside the amiga using https://github.com/kusma/amiga-dev
    • works ... if I ever want to compile on windows this seems a good way.
  • Storm C
    • a full IDE - not really needed
    • V4 is still being sold here
    • Found V3 on http://www.amigafuture.de/downloads.php?view=detail&df_id=664 but could not get it to work
      • Ah ... the name of the install script is wrong (correct it in Install_storm_hd_english.info)
        stormCfix.png

      • And the install script refers to the folder "StormC_3.0" instead of "StormC_3_0" ->rename it
      • Ok - it installs now.
      • Works: Simple Hello-word compiles and runs - Yay!
      • I like it. It seems to be the only mature C IDE on the Amiga?
      • emeraldX11 code barfs though ... to investigate.
  • GCC
    • the latest standalone version on aminet is 2.70, seems a bit old.
    • This package is promising: http://aminet.net/package/dev/gcc/ADE
      • Yes, this seems the one ... based on gcc 2.95
      • I like that you can just park it somwhere, run 1 "ADE-Startup" scriopt and everything works, nothing to install, nothing to configure.
      • I seems to compile the sources I used for my emscripten port nicely - ACE! Got myself a working Amiga binary.
    • Gcc 6.2 was ported back to 68k atari: http://d-bug.mooo.com/beyondbrown/post/gcc-6/ - cool!
    • also very cool ,to check out if I ever take on Assembler: online C to assembler tool: http://brownbot.hopto.org/


After some fiddling I decided to go with GCC 2.95 on the amiga.
Would there be any performance differences in the final binary when using different compilers? To test.

Update:

  • It appears Sas/C produces much smaller binaries than GCC
  • to autogenerate the smakefile use "mkmk" in the sourcedir
  • to build the smakefile use "smake"
  • bottom line: I like Sas/C - let's go with that.

Update2:

After some time I forgot how to get a SAS/C environment up and running when you start with a fresh Amiga system, so here's a reminder for myself.
SAS/C needs some assigns:

  • SC: - The main installation folder and assign containing the programs, libraries, headers and sample code.
  • SC:C - The compiler program files (added to path)
  • LIB: - The SAS/C and Amiga link library files
  • INCLUDE: - The C compiler and amiga NDUK header files
  • CXXINCLUDE: - The C++ compiler header files

In my case that adds to

ASSIGN SC: DH1:sc
ASSIGN LIB: DH1:sc/lib
ASSIGN INCLUDE: DH1:sc/include
ASSIGN CXXINCLUDE: DH1:sc/cxxinclude
PATH DH1:sc/c ADD

then use mkmk to generate a smakefile and smake to compile it

Written on 03/03/2018 by Steffest

This article is part of the Wanderings in Amiga dev-land blog