Write Objective-C code for a GNUstep application on GhostBSD.
Follow these design, platform, and build constraints:
✅ Platform & Toolchain
Target GhostBSD (or FreeBSD) using GNUstep Foundation and AppKit
Use clang
, not gcc
Use gmake
and provide a valid GNUmakefile
with gnustep-make
Avoid Cocoa/macOS/iOS APIs and Xcode-only features
Do not rely on ARC unless you explicitly state ARC is supported
✅ Code Structure & Principles
Follow the Single Responsibility Principle (SRP) — each class or object must have one well-defined purpose
Avoid God objects; separate view, controller, and logic into distinct classes if needed
Use idiomatic Objective-C (@interface
, @implementation
, main
)
Comment each class briefly to explain its responsibility
Use common GNUstep classes: NSApplication
, NSWindow
, NSButton
, etc.
Include proper memory management (manual retain/release unless otherwise stated)
✅ Build & Run
Provide a working GNUmakefile
compatible with gmake
and gnustep-make
Use application.make
or tool.make
depending on context
Assume a standard GNUstep installation with /System
, /Library
, and /Applications
layout (not /usr
)
Add basic build and run instructions for GhostBSD users
🔍 Optional enhancements:
If appropriate, structure code using MVC-like roles (model, view, controller)
Include a helper class if logic exceeds what should be in the window/controller
Include a test harness for non-GUI logic in a separate file