[← Home](../README.md) · [Toolchain](README.md) # 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 Include path ; -L Library path ; -l 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**: `.storm` files 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](sasc.md) — SAS/C (dominant legacy compiler) - See also: [gcc_amiga.md](gcc_amiga.md) — GCC cross-compiler (modern standard)