Developer Tools
Source tree layout
The Gershwin source tree is organized under /Developer/Library/Sources/:
Directory |
Purpose |
|---|---|
|
Live ISO build definitions |
|
Core development environment, bootstrapping scripts |
|
Applications and system services (Menu, LoginWindow, etc.) |
|
File manager and desktop |
|
Native X11 window manager |
|
System Preferences app and preference panes |
|
Terminal emulator |
|
Text editor |
|
GNUstep theme with global menu integration |
|
System-level scripts and tools |
Build system
Gershwin uses GNUstep make (tools-make). Key targets in gershwin-developer:
Target |
Description |
|---|---|
|
Build libobjc2, GNUstep base/gui/backend, and system infrastructure |
|
Build gershwin-workspace |
|
Build gershwin-windowmanager |
|
Build gershwin-components (Menu, LoginWindow, etc.) |
|
Build gershwin-systempreferences |
|
Build gershwin-terminal |
|
Build gershwin-textedit |
Starting Gershwin
After installation, start Gershwin with:
startx /System/Library/Scripts/Gershwin.sh
Or use the login window:
/System/Library/Scripts/LoginWindow.sh
Testing
Unit tests: Run
gnustep-testsfrom a component directoryUI testing: Use the
driveuitool to drive running GNUstep appsUIBridge: MCP server for programmatic UI inspection and automation (see
developer/uibridge)
Debugging
DTrace/dtruss: Available on FreeBSD; see
developer/tracingLLDB: Use
lldb_execvia UIBridge for deep process inspectionLogs: UIBridge writes diagnostics to
/tmp/uibridge.log
Resources
#gershwinon irc.libera.chat