Integrated Development Environment

You can almost always build any GNUstep app project with a terminal procedure like this:

. /usr/GNUstep/System/Library/Makefiles/ 
make [-j4]
[sudo -E make install]

The first line includes all the environment variables needed for GNUstep make to build an app, the second (optional) will configure the build process if needed, the third will start the actual build process (-j specifies the number of concurrent builds, should be the number of your CPU cores). make install will install the build result into /usr/GNUstep/Local. Remember to always use -E as this preserves the environment variables set by and necessary for GNUstep make.

Develop graphical user interfaces

Coming from macOS you probably know Xcode was divided into Interface Builder and Xcode / Project Builder in earlier times. The "Interface Builder" of GNUstep is "". It is the central tool for creating graphical user interface leveraging gnustep-gui (AppKit framework). Use (/usr/GNUstep/System/Tools/Gorm) to open .gorm-Bundles (Gorm will open these dirs just like files as you are used to if you come from a Mac). You are then ready to go to edit interfaces:

Screenshot showing editing a SystemPreferences Panel

For more information on how to do this see further documentation regarding GNUstep and Cocoa development.

Different approaches for building cross platform GUI

Basically you may choose one of the following paths if you plan to compile your app on macOS as well:

  1. Create the interface using Gorm (and .gorm files) and export .nib files. Cocoa will probably be able to read and execute these .nib files, but you probably will not be able to edit them using Xcode.
  2. Create the interface using Xcode (and .xibfiles) and use these for GNUstep. gnustep-gui (GNUstep AppKit framework) will probably be able to read and execute this .xib (as long as you use only classes and technologies which exist within GNUstep), but you currently will not be able to edit these files using Gorm.
  3. Create and edit .gorm files and .xib files and use both with the same Objective C code. These files can peacefully coexist as GNUstep chooses to load .gorm files over existing .xib files.

Edit code

KDevelop (based on Kate) is a very advanced and completely free (as in "free speech") Integrated Desktop Environment (IDE) leveraging the power of clang. It is primarily optimized for editing C++ code, but it supports GNUmakefiles and due to the capabilities of clang it will work with Objective C(++) quite well.

Using Arch/Manjaro just install KDevelop using sudo pacman -S kdevelop and open an project by directing KDevelop to the project's GNUmakefile.

After opening an GNUstep app project, adjust its settings by adding and setting the required includes, which should be at least /usr/GNUstep/System/Library/Headers:

Settings dialogue of KDevelop, showing the configured includes

Open the general settings of KDevelop and set "Clang format" as source code formatter to get that feature for Objective C as well. Just add a .clang-format file to your project. I recommend the "NYTimes Objective-C Style Guide", which is represented by this clang-format file.

You then are able to start editing your code. KDevelop will provide you common features like syntax highlighting, code formatting, code completion and quick code navigation:

Screenshot of KDevelop showing Objective C code and the code completion feature

Start building from KDevelop

KDevelop offers direct access to a terminal which you can use to build your projects. If you wish to use the GUI button, save a wrapper script like this one to a place you like and set this as your project's make executable:

. /usr/GNUstep/System/Library/Makefiles/ 
make "$@"


For debugging libraries or apps from the repo you are needing the debug symbols which are provided by separate debug packages. Just add -debug to any package name when installing it using pacman to get the debugging symbols installed.