If you want to program on the Amiga, you may need a good Amiga C Programming IDE. But is there any? What are the alternatives? Let’s find out.
On the Amiga OS or Morph OS there are two fully functional native IDEs: Cube IDE and Storm C 4 IDE. Both can be used with different compilers. Another possibility is to use another operating system (Windows, Linux, MacOS, and others) and the IDEs they provide. To generate an Amiga Executable you then need a Cross Compiler.
Let’s look at both native IDEs in detail. We will also describe cross compiling.
Amiga C Programming IDE
The most comfortable way to program in any language for any platform is using an Integrated Development Environment (IDE). This is a software that simplifies the programming workflow. Instead of having to use different programs you use different tools within one environment.
Some people prefer to use the tools separate from each other. For instance, they use vi or Emacs to write the code and then use gcc from the command line to compile and link the code. In the end, it is a matter of taste and what works best for you.
To create a C-Program, you need a preprocessor, a compiler and a linker. The preprocessor prepares the code. It removes comments and empty lines and replaces the preprocessor directives with code. The compiler analyzes the code for syntax errors, optimizes the code (if asked for) and transforms it into binary object files. The linker includes the used libraries and creates the executable application.
In an IDE these tools can be accessed by menu commands or keyboard shortcuts without changing to command line or another software.
We are only looking at Amiga IDEs. You could also use an IDE on another operating system like Windows, Linux or MacOS and compile your C code with a cross compiler. Then you simply would have to copy the generated Executable on you Amiga (emulator) in order to run it.
Cube IDE
Cube IDE was developed by Dietmar Eilert and first released in 1993. The current (last) version is 1.10 and dates to September 17, 2007. The supported operating systems are Amiga OS (versions 3.5 and 3.9 only) and Morph OS.
The main editor is called GoldED 8 and supports syntax highlighting for several programming languages, including C and C++. You can fold sections of the code that you don’t need at the moment. A really cool feature is a free book on C programming which you can open while editing. You can also reduce the user interface to a minimum (editor and main functions only) in order to stay focused. A Retro OS 3 look is also possible.
Essential features of any modern IDE are a project explorer and a symbol browser. Both are available in the Cube IDE as well. You can also set compiler options with dialogs (always handy). OS symbols will be auto-completed. Also the compiler output is clickable which means that you can jump to an error. Cube IDE supports autodoc documentation and the creation of Rexx Macros (I briefly mentioned (A)Rexx in my Overview of the Amiga Programming Languages).
It supports the development process with makefile generation. So you don’t have to do the workflow manually every time. Another really nice feature is an installation assistant. It helps you to create installations for your programs.
One very important point is the compiler integration. Cube IDE has several free compilers included and integrated into the IDE. They are for AmigaOS3, PowerUP, WarpOS and MorphOS. Furthermore it supports the integration of popular C/C++ compilers GCC, vbcc, SAS/C and StormC3.
If you want to try out Cube IDE yourself, you can find a Demo version here (opens in new tab). The purchase price is currently at 19.90 € (~$24 at the time of writing).
StormC 4
StormC 4 was developed by Alinea Computer and is the latest version of the StormC IDE. It requires at minimum Amiga OS 3.0. Amiga OS 3.9 is recommended. It also runs in MorphOS and WarpOS.
The look and feel of the IDE is very Amiga native. The Menus and Windows are all in the classic Amiga style. Compiler settings are maintainable through dialogs. It supports autodoc and has an online help with quick tips for most functions.
The built-in C compiler is very professional but does not produce very portable code. For this purpose you’ll get a modified GCC compiler, the StormGCC. It is very compatible to the StormC compiler. The debugger works on 68K and PPC WarpOS programs together with the StormC and StormGCC compiler. You can debug your program as well as tasks and shared libraries at the same time.
StormC 4 supports network capabilities. You can use the distributed make which makes it possible to compile the project on different computers in a network. StormC determines free computers automatically and distributes the workload.
In terms of development workflow and teamwork, StormC 4 has very useful tools. One can also version the source code with the CVS Concurrent Version System. StormDOC is a documentation tool. It manages TODO lists, bug reports and project documentations.
You can buy the current Version of StormC 4 for 49.95 € (~ $59 at the time of writing) here. You can download a Demo Version of StormC 2 (older version) or the GNU sources of StormC 4 here. (Links open in new tab)
Developing with a Cross Compiler
It is possible to develop C programs on your preferred operating system and then generate an Amiga executable. This can be done with a cross compiler like GCC or vbcc. You would need to configure your IDE so that a cross compiler is used and that it generates Amiga object code. A makefile generator will then generate the Amiga executable.
As an example, you could use the CodeBlocks IDE on Windows and configure it with a vbcc compiler. After linking the object code you would make it and copy the executable to the Amiga (emulator) in order to run it.
Conclusion
If you want a native IDE on your Amiga or Emulator there are two possibilities. You could either use the Cube IDE or the StormC 4 IDE. If this is not for you or you don’t want to spend money, you can use an IDE on your preferred operating system. Then you would have to use a cross compiler in order to generate the Amiga executable.