mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-12 16:16:28 +00:00
3.9 KiB
3.9 KiB
StormC — Native IDE and Compiler Suite
Overview
StormC was a native Amiga integrated development environment (IDE) developed by Haage & Partner. Unlike SAS/C (command-line focused) or GCC (cross-compilation), StormC provided a modern GUI-based IDE running directly on the Amiga with project management, integrated editor, debugger, and compiler — similar to what Borland C++ and Visual Studio offered on PC.
Version History
| Version | Year | Key Features |
|---|---|---|
| StormC 1.0 | 1996 | Initial release, C compiler, basic IDE |
| StormC 2.0 | 1997 | C++ support, improved optimizer |
| StormC 3.0 | 1998 | Full C++ with exceptions, STL, PowerPC support |
| StormC 4.0 | 1999 | Final version, OS 3.5 integration |
Key Features
| Feature | Description |
|---|---|
| Native IDE | GUI editor + project manager running on AmigaOS itself |
| C and C++ | Full C89/C90, C++ with exceptions and RTTI |
| PowerPC | StormC 3+ could target PPC (for CyberStorm PPC, BlizzardPPC) |
| 68k code gen | 68000 through 68060 target support |
| Debugger | Integrated source-level debugger with breakpoints and watch |
| Linker | StormLink — Amiga hunk format output |
| Profiler | Built-in function-level profiler |
| AmigaOS integration | Full NDK headers, pragma support, Amiga library call stubs |
| MUI support | Built-in MUI class creation wizards (later versions) |
Project Structure
StormC used .storm project files (proprietary format) containing:
- Source file list and compilation order
- Compiler flags per file or project-wide
- Include paths and library search paths
- Debug/Release build configurations
- Target CPU selection
Compilation
; From the IDE:
; Project → Build (or press Ctrl+B)
; Command-line compiler also available:
stormc -O2 -m68020 -o myapp main.c util.c
; Typical flags:
; -m68000 Target 68000
; -m68020 Target 68020+
; -m68040 Target 68040
; -m68060 Target 68060
; -O0 to -O3 Optimization level
; -g Debug info
; -c Compile only (no link)
; -I<path> Include path
; -L<path> Library path
; -l<lib> Link library
StormC vs. Other Amiga Compilers
| Feature | SAS/C 6.58 | GCC (bebbo) | StormC 4.0 |
|---|---|---|---|
| C++ support | No (C only) | Yes (GCC 6.5) | Yes (with exceptions) |
| IDE | No (CLI + editor) | No (CLI + any editor) | Yes (native GUI) |
| Debugger | External (CodeProbe) | GDB remote | Integrated |
| Cross-compile | No (native only) | Yes (Linux/macOS host) | No (native only) |
| Optimizer quality | Excellent | Good | Good |
| PowerPC | No | No | Yes (v3+) |
| Availability | Abandonware | Free / open source | Abandonware |
| Legacy code compat | High (dominant compiler) | Moderate (GCC differences) | Moderate |
| Pragma support | Native #pragma libcall |
Inline asm stubs | Pragma compatible |
Limitations and Legacy
- Proprietary project format:
.stormfiles can't be converted to Makefiles easily - No cross-compilation: Must run on a real Amiga or emulator
- C++ ABI: StormC's C++ name mangling and vtable layout differ from GCC — libraries compiled with StormC can't be linked with GCC C++ code
- Abandoned: Haage & Partner ceased operations; no source release
- PowerPC path abandoned: The WarpOS/PowerUP split made PPC support fragmented
Despite these issues, StormC was the most productive native Amiga development environment, and many late-era Amiga applications (1996–2000) were developed with it.
References
- Haage & Partner: historical website (archived)
- Aminet:
dev/c/StormC— various StormC patches and updates - See also: sasc.md — SAS/C (dominant legacy compiler)
- See also: gcc_amiga.md — GCC cross-compiler (modern standard)