<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.gnustep.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Letterus</id>
	<title>GNUstepWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.gnustep.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Letterus"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php/Special:Contributions/Letterus"/>
	<updated>2026-05-18T02:55:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.7</generator>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User:Letterus&amp;diff=7384</id>
		<title>User:Letterus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User:Letterus&amp;diff=7384"/>
		<updated>2024-12-19T08:04:41Z</updated>

		<summary type="html">&lt;p&gt;Letterus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is Letterus, I am interested in [http://wiki.gnustep.org/index.php/Platform:Linux#Install_from_source:_Dependencies| compiling on GNU/Linux] and [http://wiki.gnustep.org/index.php/XIB desktop cross platform development for GNU/Linux and macOS].&lt;br /&gt;
&lt;br /&gt;
* Coding: https://codeberg.org/letterus&lt;br /&gt;
* Website: http://devbeejohn.de/ | gemini://devbeejohn.de&lt;br /&gt;
* Mastodon: https://fosstodon.org/@lazarus&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User:Letterus&amp;diff=7383</id>
		<title>User:Letterus</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User:Letterus&amp;diff=7383"/>
		<updated>2024-12-19T08:02:36Z</updated>

		<summary type="html">&lt;p&gt;Letterus: Update contact information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is Letterus, I am interested in [http://wiki.gnustep.org/index.php/Platform:Linux#Install_from_source:_Dependencies| compiling on GNU/Linux] and [http://wiki.gnustep.org/index.php/XIB|desktop cross platform development for GNU/Linux and macOS].&lt;br /&gt;
&lt;br /&gt;
* Coding: https://codeberg.org/letterus&lt;br /&gt;
* Website: http://devbeejohn.de/ | gemini://devbeejohn.de&lt;br /&gt;
* Mastodon: https://fosstodon.org/@lazarus&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Success_Stories&amp;diff=7367</id>
		<title>Success Stories</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Success_Stories&amp;diff=7367"/>
		<updated>2024-07-11T11:48:58Z</updated>

		<summary type="html">&lt;p&gt;Letterus: Added SOGo and Oolite.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Adobe Crossbridge =&lt;br /&gt;
[http://adobe-flash.github.io/crossbridge/ Adobe Crossbridge] CrossBridge is the open-source version of Adobe FlasCC (formerly the Alchemy project).&lt;br /&gt;
&lt;br /&gt;
= Apportable =&lt;br /&gt;
[http://www.apportable.com Apportable] is a mobile platform for porting applications from iOS to Android.   Apportable has used [http://www.apportable.com/open_source GNUstep] to port many well known apps from the iOS app store to all kinds of Android based devices.&lt;br /&gt;
&lt;br /&gt;
= Brilliant Service =&lt;br /&gt;
[http://www.brilliantservice.co.jp/viking/ Brilliant Service] is a vendor in Japan working on creating a platform for a Head Mounted Display.   They are using GNUstep as the basis for the Objective-C based programming environment.  Their press release is [http://hmdviking.blogspot.jp/ here].&lt;br /&gt;
&lt;br /&gt;
= Cenon =&lt;br /&gt;
[http://www.cenon.info/ Cenon] is a vector graphics tool with a wide range of applications. It is built upon a modular graphical core, and offers a variety of applications beyond desktop publishing. Cenon can convert, import, and export many graphics formats. The modular concept allows the extension of Cenon for specialized applications.&lt;br /&gt;
&lt;br /&gt;
= eggPlant =&lt;br /&gt;
Created by [http://www.testplant.com TestPlant], eggPlant is an application which is used by developers for user interface testing.   It is an image based testing program which includes an integrated VNC client which can connect to other machines which are running VNC servers to run it's scripts against them using it's scripting language known as SenseTalk.&lt;br /&gt;
&lt;br /&gt;
= GNUspeech =&lt;br /&gt;
[http://www.gnu.org/software/gnuspeech/ GNUspeech] an extensible, text-to-speech package, based on real-time, articulatory, speech-synthesis-by-rules. That is, it converts text strings into phonetic descriptions, aided by a pronouncing dictionary, letter-to-sound rules, rhythm and intonation models; transforms the phonetic descriptions into parameters for a low-level articulatory synthesiser; and uses these to drive an articulatory model of the human vocal tract producing an output suitable for the normal sound output devices.&lt;br /&gt;
&lt;br /&gt;
= Oolite =&lt;br /&gt;
[https://oolite.space/ Oolite] is a free and open source 3D space trading and combat simulator &amp;quot;in the spirit of&amp;quot; Elite, a similar game published in the 1980s. The name is a contraction of object oriented Elite, because it was written in Objective-C. Among Oolite's several similarities to its source, the gaming experience is enhanced by the context set in Elite's original manual, and the accompanying novella, The Dark Wheel.&lt;br /&gt;
&lt;br /&gt;
= RailML Editor =&lt;br /&gt;
The [http://www.ivt.baug.ethz.ch/oev/railmleditor_d.html RailML Editor] was ported to GNUstep from OPENSTEP.  The RailML.org Initiative attempts to facilitate communication between railway applications.  RailML Editor is one of the many applications that follow the railML standard.&lt;br /&gt;
&lt;br /&gt;
= SOGo =&lt;br /&gt;
[https://www.sogo.nu/ SOGo] is a fully supported and trusted groupware server with a focus on scalability and open standards. SOGo provides a rich AJAX-based Web interface and supports multiple native clients through the use of standard protocols such as CalDAV, CardDAV and GroupDAV, as well as Microsoft ActiveSync.&lt;br /&gt;
&lt;br /&gt;
= NetMage =&lt;br /&gt;
NetMage is a client-server system developed completely in GNUstep and&lt;br /&gt;
Objective-C and running on GNU/Linux and other flavors of *nix. It is&lt;br /&gt;
used internally by the companies NETLAB and GTS Nextra for collective&lt;br /&gt;
monitoring and administering of long-range synchronous radio&lt;br /&gt;
telecommunications links.&lt;br /&gt;
&lt;br /&gt;
Some screenshots:&lt;br /&gt;
&lt;br /&gt;
1. NetMage with the login screen visible and a list of available&lt;br /&gt;
synchronous networks to connect to:&lt;br /&gt;
http://netdev.netlab.sk/netmage1.png&lt;br /&gt;
&lt;br /&gt;
2. NetMage showing a network of radio links in a synchronous network:&lt;br /&gt;
http://netdev.netlab.sk/netmage2.png&lt;br /&gt;
&lt;br /&gt;
3. NetMage showing the settings of a modular link multiplexer along with&lt;br /&gt;
a list of available interface cards:&lt;br /&gt;
http://netdev.netlab.sk/netmage3.png&lt;br /&gt;
&lt;br /&gt;
Please consider the above screenshots licensed under the FDL - I provide&lt;br /&gt;
them in good faith for the endorsement of GNUstep, not for any profit&lt;br /&gt;
(we don't sell the above mentioned software anyways...).&lt;br /&gt;
&lt;br /&gt;
= See also =&lt;br /&gt;
[[GNUstep in production]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7215</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7215"/>
		<updated>2021-04-19T18:11:12Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Arch Linux / Manjaro */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Arch Linux / Manjaro ==&lt;br /&gt;
&lt;br /&gt;
=== Offical packages ===&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
=== User package sources (build yourself) ===&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies for building with gcc ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show/X11:GNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7211</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7211"/>
		<updated>2021-02-22T20:32:30Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* OpenSuse */ Update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Arch Linux / Manjaro ==&lt;br /&gt;
&lt;br /&gt;
=== Offical packages ===&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
=== User package sources (build yourself) ===&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unstable packages for x86_64 ===&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app gnustep.app], [https://build.opensuse.org/project/show/home:letterus:gnustep-ngr list of packages]&lt;br /&gt;
&lt;br /&gt;
Installing packages should be as easy as:&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/pacman.conf with &amp;lt;code&amp;gt;sudo nano /etc/pacman.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 [home_letterus_gnustep-ngr_Arch]&lt;br /&gt;
 SigLevel = Optional TrustAll&lt;br /&gt;
 Server = https://download.opensuse.org/repositories/home:/letterus:/gnustep-ngr/Arch/$arch&lt;br /&gt;
&lt;br /&gt;
Install the basic package groups:&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -Syy gnustep-ngr gnustep-ngr-dev gnustep-ngr-desktop&lt;br /&gt;
&lt;br /&gt;
If you use Manjaro it is possible you need to switch to the testing or unstable branch as that repo is built against Arch packages/dependencies. Currently you are ok with stable.&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies for building with gcc ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show/X11:GNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7210</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7210"/>
		<updated>2021-02-22T20:30:45Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Arch Linux / Manjaro ==&lt;br /&gt;
&lt;br /&gt;
=== Offical packages ===&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
=== User package sources (build yourself) ===&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unstable packages for x86_64 ===&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app gnustep.app], [https://build.opensuse.org/project/show/home:letterus:gnustep-ngr list of packages]&lt;br /&gt;
&lt;br /&gt;
Installing packages should be as easy as:&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/pacman.conf with &amp;lt;code&amp;gt;sudo nano /etc/pacman.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 [home_letterus_gnustep-ngr_Arch]&lt;br /&gt;
 SigLevel = Optional TrustAll&lt;br /&gt;
 Server = https://download.opensuse.org/repositories/home:/letterus:/gnustep-ngr/Arch/$arch&lt;br /&gt;
&lt;br /&gt;
Install the basic package groups:&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -Syy gnustep-ngr gnustep-ngr-dev gnustep-ngr-desktop&lt;br /&gt;
&lt;br /&gt;
If you use Manjaro it is possible you need to switch to the testing or unstable branch as that repo is built against Arch packages/dependencies. Currently you are ok with stable.&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies for building with gcc ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show?project=X11%3AGNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
=== Version 11.3 ===&lt;br /&gt;
The package of pixman that comes with OpenSuse 11.3 seems to be broken for some graphic drivers. You may either downgrade or upgrade to another version of pixman (plus cairo) or use a different GNUstep backend.&lt;br /&gt;
For me upgrading to the cairo version as provided by the GNOME Factory project on the OpenSuse Build Service worked perfectly. [http://software.opensuse.org/ymp/GNOME:Factory/openSUSE_11.3/libcairo2.ymp?base=openSUSE%3A11.3&amp;amp;query=cairo]&lt;br /&gt;
&lt;br /&gt;
=== Version 11.4 ===&lt;br /&gt;
Packages provided by Richard Stonehouse [http://www.rstonehouse.co.uk/extras/gnustep-general/index.html here] (including installation instructions).&lt;br /&gt;
&lt;br /&gt;
=== Version 12.1 ===&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
&lt;br /&gt;
These versions require that you install a few dev packages (e.g. libffi dev, cairo dev, ...), then GNUstep SVN compiles out of the box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7209</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7209"/>
		<updated>2021-02-22T20:29:33Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Debian */ Remove obsolete dep&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Arch Linux / Manjaro ==&lt;br /&gt;
&lt;br /&gt;
=== Offical packages ===&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
=== User package sources (build yourself) ===&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unstable packages for x86_64 ===&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app gnustep.app], [https://build.opensuse.org/project/show/home:letterus:gnustep-ngr list of packages]&lt;br /&gt;
&lt;br /&gt;
Installing packages should be as easy as:&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/pacman.conf with &amp;lt;code&amp;gt;sudo nano /etc/pacman.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 [home_letterus_gnustep-ngr_Arch]&lt;br /&gt;
 SigLevel = Optional TrustAll&lt;br /&gt;
 Server = https://download.opensuse.org/repositories/home:/letterus:/gnustep-ngr/Arch/$arch&lt;br /&gt;
&lt;br /&gt;
Install the basic package groups:&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -Syy gnustep-ngr gnustep-ngr-dev gnustep-ngr-desktop&lt;br /&gt;
&lt;br /&gt;
If you use Manjaro it is possible you need to switch to the testing or unstable branch as that repo is built against Arch packages/dependencies. Currently you are ok with stable.&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show?project=X11%3AGNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
=== Version 11.3 ===&lt;br /&gt;
The package of pixman that comes with OpenSuse 11.3 seems to be broken for some graphic drivers. You may either downgrade or upgrade to another version of pixman (plus cairo) or use a different GNUstep backend.&lt;br /&gt;
For me upgrading to the cairo version as provided by the GNOME Factory project on the OpenSuse Build Service worked perfectly. [http://software.opensuse.org/ymp/GNOME:Factory/openSUSE_11.3/libcairo2.ymp?base=openSUSE%3A11.3&amp;amp;query=cairo]&lt;br /&gt;
&lt;br /&gt;
=== Version 11.4 ===&lt;br /&gt;
Packages provided by Richard Stonehouse [http://www.rstonehouse.co.uk/extras/gnustep-general/index.html here] (including installation instructions).&lt;br /&gt;
&lt;br /&gt;
=== Version 12.1 ===&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
&lt;br /&gt;
These versions require that you install a few dev packages (e.g. libffi dev, cairo dev, ...), then GNUstep SVN compiles out of the box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7208</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7208"/>
		<updated>2021-02-22T20:28:51Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Archlinux */ More instructions for Arch / Manjaro&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Arch Linux / Manjaro ==&lt;br /&gt;
&lt;br /&gt;
=== Offical packages ===&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
=== User package sources (build yourself) ===&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
=== Prebuilt unstable packages for x86_64 ===&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app gnustep.app], [https://build.opensuse.org/project/show/home:letterus:gnustep-ngr list of packages]&lt;br /&gt;
&lt;br /&gt;
Installing packages should be as easy as:&lt;br /&gt;
&lt;br /&gt;
Add the following lines to your /etc/pacman.conf with &amp;lt;code&amp;gt;sudo nano /etc/pacman.conf&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
 [home_letterus_gnustep-ngr_Arch]&lt;br /&gt;
 SigLevel = Optional TrustAll&lt;br /&gt;
 Server = https://download.opensuse.org/repositories/home:/letterus:/gnustep-ngr/Arch/$arch&lt;br /&gt;
&lt;br /&gt;
Install the basic package groups:&lt;br /&gt;
&lt;br /&gt;
 sudo pacman -Syy gnustep-ngr gnustep-ngr-dev gnustep-ngr-desktop&lt;br /&gt;
&lt;br /&gt;
If you use Manjaro it is possible you need to switch to the testing or unstable branch as that repo is built against Arch packages/dependencies. Currently you are ok with stable.&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install x-window-system-core wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show?project=X11%3AGNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
=== Version 11.3 ===&lt;br /&gt;
The package of pixman that comes with OpenSuse 11.3 seems to be broken for some graphic drivers. You may either downgrade or upgrade to another version of pixman (plus cairo) or use a different GNUstep backend.&lt;br /&gt;
For me upgrading to the cairo version as provided by the GNOME Factory project on the OpenSuse Build Service worked perfectly. [http://software.opensuse.org/ymp/GNOME:Factory/openSUSE_11.3/libcairo2.ymp?base=openSUSE%3A11.3&amp;amp;query=cairo]&lt;br /&gt;
&lt;br /&gt;
=== Version 11.4 ===&lt;br /&gt;
Packages provided by Richard Stonehouse [http://www.rstonehouse.co.uk/extras/gnustep-general/index.html here] (including installation instructions).&lt;br /&gt;
&lt;br /&gt;
=== Version 12.1 ===&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
&lt;br /&gt;
These versions require that you install a few dev packages (e.g. libffi dev, cairo dev, ...), then GNUstep SVN compiles out of the box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7207</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7207"/>
		<updated>2021-02-22T20:18:24Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Archlinux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Archlinux ==&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app gnustep.app], [https://build.opensuse.org/project/show/home:letterus:gnustep-ngr list of packages]&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install x-window-system-core wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show?project=X11%3AGNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
=== Version 11.3 ===&lt;br /&gt;
The package of pixman that comes with OpenSuse 11.3 seems to be broken for some graphic drivers. You may either downgrade or upgrade to another version of pixman (plus cairo) or use a different GNUstep backend.&lt;br /&gt;
For me upgrading to the cairo version as provided by the GNOME Factory project on the OpenSuse Build Service worked perfectly. [http://software.opensuse.org/ymp/GNOME:Factory/openSUSE_11.3/libcairo2.ymp?base=openSUSE%3A11.3&amp;amp;query=cairo]&lt;br /&gt;
&lt;br /&gt;
=== Version 11.4 ===&lt;br /&gt;
Packages provided by Richard Stonehouse [http://www.rstonehouse.co.uk/extras/gnustep-general/index.html here] (including installation instructions).&lt;br /&gt;
&lt;br /&gt;
=== Version 12.1 ===&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
&lt;br /&gt;
These versions require that you install a few dev packages (e.g. libffi dev, cairo dev, ...), then GNUstep SVN compiles out of the box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7206</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7206"/>
		<updated>2021-02-22T20:17:31Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Archlinux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Archlinux ==&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR].&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app gnustep.app]&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install x-window-system-core wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show?project=X11%3AGNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
=== Version 11.3 ===&lt;br /&gt;
The package of pixman that comes with OpenSuse 11.3 seems to be broken for some graphic drivers. You may either downgrade or upgrade to another version of pixman (plus cairo) or use a different GNUstep backend.&lt;br /&gt;
For me upgrading to the cairo version as provided by the GNOME Factory project on the OpenSuse Build Service worked perfectly. [http://software.opensuse.org/ymp/GNOME:Factory/openSUSE_11.3/libcairo2.ymp?base=openSUSE%3A11.3&amp;amp;query=cairo]&lt;br /&gt;
&lt;br /&gt;
=== Version 11.4 ===&lt;br /&gt;
Packages provided by Richard Stonehouse [http://www.rstonehouse.co.uk/extras/gnustep-general/index.html here] (including installation instructions).&lt;br /&gt;
&lt;br /&gt;
=== Version 12.1 ===&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
&lt;br /&gt;
These versions require that you install a few dev packages (e.g. libffi dev, cairo dev, ...), then GNUstep SVN compiles out of the box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7205</id>
		<title>Platform:Linux</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:Linux&amp;diff=7205"/>
		<updated>2021-02-22T20:17:11Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Archlinux */ Added info on how to obtain current GNUstep packages&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ALT Linux ==&lt;br /&gt;
&lt;br /&gt;
Includes [http://packages.altlinux.org/en/search?query=gnustep- quite a few packages] within Sisyphus the unstable development repository as of April 2014 with most of them being maintained in stable t7/branch as well; there's no metapackage so far, so&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-base&lt;br /&gt;
&lt;br /&gt;
and start deploying apps you'd like to see:&lt;br /&gt;
&lt;br /&gt;
 apt-get install gnustep-gworkspace gnustep-Affiche&lt;br /&gt;
&lt;br /&gt;
There's an installable [http://en.altlinux.org/Starterkits/gnustep LiveCD] as well.&lt;br /&gt;
&lt;br /&gt;
== Archlinux ==&lt;br /&gt;
&lt;br /&gt;
For make and base there are official [https://www.archlinux.org/packages/?q=GNUstep Packages].&lt;br /&gt;
&lt;br /&gt;
For all the other libraries and apps there are packaging sources at the [https://aur.archlinux.org/packages/?K=gnustep AUR]&lt;br /&gt;
&lt;br /&gt;
There is a repo with prebuilt, currently unstable packages using libobjc2 over there: [https://gnustep.app]&lt;br /&gt;
&lt;br /&gt;
== Debian / Ubuntu ==&lt;br /&gt;
=== Debian ===&lt;br /&gt;
Since Debian ''Sarge'' (3.1) you can use '''apt-get''' to obtain GNUstep packages.&lt;br /&gt;
&lt;br /&gt;
 # apt-get install x-window-system-core wmaker gnustep gnustep-devel gnustep-games&lt;br /&gt;
&lt;br /&gt;
to install GNUstep, X11 and Window Maker.&lt;br /&gt;
&lt;br /&gt;
The best way to get up-to-date GNUstep packages is to upgrade from ''stable'' to ''testing'' or ''unstable''.  If upgrading to Debian ''unstable'' is not desirable it is possible to simply add the unstable apt lines to the sources.list and specify the distribution when installing the packages, e.g.&lt;br /&gt;
 # apt-get install -t unstable gnumail.app&lt;br /&gt;
This method might upgrade some other packages to satisfy dependencies, but will have a much smaller impact on the system since only the packages on which GNUstep depends will be upgraded.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu ===&lt;br /&gt;
As Ubuntu is Debian-based you can likewise install gnustep libraries (and their dependencies) via&lt;br /&gt;
 sudo apt-get install gnustep gnustep-devel&lt;br /&gt;
apt will also suggest a lot of apps to install.&lt;br /&gt;
&lt;br /&gt;
=== Install from source ===&lt;br /&gt;
See [[GNUstep_under_Ubuntu_Linux]] for detailed instructions for Ubuntu and Debian. At the repository mentioned there you will see efforts to collect scripts that are able to build a working GNUstep runtime under different GNU/Linux distributions (Ubuntu and Debian currently).&lt;br /&gt;
&lt;br /&gt;
There is also a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
There are some general, but somewhat outdated instructions using the old SVN at [[GNUstep_SVN_installation_guide]].&lt;br /&gt;
&lt;br /&gt;
=== Dependencies ===&lt;br /&gt;
&lt;br /&gt;
If you want to compile from source install the following [[Dependencies]] packages (applies to both Debian and Ubuntu):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;gobjc, libx11-dev, libx11-xft, libxmu-dev, libtiff4-dev, libpng12-dev, libungif4-dev, libart-2.0-dev, libxml2-dev, libxslt1-dev, libssl-dev, libgmp3-dev, libffcall1-dev, libcairo2-dev&amp;lt;/tt&amp;gt; (universe), and &amp;lt;tt&amp;gt;svn&amp;lt;/tt&amp;gt; if you want to download the svn version.&lt;br /&gt;
&lt;br /&gt;
Optional: &amp;lt;tt&amp;gt;libaspell-dev&amp;lt;/tt&amp;gt; for [[GSspell.service]]&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
&lt;br /&gt;
This section needs updating. &lt;br /&gt;
Fedora 14 users can install GNUstep via rpm. See the [http://fedoraproject.org/wiki/Features/GNUstep Features] page.&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
To install GNUstep libs and scripts, do&lt;br /&gt;
 emerge gnustep-env&lt;br /&gt;
For a list of GNUstep-related ebuilds, see the [http://packages.gentoo.org/search/?sstring=gnustep Online Package Database]. &lt;br /&gt;
For the most recent packages, type &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package-name&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (or analogically for your cpu family: &amp;lt;tt&amp;gt;&amp;quot;~sparc&amp;quot;&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;&amp;quot;~ppc&amp;quot;&amp;lt;/tt&amp;gt; ...)&lt;br /&gt;
&lt;br /&gt;
== Slackware ==&lt;br /&gt;
&lt;br /&gt;
=== Version 10.2 ===&lt;br /&gt;
Libraries and accompanying applications will build with no modifications. Slackware 10.2 ships with GCC 3.3.6, so mixed Objective-C and C++ code is not supported, meaning additional frameworks/libraries may not be supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 11.0 ===&lt;br /&gt;
This version of Slackware works the same as the previous (10.2).  Libraries and applications will build with no modifications, but due to the GCC version used (3.4.6) Objective-C++ is not supported.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.0 ===&lt;br /&gt;
GNUstep compiles and install on Slackware 12.0 perfectly.  Unfortunately, this version of Slackware does not include an Objective-C++ compiler.&lt;br /&gt;
&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
==== Packages ====&lt;br /&gt;
Slackware packages have been created and can be found in:&lt;br /&gt;
* [ftp://ftp.gnustep.org/pub/gnustep/binaries/slackware/ GNUstep FTP] (Please read gnustep-core.README before installing)&lt;br /&gt;
==== Build Scripts ====&lt;br /&gt;
SlackBuild scripts can be found at:&lt;br /&gt;
* [http://slackbuilds.org/result/?search=gnustep SlackBuilds.org GNUstep scripts]&lt;br /&gt;
&lt;br /&gt;
== OpenSuse ==&lt;br /&gt;
Packages for GNUstep releases can be found on the Open Build Service ([https://build.opensuse.org/project/show?project=X11%3AGNUstep OBS]).&lt;br /&gt;
&lt;br /&gt;
=== Version 11.3 ===&lt;br /&gt;
The package of pixman that comes with OpenSuse 11.3 seems to be broken for some graphic drivers. You may either downgrade or upgrade to another version of pixman (plus cairo) or use a different GNUstep backend.&lt;br /&gt;
For me upgrading to the cairo version as provided by the GNOME Factory project on the OpenSuse Build Service worked perfectly. [http://software.opensuse.org/ymp/GNOME:Factory/openSUSE_11.3/libcairo2.ymp?base=openSUSE%3A11.3&amp;amp;query=cairo]&lt;br /&gt;
&lt;br /&gt;
=== Version 11.4 ===&lt;br /&gt;
Packages provided by Richard Stonehouse [http://www.rstonehouse.co.uk/extras/gnustep-general/index.html here] (including installation instructions).&lt;br /&gt;
&lt;br /&gt;
=== Version 12.1 ===&lt;br /&gt;
=== Version 12.2 ===&lt;br /&gt;
&lt;br /&gt;
These versions require that you install a few dev packages (e.g. libffi dev, cairo dev, ...), then GNUstep SVN compiles out of the box.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Themes&amp;diff=7189</id>
		<title>Themes</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Themes&amp;diff=7189"/>
		<updated>2020-05-12T11:19:00Z</updated>

		<summary type="html">&lt;p&gt;Letterus: Add how to install a theme.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of themes for your GNUstep Apps. This will help integrate GNUstep with your desktop environment of choice.&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
If the theme needs to be compiled, install it by using &amp;lt;code&amp;gt;make install&amp;lt;/code&amp;gt;. If you have a simple .theme-Bundle, simply copy the whole bundle to &amp;lt;code&amp;gt;&amp;lt;GNUstepdir&amp;gt;/Local/Library/Themes/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then you should be able set the themes using [[SystemPreferences.app]], or using the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
defaults write NSGlobalDomain GSTheme THEME-NAME&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User Maintained Themes ==&lt;br /&gt;
&lt;br /&gt;
* [[Silver.theme]] Theme with silvered controls and scrollbars at right side.&lt;br /&gt;
* [https://github.com/AlessandroSangiuliano/rik.theme Rik] - A Mac-like theme for GNUstep.&lt;br /&gt;
* [https://github.com/BertrandDekoninck/NarcissusRik NarcissusRik] - The Narcissus theme from Etoile project (see below) using Rik icons.&lt;br /&gt;
* [https://github.com/BertrandDekoninck/NesedahRik NesedahRik] - The Nesedah theme using Rik icons.&lt;br /&gt;
* [https://github.com/BertrandDekoninck/Sombre Sombre] - A fresh dark theme from Bertrand Dekoninck.&lt;br /&gt;
&lt;br /&gt;
== GNUstep Maintained Themes ==&lt;br /&gt;
&lt;br /&gt;
The GnomeTheme has been renamed to Gtk.theme.&lt;br /&gt;
It will read the current Gtk theme and apply style information to your current GNUstep setup.&lt;br /&gt;
It is available on the official GNUstep GitHub:&lt;br /&gt;
&lt;br /&gt;
https://github.com/gnustep/plugins-themes-Gtk&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
WinUXTheme is the theme for a Windows-like look and feel:&lt;br /&gt;
&lt;br /&gt;
https://github.com/gnustep/plugins-themes-WinUXTheme&lt;br /&gt;
&lt;br /&gt;
== GNUstep Application Project Themes ==&lt;br /&gt;
You find more at [http://www.nongnu.org/gap/themes/ GAP].&lt;br /&gt;
&lt;br /&gt;
== Etoile Themes (outdated) ==&lt;br /&gt;
* [[Camaelon]]&lt;br /&gt;
&lt;br /&gt;
* [http://etoileos.com/etoile/mockups/narcissus/ Narcissus]&lt;br /&gt;
&lt;br /&gt;
[[Category:Themes]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7188</id>
		<title>Building GNUstep under Debian FreeBSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7188"/>
		<updated>2020-04-30T17:27:22Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Download GNUSTEP */ Add the hint to get git submodules for libobjc2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's a tutorial on how to to build gnustep and its dependencies if you want to run it using GNUstep runtime 2.0 (ng), which has to be built using clang 8.0.&lt;br /&gt;
&lt;br /&gt;
You'll find these steps bundled in a script which you can execute under Debian 9 at https://github.com/plaurent/gnustep-build/tree/master/debian-9-clang-8.0-runtime-2.0.&lt;br /&gt;
&lt;br /&gt;
== Install empty VM ==&lt;br /&gt;
&lt;br /&gt;
We start with an empty Debian9 or FreeBSD 12 VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under Debian 9 ==&lt;br /&gt;
&lt;br /&gt;
we install these packages under Debian as they are coming up as dependencies anyhow&lt;br /&gt;
&lt;br /&gt;
  apt-get install dirmngr&lt;br /&gt;
  sudo apt -y install build-essential git subversion \&lt;br /&gt;
  libpthread-workqueue0 libpthread-workqueue-dev \&lt;br /&gt;
  libxml2 libxml2-dev \&lt;br /&gt;
  libffi6 libffi-dev \&lt;br /&gt;
  libicu-dev \&lt;br /&gt;
  libuuid1 uuid-dev uuid-runtime \&lt;br /&gt;
  libsctp1 libsctp-dev lksctp-tools \&lt;br /&gt;
  libavahi-core7 libavahi-core-dev \&lt;br /&gt;
  libavahi-client3 libavahi-client-dev \&lt;br /&gt;
  libavahi-common3 libavahi-common-dev libavahi-common-data \&lt;br /&gt;
  libgcrypt20 libgcrypt20-dev \&lt;br /&gt;
  libtiff5 libtiff5-dev \&lt;br /&gt;
  libbsd0 libbsd-dev \&lt;br /&gt;
  util-linux-locales \&lt;br /&gt;
  locales-all \&lt;br /&gt;
  libjpeg-dev \&lt;br /&gt;
  libtiff-dev \&lt;br /&gt;
  libcups2-dev \&lt;br /&gt;
  libfreetype6-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev \&lt;br /&gt;
  libgl1-mesa-dev \&lt;br /&gt;
  libpcap-dev \&lt;br /&gt;
  libc-dev libc++-dev libc++1 \&lt;br /&gt;
  python-dev swig \&lt;br /&gt;
  libedit-dev libeditline0 libeditline-dev readline-common \&lt;br /&gt;
  binfmt-support libtinfo-dev \&lt;br /&gt;
  bison flex m4 wget \&lt;br /&gt;
  libicns1 libicns-dev \&lt;br /&gt;
  libxslt1.1 libxslt1-dev \&lt;br /&gt;
  libxft2 libxft-dev \&lt;br /&gt;
  libflite1 flite1-dev \&lt;br /&gt;
  libxmu6 libxpm4 wmaker-common \&lt;br /&gt;
  libgnutls30 libgnutls28-dev \&lt;br /&gt;
  libpng-dev libpng16-16 \&lt;br /&gt;
  default-libmysqlclient-dev \&lt;br /&gt;
  libpq-dev \&lt;br /&gt;
  libstdc++-6-dev \&lt;br /&gt;
  libreadline7 libreadline-dev \gobjc-6 gobjc++-6 \&lt;br /&gt;
  libgif7 libgif-dev libwings3 libwings-dev libwraster5 \&lt;br /&gt;
  libwraster-dev libwutil5 \&lt;br /&gt;
  libcups2-dev libicu57 libicu-dev \&lt;br /&gt;
  gobjc++ \&lt;br /&gt;
  xorg \&lt;br /&gt;
  libfreetype6 libfreetype6-dev \&lt;br /&gt;
  libpango1.0-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev libssl-dev \&lt;br /&gt;
  libasound2-dev libjack-dev libjack0 libportaudio2 \&lt;br /&gt;
  libportaudiocpp0 portaudio19-dev \&lt;br /&gt;
  libstdc++-6-dev libstdc++-6-doc libstdc++-6-pic \&lt;br /&gt;
  libstdc++6 wmaker cmake cmake-curses-gui xpdf&lt;br /&gt;
&lt;br /&gt;
== Dependencies under FeeBSD 12 ==&lt;br /&gt;
&lt;br /&gt;
  pkg install git \&lt;br /&gt;
     autoconf \&lt;br /&gt;
     automake \&lt;br /&gt;
     cmake \&lt;br /&gt;
     subversion  \&lt;br /&gt;
     wget \&lt;br /&gt;
     bash \&lt;br /&gt;
     pkgconf \&lt;br /&gt;
     sudo \&lt;br /&gt;
     gmake \&lt;br /&gt;
     windowmaker \&lt;br /&gt;
     jpeg \&lt;br /&gt;
     tiff \&lt;br /&gt;
     png \&lt;br /&gt;
     libxml2 \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     gnutls \&lt;br /&gt;
     libffi \&lt;br /&gt;
     icu \&lt;br /&gt;
     cairo \&lt;br /&gt;
     avahi \&lt;br /&gt;
     portaudio \&lt;br /&gt;
     flite \&lt;br /&gt;
     pngwriter \&lt;br /&gt;
     mariadb103-client \&lt;br /&gt;
     postgresql96-client \&lt;br /&gt;
     bash \&lt;br /&gt;
     clang \&lt;br /&gt;
     lldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We install a decent clang compiler. ==&lt;br /&gt;
&lt;br /&gt;
clang-8: from clang8 repository: Add a file /etc/apt/sources.d/llvm.list with content&lt;br /&gt;
&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
&lt;br /&gt;
To install you call it like this:&lt;br /&gt;
&lt;br /&gt;
  apt-get update&lt;br /&gt;
  apt-get install clang-8 lldb-8 lld-8&lt;br /&gt;
&lt;br /&gt;
Note: clang-7 has a bug which makes gnustep-base fail during its ./configure phase.&lt;br /&gt;
&lt;br /&gt;
(Note today clang-8 was no longer in the llvm repo for some reason. Maybe temporary issue. I also tried the bleeding edge clang-9 and that worked similarly)&lt;br /&gt;
&lt;br /&gt;
Under FreeBSD we use the clang compiler which comes with FreeBSD12.&lt;br /&gt;
If you use CentOS 7 or the like, you probably have to compile the clang compiler from source. this is time consuming and can be done like tis:&lt;br /&gt;
&lt;br /&gt;
  git clone https://git.llvm.org/git/llvm.git/&lt;br /&gt;
  cd llvm/tools&lt;br /&gt;
  git clone https://git.llvm.org/git/clang.git/&lt;br /&gt;
  cd ../projects&lt;br /&gt;
  git clone https://git.llvm.org/git/compiler-rt.git/&lt;br /&gt;
  cd ..&lt;br /&gt;
  mkdir BUILD&lt;br /&gt;
  cd BUILD&lt;br /&gt;
  cmake .. -DCMAKE_BUILD_TYPE=Release make -j8&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
(note this installs your compiler in /usr/local/bin so you have to change the path on the later stages below)&lt;br /&gt;
&lt;br /&gt;
== Download GNUSTEP ==&lt;br /&gt;
&lt;br /&gt;
We download the sources we need. Make sure you use &amp;lt;code&amp;gt;--recursive&amp;lt;/code&amp;gt; for libobjc2 to get the git submodule(s) as well:&lt;br /&gt;
&lt;br /&gt;
    mkdir gnustep&lt;br /&gt;
    cd gnustep&lt;br /&gt;
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz&lt;br /&gt;
    git clone https://github.com/apple/swift-corelibs-libdispatch&lt;br /&gt;
    git clone https://github.com/gnustep/scripts&lt;br /&gt;
    git clone https://github.com/gnustep/make&lt;br /&gt;
    git clone --recursive https://github.com/gnustep/libobjc2&lt;br /&gt;
    git clone https://github.com/gnustep/base&lt;br /&gt;
    git clone https://github.com/gnustep/corebase&lt;br /&gt;
    git clone https://github.com/gnustep/gui&lt;br /&gt;
    git clone https://github.com/gnustep/back&lt;br /&gt;
    ./scripts/install-dependencies&lt;br /&gt;
&lt;br /&gt;
The last step should basically not show any additional dependency we have not already covered. On FreeBSD , the last step has to be skipped as the script is not prepared for FreeBSD yet.&lt;br /&gt;
&lt;br /&gt;
== libiconv ==&lt;br /&gt;
&lt;br /&gt;
This applies for Debian 9 (or maybe older). From Debian 10 upwards you won't need to install libiconv. You do not have to do this when installing for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
For Debian 9 (and older?): We compile libiconv. Debian comes standard with version 1.14 but there was an issue in 1.14 which got fixed in 1.15 which was relevant to us so using 1.15 is recommended.&lt;br /&gt;
&lt;br /&gt;
    tar -xvzf libiconv-1.15.tar.gz&lt;br /&gt;
    cd libiconv-1.15&lt;br /&gt;
    ./configure --enable-static --enable-dynamic&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
== Defaults ==&lt;br /&gt;
&lt;br /&gt;
We set some environment defaults for the remainder of the session&lt;br /&gt;
&lt;br /&gt;
  # we set the C and C++ compiler version&lt;br /&gt;
  export CC=/usr/bin/clang-8&lt;br /&gt;
  export CXX=/usr/bin/clang++-8&lt;br /&gt;
  export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig&lt;br /&gt;
  export LD=/usr/bin/ld.gold&lt;br /&gt;
  export LDFLAGS=-fuse-ld=/usr/bin/ld.gold&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fblocks&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the ld.gold linker is important as otherwise strange things happens. old ld does stuff wrong, newer lld from clang optimises stuff away it shouldn't.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libdispatch ==&lt;br /&gt;
&lt;br /&gt;
The libdispatch is an open source library supplied by Apple which takes care of running multiple background tasks. Apple calls it &amp;quot;Grand Central Dispatch&amp;quot;. The Swift language also uses it, hence the repo name. We're not really directly using it but other objc code might use it or benefit from it so we compile it as well.&lt;br /&gt;
&lt;br /&gt;
    cd swift-corelibs-libdispatch&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DUSE_GOLD_LINKER=YES&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libobjc2 / gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
Now we have reached a point where the magic triple libobjc2 + gnustep-make + gnustep-base comes into play. To understand the context here. The objectiveC compiler needs a runtime. The runtime is taking care of the basic functionality of objectiveC objects such as their memory allocation and release and other stuff. The compiler calls the runtime when specific stuff happens. When a method is called, the compiler puts a call into the runtime which then looks up the dynamic methods and calls the method etc. When a block ends and certain objects are no longer needed, the compiler calls the runtime so it can release the objects accordingly.&lt;br /&gt;
&lt;br /&gt;
There are different runtimes around. The original objectiveC runtime supplied by the gcc compiler. It's old, outdated and doesn't deal with automatic reference counting and a lot of other things. So it's not recommended. The libobjc2 is the &amp;quot;modern&amp;quot; rewrite for a runtime and is actually based on a project called Etoile. It's ABI has different variants. There is a fragile and a non fragile ABI.&lt;br /&gt;
&lt;br /&gt;
Read this blogpost to understand what the difference is: http://www.sealiesoftware.com/blog/archive/2009/01/27/objc_explain_Non-fragile_ivars.html&lt;br /&gt;
If you get this is wrong, you might end up with objects no longer using the right position of variables in the data of super or subclasses and things can get totally out of control. So the new non-fragile-ABI is really the way to go. There are also different versions of the ABI on how the compiler calls the runtime. So the compiler and the runtime are working together as a team.&lt;br /&gt;
&lt;br /&gt;
So once we have a runtime library which is a requirement for any objectiveC code, there is also the base library gnustep-base which corresponds to Apple's Foundation framework. This one implements basic functionality which is used in almost all ObjC code.. It brings stuff like dealing with strings, arrays, dictionaries, and lots of other things you need day in day out. It does not supply any GUI code. All NextStep/Apple ObjectiveC code is derived from a base class called NSObject which is defined in gnustep-base. GnuStep is an open source reimplementation of NextStep and the Apple Foundation/AppKit classes.&lt;br /&gt;
&lt;br /&gt;
There are 3 other libraries in GnuStep which are gnustep-gui which does all the graphical interface, gnustep-back which is the backend for the GUI (so there's a variant for X-windows, one for Windows, one for MacOS aqua etc) which is like a driver for the gui to do the displaying on actual hardware and there is gnustep-corebase which is a glue library to use objective C objects from C and to deal with the fundamental data types of objective C like NSData, NSArray etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== compiling libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
    cd libobjc2&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DBUILD_STATIC_LIBOBJC=1  \&lt;br /&gt;
             -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_LINKER=${LD} \&lt;br /&gt;
             -DCMAKE_MODULE_LINKER_FLAGS=${LDFLAGS}&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make test&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
this should pass everywhere except these two which according to David Chisnal are corner cases which shouldn't affect real software:&lt;br /&gt;
&lt;br /&gt;
     18 - AssociatedObject_optimised (OTHER_FAULT)&lt;br /&gt;
     20 - AssociatedObject_legacy_optimised (OTHER_FAULT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-make ==&lt;br /&gt;
&lt;br /&gt;
Gnustep Make is a package of makefiles to be used inside Gnustep projects. This way some common settings can be shared along all projects such as the location of certain runtime files (defaults, file layouts etc). It does not have any compiled code but its needed for the rest.&lt;br /&gt;
Edit the file library-combo.make and on line 47 replace&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-1.8&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
Please note: Instead of editing the make file you can set the runtime version using the env variable as well:&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-1.9&lt;br /&gt;
&lt;br /&gt;
For the older runtime.&lt;br /&gt;
Then you can install make&lt;br /&gt;
&lt;br /&gt;
     cd make&lt;br /&gt;
    ./configure \&lt;br /&gt;
            --with-layout=fhs \&lt;br /&gt;
            --disable-importing-config-file \&lt;br /&gt;
            --enable-native-objc-exceptions \&lt;br /&gt;
            --enable-objc-arc \&lt;br /&gt;
            --enable-install-ld-so-conf \&lt;br /&gt;
            --with-library-combo=ng-gnu-gnu \&lt;br /&gt;
            --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf \&lt;br /&gt;
            --with-user-config-file='.GNUstep.conf' \&lt;br /&gt;
            --with-user-defaults-dir='GNUstep/Library/Defaults'&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
    cd base&lt;br /&gt;
    ./configure  --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make check&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
There is one test which will fail. For our usage this is not vital.&lt;br /&gt;
&lt;br /&gt;
  Failed test: basic.m:31 ... Expiration date can be retrieved&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-corebase ==&lt;br /&gt;
&lt;br /&gt;
    cd corebase&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-gui ==&lt;br /&gt;
&lt;br /&gt;
    cd gui&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-back ==&lt;br /&gt;
&lt;br /&gt;
    cd back&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
Author: Andreas Fink as of 2019-05-05.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7187</id>
		<title>Building GNUstep under Debian FreeBSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7187"/>
		<updated>2020-04-30T17:21:33Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Dependencies under Debian 9 */ Remove Ubuntu keys, not needed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's a tutorial on how to to build gnustep and its dependencies if you want to run it using GNUstep runtime 2.0 (ng), which has to be built using clang 8.0.&lt;br /&gt;
&lt;br /&gt;
You'll find these steps bundled in a script which you can execute under Debian 9 at https://github.com/plaurent/gnustep-build/tree/master/debian-9-clang-8.0-runtime-2.0.&lt;br /&gt;
&lt;br /&gt;
== Install empty VM ==&lt;br /&gt;
&lt;br /&gt;
We start with an empty Debian9 or FreeBSD 12 VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under Debian 9 ==&lt;br /&gt;
&lt;br /&gt;
we install these packages under Debian as they are coming up as dependencies anyhow&lt;br /&gt;
&lt;br /&gt;
  apt-get install dirmngr&lt;br /&gt;
  sudo apt -y install build-essential git subversion \&lt;br /&gt;
  libpthread-workqueue0 libpthread-workqueue-dev \&lt;br /&gt;
  libxml2 libxml2-dev \&lt;br /&gt;
  libffi6 libffi-dev \&lt;br /&gt;
  libicu-dev \&lt;br /&gt;
  libuuid1 uuid-dev uuid-runtime \&lt;br /&gt;
  libsctp1 libsctp-dev lksctp-tools \&lt;br /&gt;
  libavahi-core7 libavahi-core-dev \&lt;br /&gt;
  libavahi-client3 libavahi-client-dev \&lt;br /&gt;
  libavahi-common3 libavahi-common-dev libavahi-common-data \&lt;br /&gt;
  libgcrypt20 libgcrypt20-dev \&lt;br /&gt;
  libtiff5 libtiff5-dev \&lt;br /&gt;
  libbsd0 libbsd-dev \&lt;br /&gt;
  util-linux-locales \&lt;br /&gt;
  locales-all \&lt;br /&gt;
  libjpeg-dev \&lt;br /&gt;
  libtiff-dev \&lt;br /&gt;
  libcups2-dev \&lt;br /&gt;
  libfreetype6-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev \&lt;br /&gt;
  libgl1-mesa-dev \&lt;br /&gt;
  libpcap-dev \&lt;br /&gt;
  libc-dev libc++-dev libc++1 \&lt;br /&gt;
  python-dev swig \&lt;br /&gt;
  libedit-dev libeditline0 libeditline-dev readline-common \&lt;br /&gt;
  binfmt-support libtinfo-dev \&lt;br /&gt;
  bison flex m4 wget \&lt;br /&gt;
  libicns1 libicns-dev \&lt;br /&gt;
  libxslt1.1 libxslt1-dev \&lt;br /&gt;
  libxft2 libxft-dev \&lt;br /&gt;
  libflite1 flite1-dev \&lt;br /&gt;
  libxmu6 libxpm4 wmaker-common \&lt;br /&gt;
  libgnutls30 libgnutls28-dev \&lt;br /&gt;
  libpng-dev libpng16-16 \&lt;br /&gt;
  default-libmysqlclient-dev \&lt;br /&gt;
  libpq-dev \&lt;br /&gt;
  libstdc++-6-dev \&lt;br /&gt;
  libreadline7 libreadline-dev \gobjc-6 gobjc++-6 \&lt;br /&gt;
  libgif7 libgif-dev libwings3 libwings-dev libwraster5 \&lt;br /&gt;
  libwraster-dev libwutil5 \&lt;br /&gt;
  libcups2-dev libicu57 libicu-dev \&lt;br /&gt;
  gobjc++ \&lt;br /&gt;
  xorg \&lt;br /&gt;
  libfreetype6 libfreetype6-dev \&lt;br /&gt;
  libpango1.0-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev libssl-dev \&lt;br /&gt;
  libasound2-dev libjack-dev libjack0 libportaudio2 \&lt;br /&gt;
  libportaudiocpp0 portaudio19-dev \&lt;br /&gt;
  libstdc++-6-dev libstdc++-6-doc libstdc++-6-pic \&lt;br /&gt;
  libstdc++6 wmaker cmake cmake-curses-gui xpdf&lt;br /&gt;
&lt;br /&gt;
== Dependencies under FeeBSD 12 ==&lt;br /&gt;
&lt;br /&gt;
  pkg install git \&lt;br /&gt;
     autoconf \&lt;br /&gt;
     automake \&lt;br /&gt;
     cmake \&lt;br /&gt;
     subversion  \&lt;br /&gt;
     wget \&lt;br /&gt;
     bash \&lt;br /&gt;
     pkgconf \&lt;br /&gt;
     sudo \&lt;br /&gt;
     gmake \&lt;br /&gt;
     windowmaker \&lt;br /&gt;
     jpeg \&lt;br /&gt;
     tiff \&lt;br /&gt;
     png \&lt;br /&gt;
     libxml2 \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     gnutls \&lt;br /&gt;
     libffi \&lt;br /&gt;
     icu \&lt;br /&gt;
     cairo \&lt;br /&gt;
     avahi \&lt;br /&gt;
     portaudio \&lt;br /&gt;
     flite \&lt;br /&gt;
     pngwriter \&lt;br /&gt;
     mariadb103-client \&lt;br /&gt;
     postgresql96-client \&lt;br /&gt;
     bash \&lt;br /&gt;
     clang \&lt;br /&gt;
     lldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We install a decent clang compiler. ==&lt;br /&gt;
&lt;br /&gt;
clang-8: from clang8 repository: Add a file /etc/apt/sources.d/llvm.list with content&lt;br /&gt;
&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
&lt;br /&gt;
To install you call it like this:&lt;br /&gt;
&lt;br /&gt;
  apt-get update&lt;br /&gt;
  apt-get install clang-8 lldb-8 lld-8&lt;br /&gt;
&lt;br /&gt;
Note: clang-7 has a bug which makes gnustep-base fail during its ./configure phase.&lt;br /&gt;
&lt;br /&gt;
(Note today clang-8 was no longer in the llvm repo for some reason. Maybe temporary issue. I also tried the bleeding edge clang-9 and that worked similarly)&lt;br /&gt;
&lt;br /&gt;
Under FreeBSD we use the clang compiler which comes with FreeBSD12.&lt;br /&gt;
If you use CentOS 7 or the like, you probably have to compile the clang compiler from source. this is time consuming and can be done like tis:&lt;br /&gt;
&lt;br /&gt;
  git clone https://git.llvm.org/git/llvm.git/&lt;br /&gt;
  cd llvm/tools&lt;br /&gt;
  git clone https://git.llvm.org/git/clang.git/&lt;br /&gt;
  cd ../projects&lt;br /&gt;
  git clone https://git.llvm.org/git/compiler-rt.git/&lt;br /&gt;
  cd ..&lt;br /&gt;
  mkdir BUILD&lt;br /&gt;
  cd BUILD&lt;br /&gt;
  cmake .. -DCMAKE_BUILD_TYPE=Release make -j8&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
(note this installs your compiler in /usr/local/bin so you have to change the path on the later stages below)&lt;br /&gt;
&lt;br /&gt;
== Download GNUSTEP ==&lt;br /&gt;
&lt;br /&gt;
We download the sources we need:&lt;br /&gt;
&lt;br /&gt;
    mkdir gnustep&lt;br /&gt;
    cd gnustep&lt;br /&gt;
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz&lt;br /&gt;
    git clone https://github.com/apple/swift-corelibs-libdispatch&lt;br /&gt;
    git clone https://github.com/gnustep/scripts&lt;br /&gt;
    git clone https://github.com/gnustep/make&lt;br /&gt;
    git clone https://github.com/gnustep/libobjc2&lt;br /&gt;
    git clone https://github.com/gnustep/base&lt;br /&gt;
    git clone https://github.com/gnustep/corebase&lt;br /&gt;
    git clone https://github.com/gnustep/gui&lt;br /&gt;
    git clone https://github.com/gnustep/back&lt;br /&gt;
    ./scripts/install-dependencies&lt;br /&gt;
&lt;br /&gt;
The last step should basically not show any additional dependency we have not already covered. On FreeBSD , the last step has to be skipped as the script is not prepared for FreeBSD yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libiconv ==&lt;br /&gt;
&lt;br /&gt;
This applies for Debian 9 (or maybe older). From Debian 10 upwards you won't need to install libiconv. You do not have to do this when installing for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
For Debian 9 (and older?): We compile libiconv. Debian comes standard with version 1.14 but there was an issue in 1.14 which got fixed in 1.15 which was relevant to us so using 1.15 is recommended.&lt;br /&gt;
&lt;br /&gt;
    tar -xvzf libiconv-1.15.tar.gz&lt;br /&gt;
    cd libiconv-1.15&lt;br /&gt;
    ./configure --enable-static --enable-dynamic&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
== Defaults ==&lt;br /&gt;
&lt;br /&gt;
We set some environment defaults for the remainder of the session&lt;br /&gt;
&lt;br /&gt;
  # we set the C and C++ compiler version&lt;br /&gt;
  export CC=/usr/bin/clang-8&lt;br /&gt;
  export CXX=/usr/bin/clang++-8&lt;br /&gt;
  export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig&lt;br /&gt;
  export LD=/usr/bin/ld.gold&lt;br /&gt;
  export LDFLAGS=-fuse-ld=/usr/bin/ld.gold&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fblocks&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the ld.gold linker is important as otherwise strange things happens. old ld does stuff wrong, newer lld from clang optimises stuff away it shouldn't.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libdispatch ==&lt;br /&gt;
&lt;br /&gt;
The libdispatch is an open source library supplied by Apple which takes care of running multiple background tasks. Apple calls it &amp;quot;Grand Central Dispatch&amp;quot;. The Swift language also uses it, hence the repo name. We're not really directly using it but other objc code might use it or benefit from it so we compile it as well.&lt;br /&gt;
&lt;br /&gt;
    cd swift-corelibs-libdispatch&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DUSE_GOLD_LINKER=YES&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libobjc2 / gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
Now we have reached a point where the magic triple libobjc2 + gnustep-make + gnustep-base comes into play. To understand the context here. The objectiveC compiler needs a runtime. The runtime is taking care of the basic functionality of objectiveC objects such as their memory allocation and release and other stuff. The compiler calls the runtime when specific stuff happens. When a method is called, the compiler puts a call into the runtime which then looks up the dynamic methods and calls the method etc. When a block ends and certain objects are no longer needed, the compiler calls the runtime so it can release the objects accordingly.&lt;br /&gt;
&lt;br /&gt;
There are different runtimes around. The original objectiveC runtime supplied by the gcc compiler. It's old, outdated and doesn't deal with automatic reference counting and a lot of other things. So it's not recommended. The libobjc2 is the &amp;quot;modern&amp;quot; rewrite for a runtime and is actually based on a project called Etoile. It's ABI has different variants. There is a fragile and a non fragile ABI.&lt;br /&gt;
&lt;br /&gt;
Read this blogpost to understand what the difference is: http://www.sealiesoftware.com/blog/archive/2009/01/27/objc_explain_Non-fragile_ivars.html&lt;br /&gt;
If you get this is wrong, you might end up with objects no longer using the right position of variables in the data of super or subclasses and things can get totally out of control. So the new non-fragile-ABI is really the way to go. There are also different versions of the ABI on how the compiler calls the runtime. So the compiler and the runtime are working together as a team.&lt;br /&gt;
&lt;br /&gt;
So once we have a runtime library which is a requirement for any objectiveC code, there is also the base library gnustep-base which corresponds to Apple's Foundation framework. This one implements basic functionality which is used in almost all ObjC code.. It brings stuff like dealing with strings, arrays, dictionaries, and lots of other things you need day in day out. It does not supply any GUI code. All NextStep/Apple ObjectiveC code is derived from a base class called NSObject which is defined in gnustep-base. GnuStep is an open source reimplementation of NextStep and the Apple Foundation/AppKit classes.&lt;br /&gt;
&lt;br /&gt;
There are 3 other libraries in GnuStep which are gnustep-gui which does all the graphical interface, gnustep-back which is the backend for the GUI (so there's a variant for X-windows, one for Windows, one for MacOS aqua etc) which is like a driver for the gui to do the displaying on actual hardware and there is gnustep-corebase which is a glue library to use objective C objects from C and to deal with the fundamental data types of objective C like NSData, NSArray etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== compiling libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
    cd libobjc2&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DBUILD_STATIC_LIBOBJC=1  \&lt;br /&gt;
             -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_LINKER=${LD} \&lt;br /&gt;
             -DCMAKE_MODULE_LINKER_FLAGS=${LDFLAGS}&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make test&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
this should pass everywhere except these two which according to David Chisnal are corner cases which shouldn't affect real software:&lt;br /&gt;
&lt;br /&gt;
     18 - AssociatedObject_optimised (OTHER_FAULT)&lt;br /&gt;
     20 - AssociatedObject_legacy_optimised (OTHER_FAULT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-make ==&lt;br /&gt;
&lt;br /&gt;
Gnustep Make is a package of makefiles to be used inside Gnustep projects. This way some common settings can be shared along all projects such as the location of certain runtime files (defaults, file layouts etc). It does not have any compiled code but its needed for the rest.&lt;br /&gt;
Edit the file library-combo.make and on line 47 replace&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-1.8&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
Please note: Instead of editing the make file you can set the runtime version using the env variable as well:&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-1.9&lt;br /&gt;
&lt;br /&gt;
For the older runtime.&lt;br /&gt;
Then you can install make&lt;br /&gt;
&lt;br /&gt;
     cd make&lt;br /&gt;
    ./configure \&lt;br /&gt;
            --with-layout=fhs \&lt;br /&gt;
            --disable-importing-config-file \&lt;br /&gt;
            --enable-native-objc-exceptions \&lt;br /&gt;
            --enable-objc-arc \&lt;br /&gt;
            --enable-install-ld-so-conf \&lt;br /&gt;
            --with-library-combo=ng-gnu-gnu \&lt;br /&gt;
            --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf \&lt;br /&gt;
            --with-user-config-file='.GNUstep.conf' \&lt;br /&gt;
            --with-user-defaults-dir='GNUstep/Library/Defaults'&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
    cd base&lt;br /&gt;
    ./configure  --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make check&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
There is one test which will fail. For our usage this is not vital.&lt;br /&gt;
&lt;br /&gt;
  Failed test: basic.m:31 ... Expiration date can be retrieved&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-corebase ==&lt;br /&gt;
&lt;br /&gt;
    cd corebase&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-gui ==&lt;br /&gt;
&lt;br /&gt;
    cd gui&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-back ==&lt;br /&gt;
&lt;br /&gt;
    cd back&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
Author: Andreas Fink as of 2019-05-05.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Installation_Instructions&amp;diff=7186</id>
		<title>Installation Instructions</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Installation_Instructions&amp;diff=7186"/>
		<updated>2020-04-30T17:20:03Z</updated>

		<summary type="html">&lt;p&gt;Letterus: Most installation guides are on the user page. Link to that one.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please see [[User Guides]] for some general and up to date instructions on how to install GNUstep.&lt;br /&gt;
&lt;br /&gt;
== Platform specific installation information ==&lt;br /&gt;
For information on how to install [[Dependencies]] or or about installation on exotic systems (like [[Windows]]), see&lt;br /&gt;
&amp;lt;big&amp;gt;[[Platform compatibility]]&amp;lt;/big&amp;gt;!&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
* [http://gnustep.made-it.com/BuildGuide/ Build-Guide for Unix-like systems] describes  installation and configuration step-by-step.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7185</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7185"/>
		<updated>2020-04-15T14:06:30Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Install and compile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14, 10.15.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
It might be better to ''not'' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, as that option might break the setup (10.14).&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7184</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7184"/>
		<updated>2020-04-15T10:40:50Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Install and compile */ Remove unnecessary flags&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14, 10.15.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
It migh be better to ''don't'' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, as that option might break the setup (10.14).&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7183</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7183"/>
		<updated>2020-04-15T10:38:14Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Extensions / Base Additions Install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14, 10.15.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
It migh be better to ''don't'' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, as that option might break the setup (10.14).&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7182</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7182"/>
		<updated>2020-04-15T10:37:44Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Install and compile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
It migh be better to ''don't'' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, as that option might break the setup (10.14).&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7181</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7181"/>
		<updated>2020-04-15T05:57:43Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
'''Don't''' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, that option will break the setup.&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7180</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7180"/>
		<updated>2020-04-15T05:57:13Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Set environment variables */ Removed unneeded env vars&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
'''Don't''' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, that option will break the setup.&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User_Guides&amp;diff=7179</id>
		<title>User Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User_Guides&amp;diff=7179"/>
		<updated>2020-04-15T05:55:37Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Installing GNUstep */ Removed links without helpful information.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for users.&lt;br /&gt;
&lt;br /&gt;
== Installing GNUstep ==&lt;br /&gt;
&lt;br /&gt;
Installation can be easy or complex, depending on the system you use. If you encounter problems that aren't discussed here, please [[Get Help|ask for help on the mailing lists]].&lt;br /&gt;
&lt;br /&gt;
* Instructions on how to install on [[Platform:BSD|BSD]] or [[Platform:Linux|Linux]].&lt;br /&gt;
* Comprehensive [http://gnustep.made-it.com/BuildGuide/ build guide] for GNUstep on GNU/Linux.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnustep.org/resources/documentation/User/Gui/KeyboardSetup.html User Keyboard Setup]&lt;br /&gt;
* [http://www.gnustep.org/resources/documentation/User/Gui/LanguageSetup.html Setup for East Asian Languages]&lt;br /&gt;
* User Defaults ([http://www.gnustep.org/resources/documentation/User/Gui/DefaultsSummary.html GUI]) ([http://www.gnustep.org/resources/documentation/Developer/Back/General/DefaultsSummary.html Back])&lt;br /&gt;
&lt;br /&gt;
== Advanced installation ==&lt;br /&gt;
&lt;br /&gt;
* [[GNUstep SVN Installation Guide]]&lt;br /&gt;
* [http://svn.gna.org/svn/etoile/trunk/Etoile/INSTALL.Ubuntu GNUstep and Étoilé dependency list]&lt;br /&gt;
* [[Building GNUstep with Clang]]&lt;br /&gt;
* [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]]&lt;br /&gt;
* [http://artinamessage.wordpress.com/2013/06/03/gnustep-install-with-clang-blocks-and-grand-central-dispatch-gcd/ Building GNUstep with clang, blocks, and Grand Central Dispatch]&lt;br /&gt;
* [[Raspbian Install| Raspbian Install]]&lt;br /&gt;
&lt;br /&gt;
== Using GNUstep ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Applications|User Applications]]&lt;br /&gt;
* [http://www.gnustep.org/resources/documentation/User/GNUstep/filesystem_toc.html Filesystem Layout] ([http://www.gnustep.org/resources/documentation/User/GNUstep/filesystem.pdf PDF])&lt;br /&gt;
* [[User_FAQ|GNUstep Users' FAQ]] ([http://www.gnustep.org/resources/documentation/User/GNUstep/userfaq.pdf PDF])&lt;br /&gt;
* [[Get Help|Mailing Lists, IRC and Newsgroups]]&lt;br /&gt;
* [[Cross Compiling]]&lt;br /&gt;
* [http://gnustep.files.wordpress.com/2010/11/objective-c_gnustep.pdf Manual de Objective-C y GNUstep (PDF en español)]&lt;br /&gt;
* [[Themes|Changing GNUstep Theme]]&lt;br /&gt;
&lt;br /&gt;
== Other Info ==&lt;br /&gt;
&lt;br /&gt;
* News and info:&lt;br /&gt;
** [http://freecode.com/tags/objective-c Freshmeat] -&amp;gt;Freecode Effective 2014-06-18 Freecode is no longer being updated (content may be stale).&lt;br /&gt;
** [http://www.gnustep.wordpress.com/ GNUstep en español] - Noticias e información&lt;br /&gt;
* Projects:&lt;br /&gt;
** [[:Category:Desktop Environments|Desktop Environments]]&lt;br /&gt;
*** [http://www.nongnu.org/backbone/ Backbone] - GNUstep Desktop project&lt;br /&gt;
*** [http://www.etoile-project.org/ Étoilé] - GNUstep based user environment&lt;br /&gt;
*** [http://www.nongnu.org/gap/ GAP] - GNUstep Application Project&lt;br /&gt;
*** [https://trunkmaster.github.io/ Nextspace] - GNUstep based Desktop project&lt;br /&gt;
** Live CDs&lt;br /&gt;
*** [http://livecd.gnustep.org/ GNUSTEP Live CD] - based on Debian&lt;br /&gt;
*** ALT Linux based (i586/x86_64, BIOS/UEFI, considerable number of GNUstep/Étoilé apps):&lt;br /&gt;
**** [http://en.altlinux.org/Starterkits/gnustep GNUstep starterkit] - updated quarterly (as of June 2014) using stable package branch&lt;br /&gt;
**** [http://en.altlinux.org/Regular#experimental Regular GNUstep] - updated [http://nightly.altlinux.org/sisyphus/flavours/gnustep/ weekly] using unstable development branch&lt;br /&gt;
* Developer sites:&lt;br /&gt;
** [[For_Developers | Developers]] - List of developers&lt;br /&gt;
** [http://www.gnustep.it/ GNUstep.it] - Italian developer site&lt;br /&gt;
** [http://www.collaboration-world.com/ Collaboration World] - home to GNUMail, Affiche and more&lt;br /&gt;
** [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
** [http://www.aiei.ch/gnustep/icons/icons.html GNUstep Icons project]&lt;br /&gt;
* [[Success_Stories | GNUstep Success Stories]]&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7178</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7178"/>
		<updated>2020-04-14T21:33:38Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Extensions / Base Additions Install */ Fix: Just let gnutls be found by pkgconfig by adding its path&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=&amp;quot;/usr/local/opt/icu4c/lib/pkgconfig:/usr/local/opt/gnutls/lib/pkgconfig:$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/bin:$PATH&amp;quot;&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/sbin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
'''Don't''' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, that option will break the setup.&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7177</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7177"/>
		<updated>2020-04-14T21:28:56Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Install and compile */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Preparations / Fixes ==== &lt;br /&gt;
&lt;br /&gt;
Manually create &amp;lt;code&amp;gt;/usr/local/bin/libgnutls-config&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  pkg-config $1 gnutls&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:&amp;quot;$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/bin:$PATH&amp;quot;&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/sbin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
'''Don't''' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, that option will break the setup.&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep project and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7176</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7176"/>
		<updated>2020-04-14T21:28:21Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Mac OS X */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Preparations / Fixes ==== &lt;br /&gt;
&lt;br /&gt;
Manually create &amp;lt;code&amp;gt;/usr/local/bin/libgnutls-config&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  pkg-config $1 gnutls&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:&amp;quot;$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/bin:$PATH&amp;quot;&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/sbin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
'''Don't''' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, that option will break the setup.&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep projekt and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7175</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7175"/>
		<updated>2020-04-14T21:27:21Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Install and compile */ Added hint for make options&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Preparations / Fixes ==== &lt;br /&gt;
&lt;br /&gt;
Manually create &amp;lt;code&amp;gt;/usr/local/bin/libgnutls-config&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  pkg-config $1 gnutls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:&amp;quot;$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/bin:$PATH&amp;quot;&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/sbin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
'''Don't''' use &amp;lt;code&amp;gt;--disable-importing-config-file&amp;lt;/code&amp;gt;, that option will break the setup.&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep projekt and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7174</id>
		<title>Platform:BSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Platform:BSD&amp;diff=7174"/>
		<updated>2020-04-14T21:24:48Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Extensions Install */ Updated the instruction to reflect how install base additions under macOS 10.14&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Darwin =&lt;br /&gt;
&lt;br /&gt;
=== Intel ===&lt;br /&gt;
Currently tested on Darwin 7.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&lt;br /&gt;
Default compiler (Apple GCC) has unknown problems. Download the FSF GCC compiler (mirrors at http://gcc.gnu.org/mirrors.html) and configure it with -enable-threads=posix. You don't need binutils or anything else. Use the GNU runtime. Make sure to add&lt;br /&gt;
&lt;br /&gt;
  export CC=/usr/local/bin/gcc (use the correct path to FSF gcc)&lt;br /&gt;
&lt;br /&gt;
so that the correct compiler is found&lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi from http://sourceware.org/libffi/ or the older ffcall if this does not work for some reason.&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
=== PowerPC ===&lt;br /&gt;
This section is for building the complete GNUstep system. This system will not interact at all with Mac OS X/Cocoa. It uses different compilers, different display systems, etc. For building GNUstep extensions to be used with Mac OS X (for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail), see the MacOSX/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on Darwin 6.x, 7.x, 8.x&lt;br /&gt;
&lt;br /&gt;
'''Recommended compiler'''&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 3.3.2 or greater 3.3.* versions. Older versions will not compile on Darwin and 3.4.* versions don't support GNU runtime compilation on Darwin currently (The GCC bug report is http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11572).&lt;br /&gt;
&amp;lt;br&amp;gt;gcc 4.0.3 or greater 4.* versions (the bug mentioned above has been fixed for 4.0.3 and newer)&lt;br /&gt;
&amp;lt;br&amp;gt;Apple GCC with Xcode 2.5. &lt;br /&gt;
&lt;br /&gt;
'''Extra libs needed'''&lt;br /&gt;
&amp;lt;br&amp;gt;Use libffi (not ffcall). This should be enabled by default in gnustep-base so you don't have to type --enable-libffi. For 6.x, you need the dlcompat library (from www.opendarwin.org) to load bundles (not needed for 7.x).&lt;br /&gt;
&lt;br /&gt;
'''Special Instructions'''&lt;br /&gt;
&amp;lt;br&amp;gt;Read the README.Darwin file in the gnustep-make/Documentation directory for complete instructions.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Mac_OS_X|Mac OSX / PowerPC]] section&lt;br /&gt;
&lt;br /&gt;
= FreeBSD-based systems =&lt;br /&gt;
&lt;br /&gt;
== DesktopBSD ==&lt;br /&gt;
[http://www.desktopbsd.net/ DesktopBSD] joins the ranks of [[#PC-BSD|PC-BSD]] and [[#FreeSBIE|FreeSBIE]] as a desktop-ready version of [[#FreeBSD|FreeBSD]]. However, their desktop is based on [http://www.kde.org KDE].&lt;br /&gt;
&lt;br /&gt;
== DragonFly ==&lt;br /&gt;
[http://www.dragonflybsd.org DragonFly] is an operating system and environment designed to be the logical continuation of the [[#FreeBSD|FreeBSD]]-4.x OS series.&lt;br /&gt;
&lt;br /&gt;
I have mostly ported GNUstep to DragonFly, I just need to submit patches now for both GNUstep and DragonFly. To know more, you can contact me. ''[[user:Qmathe | Quentin Mathé]]''&lt;br /&gt;
&lt;br /&gt;
== FreeBSD ==&lt;br /&gt;
You can install GNUstep using the ''[http://www.freebsd.org/cgi/url.cgi?ports/devel/gnustep/pkg-descr /usr/ports/devel/gnustep/]'' meta port.&amp;lt;br/&amp;gt;To automatically install GNUstep '''and''' (literally) tons of GNUstep-related applications, take a look at the ''[http://www.freebsd.org/cgi/url.cgi?ports/x11/gnustep-app/pkg-descr /usr/ports/x11/gnustep-app/]'' meta port.&lt;br /&gt;
&lt;br /&gt;
These ports should now install all dependencies -- a complete list can [[Dependencies|be found here]].&lt;br /&gt;
&lt;br /&gt;
'''Note'''&lt;br /&gt;
: Prior to FreeBSD-6.0, there is a bug in ''kvm(3)'' that '''requires''' a mounted ''/proc'' for GNUstep to work properly. Until this bug is fixed, make sure you have an entry for ''/proc'' in your ''/etc/fstab'':&lt;br /&gt;
&lt;br /&gt;
 proc                    /proc           procfs  rw              0       0&lt;br /&gt;
&lt;br /&gt;
References:&lt;br /&gt;
[http://www.freebsd.org/cgi/ports.cgi?query=gnustep&amp;amp;stype=all FreeBSD GNUstep ports], &lt;br /&gt;
[http://www.freshports.org/search.php?stype=longdescription&amp;amp;method=match&amp;amp;query=gnustep&amp;amp;num=10&amp;amp;orderby=category&amp;amp;orderbyupdown=asc&amp;amp;search=Search Freshports GNUstep]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building from scratch ===&lt;br /&gt;
&lt;br /&gt;
There is a comprehensive guide on how to build GNUstep from scratch at [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]].&lt;br /&gt;
&lt;br /&gt;
== FreeBSD-Kernel w/ GNU userland, and GNU C library ==&lt;br /&gt;
It was reported that this runs GNUstep as well. For more details see the topic of&lt;br /&gt;
the IRC channel #gnu-kbsd on irc.gnu.org&lt;br /&gt;
&lt;br /&gt;
== FreeSBIE ==&lt;br /&gt;
[http://www.freesbie.org/ FreeSBIE] is a Live-CD Version of FreeBSD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== MidnightBSD ==&lt;br /&gt;
[http://www.midnightbsd.org/ MidnightBSD] is based on FreeBSD 6.1 pre-release. The goal of the project is to create a BSD with ease of use and simplicity in mind.&lt;br /&gt;
&lt;br /&gt;
The most intriguing thing about MidnightBSD is their integration of GNUstep into the system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== PicoBSD ==&lt;br /&gt;
[http://people.freebsd.org/~picobsd/old/picobsd.html PicoBSD] is a one floppy version of [[#FreeBSD|FreeBSD]] 3.0-current. You won't be able to use it as a platform for GNUstep.&lt;br /&gt;
&lt;br /&gt;
== PC-BSD ==&lt;br /&gt;
[http://www.pcbsd.org/ PC-BSD] has as its goals to be an easy to install and use desktop OS, which is built on the [[#FreeBSD|FreeBSD]] operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mac OS X =&lt;br /&gt;
&lt;br /&gt;
=== Full Install ===&lt;br /&gt;
&lt;br /&gt;
GNUstep *does* work on OS X 10.4 and later, too, but it will not work out of the box with the dependencies built from MacPorts (and I guess from fink either). The problem is not the Apple linker per se, but rather that many of our dependencies nowadays depend directly or indirectly on CoreFoundation on OS X and, unfortunately, CoreFoundation started to depend on Apple's libobjc in 10.4.&lt;br /&gt;
&lt;br /&gt;
To successfully build and run GNUstep on Mac OS X 10.4 and later, you need (at least) to configure aspell with --disable-nls (the nonls variant of aspell should do for MacPorts). Next, you need a freetype configured with --without-old-mac-fonts (unfortunately no help from MacPorts here and the freetype shipped with Mac OS X 10.5 will not work either). Apart from that, configure GNUstep-base with --disable-tls and GNUstep-back with --disable-glx and use either the libart (the default) or xlib backend. Eventually, I may have forgotten some other libraries in this list, but you will notice that when looking at the crash report being produced in ~/Library/Logs/CrashReporter. Look for a line containing /usr/lib/libobjc.A.dylib.&lt;br /&gt;
&lt;br /&gt;
See [https://github.com/ericwa/gnustep-macports-fixes Macport Patches] for patches to Macports that might also work&lt;br /&gt;
&lt;br /&gt;
=== Extensions / Base Additions Install ===&lt;br /&gt;
&lt;br /&gt;
This section is for building the GNUstep extensions (base additions) only. Use this if, for instance, if you want to build something based on GNUstep, such as GSWeb or GNUMail. If you want to build the complete GNUstep system independant of Mac OS X, see the Full Install section above or Darwin/PowerPC section.&lt;br /&gt;
&lt;br /&gt;
Currently tested on macOS 10.14.&lt;br /&gt;
&lt;br /&gt;
==== Recommended compiler ====&lt;br /&gt;
&lt;br /&gt;
Default - clang. There is no gcc anymore.&lt;br /&gt;
&lt;br /&gt;
==== Dependencies ==== &lt;br /&gt;
&lt;br /&gt;
# Install [https://brew.sh/ homebrew].&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
  brew install gnutls&lt;br /&gt;
  brew install pkgconfig&lt;br /&gt;
  brew install icu4c&lt;br /&gt;
&lt;br /&gt;
==== Preparations / Fixes ==== &lt;br /&gt;
&lt;br /&gt;
Manually create &amp;lt;code&amp;gt;/usr/local/bin/libgnutls-config&amp;lt;/code&amp;gt; with the following content:&lt;br /&gt;
&lt;br /&gt;
  #!/bin/bash&lt;br /&gt;
  pkg-config $1 gnutls&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Set environment variables ==== &lt;br /&gt;
&lt;br /&gt;
Make sure these variables are set before installing gnustep-make ([https://github.com/gnustep/tools-make tools-make]) and before compiling [https://github.com/gnustep/libs-base gnustep-base additions]. You might want to add them to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  export CC=clang&lt;br /&gt;
  export CXX=clang++&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fobjc-nonfragile-abi -fblocks&amp;quot;&lt;br /&gt;
  export CXXFLAGS=&amp;quot;-std=c++11&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export LDFLAGS=&amp;quot;${LDFLAGS} -L/usr/local/opt/icu4c/lib&amp;quot;&lt;br /&gt;
  export CPPFLAGS=&amp;quot;${CPPFLAGS} -I/usr/local/opt/icu4c/include&amp;quot;&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/opt/icu4c/lib/pkgconfig:&amp;quot;$PKG_CONFIG_PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/bin:$PATH&amp;quot;&lt;br /&gt;
  export PATH=&amp;quot;/usr/local/opt/icu4c/sbin:$PATH&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Install and compile ==== &lt;br /&gt;
&lt;br /&gt;
Download tools-make and gnustep-base - either the tarballs or from git. Let's assume they are in directories named &amp;lt;code&amp;gt;tools-make&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;libs-base&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
  cd tools-make&lt;br /&gt;
  ./configure \&lt;br /&gt;
    --with-layout=apple \&lt;br /&gt;
      --enable-native-objc-exceptions \&lt;br /&gt;
        --enable-objc-arc \&lt;br /&gt;
          --with-library-combo=apple-apple-apple&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
  cd ../libs-base&lt;br /&gt;
  ./configure&lt;br /&gt;
  make -j8 debug=yes base=no add=yes&lt;br /&gt;
  sudo -E make install&lt;br /&gt;
&lt;br /&gt;
After this you should be finished. Add the following line to your &amp;lt;code&amp;gt;~/.bash_profile&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
  . /Library/GNUstep/Makefiles/GNUstep.sh&lt;br /&gt;
&lt;br /&gt;
If you have sourced GNUstep.sh you can &amp;lt;code&amp;gt;cd&amp;lt;/code&amp;gt; to any typical GNUstep projekt and build it using &amp;lt;code&amp;gt;make&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
See also the [[Platform:BSD#Darwin|Darwin / PowerPC]] section.&lt;br /&gt;
&lt;br /&gt;
= NetBSD =&lt;br /&gt;
Installing GNUstep from pkgsrc is really straight-forward for NetBSD if you're using a recent pkgsrc distribution. NetBSD/i386 has no known problems right now, however there are reports of crashout problems for gdomap on NetBSD/sparc which may be related to ffi/ffcall issues.&lt;br /&gt;
&lt;br /&gt;
In terms of pre-requisites, ensure you've got a working X11 environment on your system and preferrably are using WindowMaker as your window manager. &lt;br /&gt;
&lt;br /&gt;
'''Build instructions'''&lt;br /&gt;
&lt;br /&gt;
To install GNUstep, you need to cd to your pkgsrc tree and then cd to the right package directory, on my system:&lt;br /&gt;
&lt;br /&gt;
  cd /usr/pkgsrc&lt;br /&gt;
&lt;br /&gt;
then go to the package you wish to install, for example:&lt;br /&gt;
&lt;br /&gt;
  cd meta-pkgs/gnustep&lt;br /&gt;
&lt;br /&gt;
and issue the command:&lt;br /&gt;
&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
This command will download source code and whatever dependencies and compile and install them. The version of the meta-packages I used (released with NetBSD 2.0 and called gnustep-1.10.0nb2) installs the following GNUstep components as parts of the meta-package:&lt;br /&gt;
&lt;br /&gt;
* gnustep-make-1.10.0&lt;br /&gt;
* gnustep-base-1.10.1&lt;br /&gt;
* gnustep-ssl-1.10.1&lt;br /&gt;
* gnustep-gui-0.9.4&lt;br /&gt;
* gnustep-back-0.9.4&lt;br /&gt;
* gnustep-examples-1.0.0&lt;br /&gt;
* ImageViewer-0.6.3&lt;br /&gt;
* Pantomime-1.1.2&lt;br /&gt;
* Addresses-0.4.6&lt;br /&gt;
* GNUMail-1.1.2&lt;br /&gt;
* Gorm-0.8.0&lt;br /&gt;
* ProjectCenter-0.4.0&lt;br /&gt;
* GWLib-0.6.5&lt;br /&gt;
* Renaissance-0.8.0&lt;br /&gt;
* gworkspace-0.6.5&lt;br /&gt;
&lt;br /&gt;
A number of dependency packages are also installed.&lt;br /&gt;
&lt;br /&gt;
This may be overkill - if you don't need all the applications etc, you can install the packages individually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= OpenBSD =&lt;br /&gt;
&lt;br /&gt;
Since many years, GNUstep is available in the OpenBSD ports tree. Packages are available for amd64, i386, and powerpc.&lt;br /&gt;
The packages are based on the latest releases. Since some time, using libobjc2, but compiled with the system gcc.&lt;br /&gt;
For easy installation, a meta package is provided. &lt;br /&gt;
&lt;br /&gt;
    sudo pkg_add -i gnustep-desktop&lt;br /&gt;
&lt;br /&gt;
Above command will install the meta package, and all the packages from the [http://www.openbsd.org/cgi-bin/cvsweb/ports/x11/gnustep/ x11/gnustep] part of the ports tree.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7173</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7173"/>
		<updated>2020-04-14T07:42:08Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Tools from the GNUstep project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed. For its up- and downsides you may consult the [[ProjectCenter FAQ]].&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you may want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces. For more information on Gorm and ProjectCenter also see [[Development tools]].&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known to Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;br /&gt;
&lt;br /&gt;
=== Xcode ===&lt;br /&gt;
&lt;br /&gt;
You are not able to install Xcode using a Free Software environment. But of course it is possible to use Apple's Xcode to develop apps that are based on Foundation and AppKit. Xcode won't create a proper makefile for you. You will have to do that yourself or let ProjectCenter do the work for you. But if you use Xcode's interface builder (formerly &amp;quot;Interface Builder&amp;quot;) to create graphical user interfaces utilizing [[XIB]] files instead of storyboards, GNUstep will be able to load and execute these [[XIB]] files as well.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Development_tools&amp;diff=7172</id>
		<title>Development tools</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Development_tools&amp;diff=7172"/>
		<updated>2020-04-14T07:40:49Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Integrated Development Environments for Objective C */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;More about development tools: http://www.gnustep.org/experience/DeveloperTools.html&lt;br /&gt;
&lt;br /&gt;
== Gorm - Graphical Object Relationship Modeller ==&lt;br /&gt;
&lt;br /&gt;
Gorm stands for &amp;quot;Graphical Object Relationship Modeller&amp;quot; and is GNUstep's easy-to-use interface designer. &lt;br /&gt;
&lt;br /&gt;
With Gorm designing tough and complex graphical interfaces for your applications can be done easily and quickl, using drag &amp;amp; drop, powerful inspectors and teamwork with ProjectCenter.&lt;br /&gt;
&lt;br /&gt;
Gorm allows developers to quickly create and edit graphical application interfaces using a whole lot of GUI elements: windows, menus, buttons, labels, sliders, tables, textfields, browsers, images, altert panels and more. Custom palettes can be dynamically loaded to add additional elements or functionality.&lt;br /&gt;
&lt;br /&gt;
After creating the interface, objects can be linked using mouse operations. Also Gorm features interactive testing of interfaces.&lt;br /&gt;
&lt;br /&gt;
Please see the following wiki sections to learn tips on how to effectively utilize Gorm:&lt;br /&gt;
&lt;br /&gt;
* [[Gorm Manual]]&lt;br /&gt;
* [[Gorm FAQ]]&lt;br /&gt;
* [[Gorm Installation On Windows]]&lt;br /&gt;
&lt;br /&gt;
Also see the following external links:&lt;br /&gt;
&lt;br /&gt;
* ''' [http://www.gnustep.org/experience/Gorm.html Official Gorm page] '''&lt;br /&gt;
&lt;br /&gt;
* '''[https://packages.debian.org/search?suite=default&amp;amp;section=all&amp;amp;arch=any&amp;amp;searchon=names&amp;amp;keywords=gorm  Debian Offical Release]'''&lt;br /&gt;
&lt;br /&gt;
* '''[http://www.freshports.org/devel/gorm FreeBSD Ports]'''&lt;br /&gt;
&lt;br /&gt;
== Project Center ==&lt;br /&gt;
''' [http://www.gnustep.org/experience/ProjectCenter.html Project Center] '''&lt;br /&gt;
&lt;br /&gt;
ProjectCenter is GNUstep's integrated developement environment (IDE). It is based in part on NeXT's original Project Builder. It assists you in starting new projects and lets you manage your project files using a intuitive and well ordered graphical user interface.&lt;br /&gt;
&lt;br /&gt;
* [[ProjectCenter FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Other tools ==&lt;br /&gt;
&lt;br /&gt;
=== [[Integrated Development Environments for Objective C]] ===&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are several IDEs - [[Integrated Development Environments for Objective C]].&lt;br /&gt;
&lt;br /&gt;
=== Unit Testing ===&lt;br /&gt;
&lt;br /&gt;
GNUstep is blessed with a number of unit test frameworks: &lt;br /&gt;
&lt;br /&gt;
* Traditionally, it has provided a [http://www.gnustep.org/resources/documentation/testdoc_toc.html testing environment] based around Guile, an implementation of Scheme that has been blessed as the preferred GNU scripting language. It has been hard to convince Objective-C programmers to write tests in this language, and the utility of the package has not lived up to expectations.&lt;br /&gt;
&lt;br /&gt;
* GNUstep now also contains a unit testing framework intended as general framework for testing the core GNUstep libraries, called [http://lists.gnu.org/archive/html/gnustep-dev/2005-06/msg00050.html Testsuite]. This may not be suitable for more general unit testing of applications as it's been designed to operate with little of the GNUstep environment actually running. ''Tip: use this if you're describing or fixing bugs or features in base, gui etc.''&lt;br /&gt;
&lt;br /&gt;
* [https://gna.org/projects/etoile Étoilé] contains a port to GNUstep of [https://github.com/etoile/UnitKit UnitKit 1.5]. This is a straight-forward unit testing environment, suited to the needs of application developers. It also works under X-code on MacOS X.&lt;br /&gt;
&lt;br /&gt;
* [http://www.sente.ch/ Sen:te] have provided a unit testing environment called [http://www.sente.ch/software/ocunit/ OCUnit] which apparently works under GNUstep, although there are comments in the mailing lists about difficulty getting it working.&lt;br /&gt;
&lt;br /&gt;
* Perhaps [[ObjcUnit]] is also relevant? --[[User:Svetlana|svetlana]] 01:26, 16 January 2017 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[:Category:Frameworks|Official Development Frameworks]]&lt;br /&gt;
* [[:Category:Development Frameworks|Development Frameworks]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Development_tools&amp;diff=7171</id>
		<title>Development tools</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Development_tools&amp;diff=7171"/>
		<updated>2020-04-14T07:40:24Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Other tools */ Added link to Integrated Development Environments for Objective C.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;More about development tools: http://www.gnustep.org/experience/DeveloperTools.html&lt;br /&gt;
&lt;br /&gt;
== Gorm - Graphical Object Relationship Modeller ==&lt;br /&gt;
&lt;br /&gt;
Gorm stands for &amp;quot;Graphical Object Relationship Modeller&amp;quot; and is GNUstep's easy-to-use interface designer. &lt;br /&gt;
&lt;br /&gt;
With Gorm designing tough and complex graphical interfaces for your applications can be done easily and quickl, using drag &amp;amp; drop, powerful inspectors and teamwork with ProjectCenter.&lt;br /&gt;
&lt;br /&gt;
Gorm allows developers to quickly create and edit graphical application interfaces using a whole lot of GUI elements: windows, menus, buttons, labels, sliders, tables, textfields, browsers, images, altert panels and more. Custom palettes can be dynamically loaded to add additional elements or functionality.&lt;br /&gt;
&lt;br /&gt;
After creating the interface, objects can be linked using mouse operations. Also Gorm features interactive testing of interfaces.&lt;br /&gt;
&lt;br /&gt;
Please see the following wiki sections to learn tips on how to effectively utilize Gorm:&lt;br /&gt;
&lt;br /&gt;
* [[Gorm Manual]]&lt;br /&gt;
* [[Gorm FAQ]]&lt;br /&gt;
* [[Gorm Installation On Windows]]&lt;br /&gt;
&lt;br /&gt;
Also see the following external links:&lt;br /&gt;
&lt;br /&gt;
* ''' [http://www.gnustep.org/experience/Gorm.html Official Gorm page] '''&lt;br /&gt;
&lt;br /&gt;
* '''[https://packages.debian.org/search?suite=default&amp;amp;section=all&amp;amp;arch=any&amp;amp;searchon=names&amp;amp;keywords=gorm  Debian Offical Release]'''&lt;br /&gt;
&lt;br /&gt;
* '''[http://www.freshports.org/devel/gorm FreeBSD Ports]'''&lt;br /&gt;
&lt;br /&gt;
== Project Center ==&lt;br /&gt;
''' [http://www.gnustep.org/experience/ProjectCenter.html Project Center] '''&lt;br /&gt;
&lt;br /&gt;
ProjectCenter is GNUstep's integrated developement environment (IDE). It is based in part on NeXT's original Project Builder. It assists you in starting new projects and lets you manage your project files using a intuitive and well ordered graphical user interface.&lt;br /&gt;
&lt;br /&gt;
* [[ProjectCenter FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Other tools ==&lt;br /&gt;
&lt;br /&gt;
=== [[Integrated Development Environments for Objective C]] ===&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are several [[Integrated Development Environments for Objective C]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Unit Testing ===&lt;br /&gt;
&lt;br /&gt;
GNUstep is blessed with a number of unit test frameworks: &lt;br /&gt;
&lt;br /&gt;
* Traditionally, it has provided a [http://www.gnustep.org/resources/documentation/testdoc_toc.html testing environment] based around Guile, an implementation of Scheme that has been blessed as the preferred GNU scripting language. It has been hard to convince Objective-C programmers to write tests in this language, and the utility of the package has not lived up to expectations.&lt;br /&gt;
&lt;br /&gt;
* GNUstep now also contains a unit testing framework intended as general framework for testing the core GNUstep libraries, called [http://lists.gnu.org/archive/html/gnustep-dev/2005-06/msg00050.html Testsuite]. This may not be suitable for more general unit testing of applications as it's been designed to operate with little of the GNUstep environment actually running. ''Tip: use this if you're describing or fixing bugs or features in base, gui etc.''&lt;br /&gt;
&lt;br /&gt;
* [https://gna.org/projects/etoile Étoilé] contains a port to GNUstep of [https://github.com/etoile/UnitKit UnitKit 1.5]. This is a straight-forward unit testing environment, suited to the needs of application developers. It also works under X-code on MacOS X.&lt;br /&gt;
&lt;br /&gt;
* [http://www.sente.ch/ Sen:te] have provided a unit testing environment called [http://www.sente.ch/software/ocunit/ OCUnit] which apparently works under GNUstep, although there are comments in the mailing lists about difficulty getting it working.&lt;br /&gt;
&lt;br /&gt;
* Perhaps [[ObjcUnit]] is also relevant? --[[User:Svetlana|svetlana]] 01:26, 16 January 2017 (CET)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* [[:Category:Frameworks|Official Development Frameworks]]&lt;br /&gt;
* [[:Category:Development Frameworks|Development Frameworks]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7170</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7170"/>
		<updated>2020-04-14T07:38:58Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Tools from the GNUstep project */ Added link to page Development tools&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed. For its up- and downsides you may consult the [[ProjectCenter FAQ]].&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you may want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces. For more information on Gorm and ProjectCenter see [[Development tools]].&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known to Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;br /&gt;
&lt;br /&gt;
=== Xcode ===&lt;br /&gt;
&lt;br /&gt;
You are not able to install Xcode using a Free Software environment. But of course it is possible to use Apple's Xcode to develop apps that are based on Foundation and AppKit. Xcode won't create a proper makefile for you. You will have to do that yourself or let ProjectCenter do the work for you. But if you use Xcode's interface builder (formerly &amp;quot;Interface Builder&amp;quot;) to create graphical user interfaces utilizing [[XIB]] files instead of storyboards, GNUstep will be able to load and execute these [[XIB]] files as well.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Introduction_to_GNUstep&amp;diff=7169</id>
		<title>Introduction to GNUstep</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Introduction_to_GNUstep&amp;diff=7169"/>
		<updated>2020-04-14T07:36:40Z</updated>

		<summary type="html">&lt;p&gt;Letterus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep is a free, object-oriented, cross-platform development environment that strives for simplicity and elegance. GNUstep is based on and completely compatible with the [[OpenStep]] specification developed by NeXT (now Apple Computer Inc.) as well as implementing many extensions included in Mac OS X/Cocoa.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnustep.org/information/GNUstep-brochure.pdf Summary brochure] (2Mb PDF)&lt;br /&gt;
* [http://www.gnustep.org/information/Booklet.pdf Summary Booklet] (3Mb PDF)&lt;br /&gt;
* Our [[Mission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GNUstep is... ==&lt;br /&gt;
&lt;br /&gt;
=== ...an object-oriented tool development kit ===&lt;br /&gt;
&lt;br /&gt;
The first two packages (GNUstep-make and GNUstep-base) that make up the core libraries contain a complete system for writing non-graphic tools in Objective-C. The make package allows you to setup a simple and powerful system for building, installing and packaging your tools. The base package includes all the classes necessary for writing an incredible array of tools, from wrappers for system tools to tools for communicating with web and other types of servers.&lt;br /&gt;
&lt;br /&gt;
=== ...a graphical development kit ===&lt;br /&gt;
&lt;br /&gt;
The core libraries contain classes for developing a complete graphical application for almost any purpose. Along with our object-oriented, graphical development applications, [[ProjectCenter]] and [[Gorm]] it's simple to write very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments.&lt;br /&gt;
&lt;br /&gt;
=== ...a desktop ===&lt;br /&gt;
&lt;br /&gt;
Many GNUstep [[:Category:Applications|applications]] have been written to provide a powerful user experience for working on your computer. These include our workspace manager, [[GWorkspace]], and mail client, [[GNUMail]]. GNUstep does NOT have a window manager. You can use any window manager you want, although we recommend that you use [[WindowMaker]] for a better experience -- the WindowMaker project, however, is not associated with GNUstep. Many other applications that are useful for a desktop are not contained on this web site, nor are they controlled by the GNUstep project - there are too many ideas about what a desktop should look like that we have not made up our minds about which one to endorse yet.&lt;br /&gt;
&lt;br /&gt;
Here are some current ones:&lt;br /&gt;
&lt;br /&gt;
* [http://www.nongnu.org/gap/ GNUstep Application Project]&lt;br /&gt;
* [https://trunkmaster.github.io/ Nextspace]&lt;br /&gt;
&lt;br /&gt;
== GNUstep is not a window manager ==&lt;br /&gt;
&lt;br /&gt;
GNUstep is [[GNUstepIsNotWindowMaker|not a window manager]]. And the libraries are not used by WindowMaker at present, although WindowMaker shares a similar look.&lt;br /&gt;
&lt;br /&gt;
At no stage will you ever 'run' GNUstep - you will run applications and tools and will make use of its services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at the [http://io.debian.net/~tar/gnustep/ GNUstep Live CD] for example.&lt;br /&gt;
&lt;br /&gt;
== Additions to OpenStep ==&lt;br /&gt;
&lt;br /&gt;
In addition to the OpenStep API, GNUstep also implements many additional classes and methods, some from the Cocoa API for the sake of compatibility. GNUstep is written in the object-oriented language [[Objective-C]], a superset of C which adds object-orientation to C. Objective-C is very simple, yet very powerful. GNUstep also includes bindings to other languages such as Java (JIGS) and Ruby (RIGS).&lt;br /&gt;
&lt;br /&gt;
For more information, see the following [http://www.gnustep.org/information/statement.html testimonial] from a GNUstep user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why should I learn Objective-C? ==&lt;br /&gt;
&lt;br /&gt;
[[Objective-C]] gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen additional keywords. Its power lies in its elegance and simplicity. Don't like [[Objective-C]]? You can use Java (See [http://www.gnustep.it/jigs/index.html JIGS]) or Ruby (See [http://www.gnustep.org/experience/RIGS.html RIGS]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why should I use GNUstep? ==&lt;br /&gt;
&lt;br /&gt;
GNUstep provides an excellent, mature framework for writing good applications. There's good [http://www.stepwise.com/Articles/Business/NextOrderOfBusiness.html anecdotal] [http://www.stepwise.com/Articles/Business/NuclearStrike.html evidence] that [[OpenStep]] developers have written very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments. Using the visual interface modeling application, you can construct a decent user interface skeleton in a day or so with no coding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why not just use GNOME/KDE, X11, and C/C++? ==&lt;br /&gt;
&lt;br /&gt;
GNUstep works with GNOME, KDE (See [[IconManager.app]]), as well as many X11-based window managers. GNUstep runs on top of X11. You can still do programming in C (since Objective-C is a pure superset of C), and GCC version 4.1 and newer even supports the mixing of C++ and Objective-C. GNUstep frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of functionality, including Font Panels, Unicode strings, and even Distributed Objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== What development tools can I use? ==&lt;br /&gt;
&lt;br /&gt;
See page [[Development tools]] for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
The GNUstep libraries are covered under the [http://www.gnu.org/copyleft/lesser.html GNU Lesser (Library) Public License]. This generally means you can use these libraries in any program (even non-free programs) without affecting the license of your program or any other libraries GNUstep is linked with. If you distribute the GNUstep libraries along with your program, you must make the improvements you have made to the GNUstep libraries freely available. The stand-alone tools in GNUstep are under the standard [http://www.gnu.org/copyleft/gpl.html GPL].&lt;br /&gt;
&lt;br /&gt;
With GNUstep-Base, we recommend the use of the ffcall libraries, which provides stack frame handling for NSInvocation and NSConnection. &amp;quot;Ffcall is under GNU GPL. As a special exception, if used in GNUstep or in derivate works of GNUstep, the included parts of ffcall are under GNU LGPL&amp;quot; (Text in quotes provided by the author of ffcall).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
The GNUstep logo has been designed by Ayis Theseas Pyrros. It stands for the &amp;quot;yin-yang&amp;quot; of objects taking you &amp;quot;a couple of steps&amp;quot; further.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Introduction_to_GNUstep&amp;diff=7168</id>
		<title>Introduction to GNUstep</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Introduction_to_GNUstep&amp;diff=7168"/>
		<updated>2020-04-14T07:36:13Z</updated>

		<summary type="html">&lt;p&gt;Letterus: Add link to development tools.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep is a free, object-oriented, cross-platform development environment that strives for simplicity and elegance. GNUstep is based on and completely compatible with the [[OpenStep]] specification developed by NeXT (now Apple Computer Inc.) as well as implementing many extensions included in Mac OS X/Cocoa.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnustep.org/information/GNUstep-brochure.pdf Summary brochure] (2Mb PDF)&lt;br /&gt;
* [http://www.gnustep.org/information/Booklet.pdf Summary Booklet] (3Mb PDF)&lt;br /&gt;
* Our [[Mission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GNUstep is... ==&lt;br /&gt;
&lt;br /&gt;
=== ...an object-oriented tool development kit ===&lt;br /&gt;
&lt;br /&gt;
The first two packages (GNUstep-make and GNUstep-base) that make up the core libraries contain a complete system for writing non-graphic tools in Objective-C. The make package allows you to setup a simple and powerful system for building, installing and packaging your tools. The base package includes all the classes necessary for writing an incredible array of tools, from wrappers for system tools to tools for communicating with web and other types of servers.&lt;br /&gt;
&lt;br /&gt;
=== ...a graphical development kit ===&lt;br /&gt;
&lt;br /&gt;
The core libraries contain classes for developing a complete graphical application for almost any purpose. Along with our object-oriented, graphical development applications, [[ProjectCenter]] and [[Gorm]] it's simple to write very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments.&lt;br /&gt;
&lt;br /&gt;
=== ...a desktop ===&lt;br /&gt;
&lt;br /&gt;
Many GNUstep [[:Category:Applications|applications]] have been written to provide a powerful user experience for working on your computer. These include our workspace manager, [[GWorkspace]], and mail client, [[GNUMail]]. GNUstep does NOT have a window manager. You can use any window manager you want, although we recommend that you use [[WindowMaker]] for a better experience -- the WindowMaker project, however, is not associated with GNUstep. Many other applications that are useful for a desktop are not contained on this web site, nor are they controlled by the GNUstep project - there are too many ideas about what a desktop should look like that we have not made up our minds about which one to endorse yet.&lt;br /&gt;
&lt;br /&gt;
Here are some current ones:&lt;br /&gt;
&lt;br /&gt;
* [http://www.nongnu.org/gap/ GNUstep Application Project]&lt;br /&gt;
* [https://trunkmaster.github.io/ Nextspace]&lt;br /&gt;
&lt;br /&gt;
== GNUstep is not a window manager ==&lt;br /&gt;
&lt;br /&gt;
GNUstep is [[GNUstepIsNotWindowMaker|not a window manager]]. And the libraries are not used by WindowMaker at present, although WindowMaker shares a similar look.&lt;br /&gt;
&lt;br /&gt;
At no stage will you ever 'run' GNUstep - you will run applications and tools and will make use of its services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at the [http://io.debian.net/~tar/gnustep/ GNUstep Live CD] for example.&lt;br /&gt;
&lt;br /&gt;
== Additions to OpenStep ==&lt;br /&gt;
&lt;br /&gt;
In addition to the OpenStep API, GNUstep also implements many additional classes and methods, some from the Cocoa API for the sake of compatibility. GNUstep is written in the object-oriented language [[Objective-C]], a superset of C which adds object-orientation to C. Objective-C is very simple, yet very powerful. GNUstep also includes bindings to other languages such as Java (JIGS) and Ruby (RIGS).&lt;br /&gt;
&lt;br /&gt;
For more information, see the following [http://www.gnustep.org/information/statement.html testimonial] from a GNUstep user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why should I learn Objective-C? ==&lt;br /&gt;
&lt;br /&gt;
[[Objective-C]] gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen additional keywords. Its power lies in its elegance and simplicity. Don't like [[Objective-C]]? You can use Java (See [http://www.gnustep.it/jigs/index.html JIGS]) or Ruby (See [http://www.gnustep.org/experience/RIGS.html RIGS]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why should I use GNUstep? ==&lt;br /&gt;
&lt;br /&gt;
GNUstep provides an excellent, mature framework for writing good applications. There's good [http://www.stepwise.com/Articles/Business/NextOrderOfBusiness.html anecdotal] [http://www.stepwise.com/Articles/Business/NuclearStrike.html evidence] that [[OpenStep]] developers have written very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments. Using the visual interface modeling application, you can construct a decent user interface skeleton in a day or so with no coding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why not just use GNOME/KDE, X11, and C/C++? ==&lt;br /&gt;
&lt;br /&gt;
GNUstep works with GNOME, KDE (See [[IconManager.app]]), as well as many X11-based window managers. GNUstep runs on top of X11. You can still do programming in C (since Objective-C is a pure superset of C), and GCC version 4.1 and newer even supports the mixing of C++ and Objective-C. GNUstep frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of functionality, including Font Panels, Unicode strings, and even Distributed Objects.&lt;br /&gt;
&lt;br /&gt;
== What development tools can I use? ==&lt;br /&gt;
&lt;br /&gt;
See page [[Development tools]] for this.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
The GNUstep libraries are covered under the [http://www.gnu.org/copyleft/lesser.html GNU Lesser (Library) Public License]. This generally means you can use these libraries in any program (even non-free programs) without affecting the license of your program or any other libraries GNUstep is linked with. If you distribute the GNUstep libraries along with your program, you must make the improvements you have made to the GNUstep libraries freely available. The stand-alone tools in GNUstep are under the standard [http://www.gnu.org/copyleft/gpl.html GPL].&lt;br /&gt;
&lt;br /&gt;
With GNUstep-Base, we recommend the use of the ffcall libraries, which provides stack frame handling for NSInvocation and NSConnection. &amp;quot;Ffcall is under GNU GPL. As a special exception, if used in GNUstep or in derivate works of GNUstep, the included parts of ffcall are under GNU LGPL&amp;quot; (Text in quotes provided by the author of ffcall).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
The GNUstep logo has been designed by Ayis Theseas Pyrros. It stands for the &amp;quot;yin-yang&amp;quot; of objects taking you &amp;quot;a couple of steps&amp;quot; further.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Introduction_to_GNUstep&amp;diff=7167</id>
		<title>Introduction to GNUstep</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Introduction_to_GNUstep&amp;diff=7167"/>
		<updated>2020-04-14T07:33:46Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* ...a desktop */ Updated current desktop approaches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GNUstep is a free, object-oriented, cross-platform development environment that strives for simplicity and elegance. GNUstep is based on and completely compatible with the [[OpenStep]] specification developed by NeXT (now Apple Computer Inc.) as well as implementing many extensions included in Mac OS X/Cocoa.&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnustep.org/information/GNUstep-brochure.pdf Summary brochure] (2Mb PDF)&lt;br /&gt;
* [http://www.gnustep.org/information/Booklet.pdf Summary Booklet] (3Mb PDF)&lt;br /&gt;
* Our [[Mission]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GNUstep is... ==&lt;br /&gt;
&lt;br /&gt;
=== ...an object-oriented tool development kit ===&lt;br /&gt;
&lt;br /&gt;
The first two packages (GNUstep-make and GNUstep-base) that make up the core libraries contain a complete system for writing non-graphic tools in Objective-C. The make package allows you to setup a simple and powerful system for building, installing and packaging your tools. The base package includes all the classes necessary for writing an incredible array of tools, from wrappers for system tools to tools for communicating with web and other types of servers.&lt;br /&gt;
&lt;br /&gt;
=== ...a graphical development kit ===&lt;br /&gt;
&lt;br /&gt;
The core libraries contain classes for developing a complete graphical application for almost any purpose. Along with our object-oriented, graphical development applications, [[ProjectCenter]] and [[Gorm]] it's simple to write very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments.&lt;br /&gt;
&lt;br /&gt;
=== ...a desktop ===&lt;br /&gt;
&lt;br /&gt;
Many GNUstep [[:Category:Applications|applications]] have been written to provide a powerful user experience for working on your computer. These include our workspace manager, [[GWorkspace]], and mail client, [[GNUMail]]. GNUstep does NOT have a window manager. You can use any window manager you want, although we recommend that you use [[WindowMaker]] for a better experience -- the WindowMaker project, however, is not associated with GNUstep. Many other applications that are useful for a desktop are not contained on this web site, nor are they controlled by the GNUstep project - there are too many ideas about what a desktop should look like that we have not made up our minds about which one to endorse yet.&lt;br /&gt;
&lt;br /&gt;
Here are some current ones:&lt;br /&gt;
&lt;br /&gt;
* [http://www.nongnu.org/gap/ GNUstep Application Project]&lt;br /&gt;
* [https://trunkmaster.github.io/ Nextspace]&lt;br /&gt;
&lt;br /&gt;
== GNUstep is not a window manager ==&lt;br /&gt;
&lt;br /&gt;
GNUstep is [[GNUstepIsNotWindowMaker|not a window manager]]. And the libraries are not used by WindowMaker at present, although WindowMaker shares a similar look.&lt;br /&gt;
&lt;br /&gt;
At no stage will you ever 'run' GNUstep - you will run applications and tools and will make use of its services. At some point you may well find packages distributed as 'GNUstep' systems in the way that you get 'GNU/Linux' systems packaged today. Look at the [http://io.debian.net/~tar/gnustep/ GNUstep Live CD] for example.&lt;br /&gt;
&lt;br /&gt;
== Additions to OpenStep ==&lt;br /&gt;
&lt;br /&gt;
In addition to the OpenStep API, GNUstep also implements many additional classes and methods, some from the Cocoa API for the sake of compatibility. GNUstep is written in the object-oriented language [[Objective-C]], a superset of C which adds object-orientation to C. Objective-C is very simple, yet very powerful. GNUstep also includes bindings to other languages such as Java (JIGS) and Ruby (RIGS).&lt;br /&gt;
&lt;br /&gt;
For more information, see the following [http://www.gnustep.org/information/statement.html testimonial] from a GNUstep user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why should I learn Objective-C? ==&lt;br /&gt;
&lt;br /&gt;
[[Objective-C]] gives you the full power of a true object-oriented language with exactly one syntax addition to C and a dozen additional keywords. Its power lies in its elegance and simplicity. Don't like [[Objective-C]]? You can use Java (See [http://www.gnustep.it/jigs/index.html JIGS]) or Ruby (See [http://www.gnustep.org/experience/RIGS.html RIGS]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why should I use GNUstep? ==&lt;br /&gt;
&lt;br /&gt;
GNUstep provides an excellent, mature framework for writing good applications. There's good [http://www.stepwise.com/Articles/Business/NextOrderOfBusiness.html anecdotal] [http://www.stepwise.com/Articles/Business/NuclearStrike.html evidence] that [[OpenStep]] developers have written very complex commercial applications in weeks or months, rather than years (or often, never) in the case of other development environments. Using the visual interface modeling application, you can construct a decent user interface skeleton in a day or so with no coding.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Why not just use GNOME/KDE, X11, and C/C++? ==&lt;br /&gt;
&lt;br /&gt;
GNUstep works with GNOME, KDE (See [[IconManager.app]]), as well as many X11-based window managers. GNUstep runs on top of X11. You can still do programming in C (since Objective-C is a pure superset of C), and GCC version 4.1 and newer even supports the mixing of C++ and Objective-C. GNUstep frees you to develop cross-platform applications without the work of developing an OS independent framework from scratch. It gives you lots of functionality, including Font Panels, Unicode strings, and even Distributed Objects.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== License ==&lt;br /&gt;
&lt;br /&gt;
The GNUstep libraries are covered under the [http://www.gnu.org/copyleft/lesser.html GNU Lesser (Library) Public License]. This generally means you can use these libraries in any program (even non-free programs) without affecting the license of your program or any other libraries GNUstep is linked with. If you distribute the GNUstep libraries along with your program, you must make the improvements you have made to the GNUstep libraries freely available. The stand-alone tools in GNUstep are under the standard [http://www.gnu.org/copyleft/gpl.html GPL].&lt;br /&gt;
&lt;br /&gt;
With GNUstep-Base, we recommend the use of the ffcall libraries, which provides stack frame handling for NSInvocation and NSConnection. &amp;quot;Ffcall is under GNU GPL. As a special exception, if used in GNUstep or in derivate works of GNUstep, the included parts of ffcall are under GNU LGPL&amp;quot; (Text in quotes provided by the author of ffcall).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Design ==&lt;br /&gt;
&lt;br /&gt;
The GNUstep logo has been designed by Ayis Theseas Pyrros. It stands for the &amp;quot;yin-yang&amp;quot; of objects taking you &amp;quot;a couple of steps&amp;quot; further.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7166</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7166"/>
		<updated>2020-04-13T19:18:26Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* JetBrains CLion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed. For its up- and downsides you may consult the [[ProjectCenter FAQ]].&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you may want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known to Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;br /&gt;
&lt;br /&gt;
=== Xcode ===&lt;br /&gt;
&lt;br /&gt;
You are not able to install Xcode using a Free Software environment. But of course it is possible to use Apple's Xcode to develop apps that are based on Foundation and AppKit. Xcode won't create a proper makefile for you. You will have to do that yourself or let ProjectCenter do the work for you. But if you use Xcode's interface builder (formerly &amp;quot;Interface Builder&amp;quot;) to create graphical user interfaces utilizing [[XIB]] files instead of storyboards, GNUstep will be able to load and execute these [[XIB]] files as well.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=XIB&amp;diff=7165</id>
		<title>XIB</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=XIB&amp;diff=7165"/>
		<updated>2020-04-13T18:41:47Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* gnustep-gui/AppKit compatibility to Cocoa/AppKit regarding xib files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of MacOS 10.3 Apple moved away from the binary encoded nib files, and towards the xml encoded XIB files, for their interface definitions. As of 10.9 (Xcode 5) Apple changed the xib file format totally. Support of &amp;quot;XIB 5&amp;quot; files and above by Gorm is currently prepared.&lt;br /&gt;
&lt;br /&gt;
== Xib file format ==&lt;br /&gt;
&lt;br /&gt;
The xib file format is actually quite easy to understand as it is a human readable xml file. For a reference see [http://www.monobjc.net/xib-file-format.html XIB File Format Definition as understod by MonoObjc].&lt;br /&gt;
&lt;br /&gt;
== Gorm compatibility to Xcode ==&lt;br /&gt;
&lt;br /&gt;
As of version 1.2.24 Gorm is able to read xib and nib files from Xcode up to file version of Xcode 4 (to some extend). Gorm can save nib files, but these nib files currently cannot be read by Xcode 3 and above. This means for development of xibs/nibs you want to open using Gorm you need to use Xcode up to version 5 (Xcode 5 can save xibs in file version of Xcode 4). So you can use a Mac OS X version up to 10.10. macOS 10.11 and newer won't run Xcode 5 anymore.&lt;br /&gt;
&lt;br /&gt;
Gorm did not yet follow up the changes of gnustep-gui described below.&lt;br /&gt;
&lt;br /&gt;
== gnustep-gui/AppKit compatibility to Cocoa/AppKit regarding xib files ==&lt;br /&gt;
&lt;br /&gt;
As of release [https://github.com/gnustep/libs-gui/releases/tag/gui-0_28_0 0.28.0] gnustep-gui is able to interpret xib files created by a recent version of Xcode (Xcode 11 at the time writing this). Even [https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaBindings/CocoaBindings.html Cocoa bindings] (using KVC/KVO) will work to some extend.&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Overview.html Apple on KVC]&lt;br /&gt;
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i Apple on KVO]&lt;br /&gt;
&lt;br /&gt;
== Using .nib and .gorm files in parallel ==&lt;br /&gt;
&lt;br /&gt;
You can use .nib and .gorm files in parallel to develop cross platform applications. GNUstep will load a .gorm file over a .nib file given the same name.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=XIB&amp;diff=7164</id>
		<title>XIB</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=XIB&amp;diff=7164"/>
		<updated>2020-04-13T18:41:03Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* gnustep-gui/AppKit compatibility to Cocoa/AppKit regarding xib files */ Update due to changes now released&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As of MacOS 10.3 Apple moved away from the binary encoded nib files, and towards the xml encoded XIB files, for their interface definitions. As of 10.9 (Xcode 5) Apple changed the xib file format totally. Support of &amp;quot;XIB 5&amp;quot; files and above by Gorm is currently prepared.&lt;br /&gt;
&lt;br /&gt;
== Xib file format ==&lt;br /&gt;
&lt;br /&gt;
The xib file format is actually quite easy to understand as it is a human readable xml file. For a reference see [http://www.monobjc.net/xib-file-format.html XIB File Format Definition as understod by MonoObjc].&lt;br /&gt;
&lt;br /&gt;
== Gorm compatibility to Xcode ==&lt;br /&gt;
&lt;br /&gt;
As of version 1.2.24 Gorm is able to read xib and nib files from Xcode up to file version of Xcode 4 (to some extend). Gorm can save nib files, but these nib files currently cannot be read by Xcode 3 and above. This means for development of xibs/nibs you want to open using Gorm you need to use Xcode up to version 5 (Xcode 5 can save xibs in file version of Xcode 4). So you can use a Mac OS X version up to 10.10. macOS 10.11 and newer won't run Xcode 5 anymore.&lt;br /&gt;
&lt;br /&gt;
Gorm did not yet follow up the changes of gnustep-gui described below.&lt;br /&gt;
&lt;br /&gt;
== gnustep-gui/AppKit compatibility to Cocoa/AppKit regarding xib files ==&lt;br /&gt;
&lt;br /&gt;
As of release [https://github.com/gnustep/libs-gui/releases/tag/gui-0_28_0 0.28.0] gnustep-gui is able to interpret xib files created by a concurrent version of Xcode (Xcode 11 at the time writing this). Even [https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaBindings/CocoaBindings.html Cocoa bindings] (using KVC/KVO) will work to some extend.&lt;br /&gt;
&lt;br /&gt;
=== See Also ===&lt;br /&gt;
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Overview.html Apple on KVC]&lt;br /&gt;
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i Apple on KVO]&lt;br /&gt;
&lt;br /&gt;
== Using .nib and .gorm files in parallel ==&lt;br /&gt;
&lt;br /&gt;
You can use .nib and .gorm files in parallel to develop cross platform applications. GNUstep will load a .gorm file over a .nib file given the same name.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7163</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7163"/>
		<updated>2020-04-13T18:38:29Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Proprietary */ Added information about Xcode&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed. For its up- and downsides you may consult the [[ProjectCenter FAQ]].&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you may want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known for Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;br /&gt;
&lt;br /&gt;
=== Xcode ===&lt;br /&gt;
&lt;br /&gt;
You are not able to install Xcode using a Free Software environment. But of course it is possible to use Apple's Xcode to develop apps that are based on Foundation and AppKit. Xcode won't create a proper makefile for you. You will have to do that yourself or let ProjectCenter do the work for you. But if you use Xcode's interface builder (formerly &amp;quot;Interface Builder&amp;quot;) to create graphical user interfaces utilizing [[XIB]] files instead of storyboards, GNUstep will be able to load and execute these [[XIB]] files as well.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7162</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7162"/>
		<updated>2020-04-13T18:32:37Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Tools from the GNUstep project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed. For its up- and downsides you may consult the [[ProjectCenter FAQ]].&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you may want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known for Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7161</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7161"/>
		<updated>2020-04-13T18:30:04Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Tools from the GNUstep project */ Added link to ProjectCenter FAQ&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed. For its up- and downsides you may consult the [[ProjectCenter FAQ]].&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known for Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7160</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7160"/>
		<updated>2020-04-13T18:26:09Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* KDevelop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed.&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that might offer some features more, run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are built upon GNUmakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known for Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7159</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7159"/>
		<updated>2020-04-13T18:25:39Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Tools from the GNUstep project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed.&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that might offer some features more, run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime ([[ObjC2_FAQ]] | [[Building GNUstep under Debian FreeBSD]]).&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are build upon GNUMakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known for Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=7158</id>
		<title>Developer Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=7158"/>
		<updated>2020-04-13T18:18:00Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* General */ Added the new article about Objective C IDEs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for developers.&lt;br /&gt;
&lt;br /&gt;
== Introductory Articles on GNUstep Development ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
=== [[Installation]] ===&lt;br /&gt;
How to get started using GNUStep, because it is not immediately obvious, and we appologize for that.&lt;br /&gt;
&lt;br /&gt;
=== [[GNUstep Suite|GNUstep Libraries and Tools]] ===&lt;br /&gt;
&lt;br /&gt;
A general overview of GNUstep.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] ===&lt;br /&gt;
&lt;br /&gt;
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. &lt;br /&gt;
&lt;br /&gt;
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.&lt;br /&gt;
&lt;br /&gt;
===[[GNUStep Macros]]===&lt;br /&gt;
See a define, but don't know what it's for, you are not alone.  See this article for a reference to various macros, or otherwise unusual language extensions that you may see when reading the GNUStep Code.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces.&lt;br /&gt;
&lt;br /&gt;
=== [[Writing Makefiles]] ===&lt;br /&gt;
&lt;br /&gt;
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.&lt;br /&gt;
&lt;br /&gt;
=== Sample GNUstep Programs ===&lt;br /&gt;
&lt;br /&gt;
This isn't really an article but rather a collection of small &amp;quot;codified guides&amp;quot; for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background. Get the gnustep-examples package from [ftp://ftp.gnustep.org/pub/gnustep/core/ here]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== [[Writing portable code|Coding for Portability]] ===&lt;br /&gt;
&lt;br /&gt;
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes &lt;br /&gt;
some straight-forward steps to take to make your program easy to port to new platforms.&lt;br /&gt;
&lt;br /&gt;
=== [[Property Lists|Using Property Lists]] ===&lt;br /&gt;
&lt;br /&gt;
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.&lt;br /&gt;
&lt;br /&gt;
=== [[Deployment on Windows]] ===&lt;br /&gt;
&lt;br /&gt;
This article will tell you how to deploy GNUstep applications on Windows.&lt;br /&gt;
&lt;br /&gt;
=== [[Adding a new Natural Language to GNUstep|Translating GNUstep]] ===&lt;br /&gt;
&lt;br /&gt;
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.&lt;br /&gt;
&lt;br /&gt;
=== [[Contributing to GNUstep core libraries]] ===&lt;br /&gt;
&lt;br /&gt;
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions.  Follow the link above to see how.&lt;br /&gt;
&lt;br /&gt;
When you read the information on [[Contributing to GNUstep core libraries]], please keep in mind that while it was written primarily form the point of view of contributing  code to the gnustep-base library, the principles all apply to the gnustep-gui library (and other library code too).  Also, a lot of the information is also relevant to contributions to application/tool code, not just library code.&lt;br /&gt;
&lt;br /&gt;
=== [[Integrated Development Environments for Objective C]] ===&lt;br /&gt;
&lt;br /&gt;
Besides the official GNUstep project tools there are some more IDEs that can help you to get into developing GNUstep and Objective C very easily.&lt;br /&gt;
&lt;br /&gt;
== Graphical Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Graphical Application Design ===&lt;br /&gt;
GNUstep includes two development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There is a proto-IDE, [[ProjectCenter]].&lt;br /&gt;
&lt;br /&gt;
There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive.&lt;br /&gt;
&lt;br /&gt;
=== [[Document based applications|Document-based Application Design]] ===&lt;br /&gt;
&lt;br /&gt;
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Applications ==&lt;br /&gt;
&lt;br /&gt;
Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application.&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
&lt;br /&gt;
=== Developer sites ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=7157</id>
		<title>Developer Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=7157"/>
		<updated>2020-04-13T18:15:22Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Simple Graphical Application Design */ Updated the paragraph to make it reflect the current status more precisely&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for developers.&lt;br /&gt;
&lt;br /&gt;
== Introductory Articles on GNUstep Development ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
=== [[Installation]] ===&lt;br /&gt;
How to get started using GNUStep, because it is not immediately obvious, and we appologize for that.&lt;br /&gt;
&lt;br /&gt;
=== [[GNUstep Suite|GNUstep Libraries and Tools]] ===&lt;br /&gt;
&lt;br /&gt;
A general overview of GNUstep.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] ===&lt;br /&gt;
&lt;br /&gt;
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. &lt;br /&gt;
&lt;br /&gt;
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.&lt;br /&gt;
&lt;br /&gt;
===[[GNUStep Macros]]===&lt;br /&gt;
See a define, but don't know what it's for, you are not alone.  See this article for a reference to various macros, or otherwise unusual language extensions that you may see when reading the GNUStep Code.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces.&lt;br /&gt;
&lt;br /&gt;
=== [[Writing Makefiles]] ===&lt;br /&gt;
&lt;br /&gt;
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.&lt;br /&gt;
&lt;br /&gt;
=== Sample GNUstep Programs ===&lt;br /&gt;
&lt;br /&gt;
This isn't really an article but rather a collection of small &amp;quot;codified guides&amp;quot; for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background. Get the gnustep-examples package from [ftp://ftp.gnustep.org/pub/gnustep/core/ here]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== [[Writing portable code|Coding for Portability]] ===&lt;br /&gt;
&lt;br /&gt;
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes &lt;br /&gt;
some straight-forward steps to take to make your program easy to port to new platforms.&lt;br /&gt;
&lt;br /&gt;
=== [[Property Lists|Using Property Lists]] ===&lt;br /&gt;
&lt;br /&gt;
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.&lt;br /&gt;
&lt;br /&gt;
=== [[Deployment on Windows]] ===&lt;br /&gt;
&lt;br /&gt;
This article will tell you how to deploy GNUstep applications on Windows.&lt;br /&gt;
&lt;br /&gt;
=== [[Adding a new Natural Language to GNUstep|Translating GNUstep]] ===&lt;br /&gt;
&lt;br /&gt;
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.&lt;br /&gt;
&lt;br /&gt;
=== [[Contributing to GNUstep core libraries]] ===&lt;br /&gt;
&lt;br /&gt;
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions.  Follow the link above to see how.&lt;br /&gt;
&lt;br /&gt;
When you read the information on [[Contributing to GNUstep core libraries]], please keep in mind that while it was written primarily form the point of view of contributing  code to the gnustep-base library, the principles all apply to the gnustep-gui library (and other library code too).  Also, a lot of the information is also relevant to contributions to application/tool code, not just library code.&lt;br /&gt;
&lt;br /&gt;
== Graphical Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Graphical Application Design ===&lt;br /&gt;
GNUstep includes two development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There is a proto-IDE, [[ProjectCenter]].&lt;br /&gt;
&lt;br /&gt;
There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive.&lt;br /&gt;
&lt;br /&gt;
=== [[Document based applications|Document-based Application Design]] ===&lt;br /&gt;
&lt;br /&gt;
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Applications ==&lt;br /&gt;
&lt;br /&gt;
Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application.&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
&lt;br /&gt;
=== Developer sites ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7156</id>
		<title>Integrated Development Environments for Objective C</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Integrated_Development_Environments_for_Objective_C&amp;diff=7156"/>
		<updated>2020-04-13T18:12:44Z</updated>

		<summary type="html">&lt;p&gt;Letterus: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Tools from the GNUstep project ==&lt;br /&gt;
&lt;br /&gt;
There is an official IDE from the GNUstep project, which is [[ProjectCenter]]. It is actively maintained and developed.&lt;br /&gt;
&lt;br /&gt;
Independent of the IDE you want to use you probably want to rely on [[Gorm]] or [[Renaissance]] for developing graphical user interfaces.&lt;br /&gt;
&lt;br /&gt;
Besides ProjectCenter there are some more IDEs, that might offer some features more, run under Free Software environments and offer support for developing with Objective C.&lt;br /&gt;
&lt;br /&gt;
The IDEs below usually rely on clang. So you benefit most from using them if you develop your applications using clang and the new (ng) GNUstep runtime.&lt;br /&gt;
&lt;br /&gt;
== Free Software or Open Source ==&lt;br /&gt;
&lt;br /&gt;
=== KDevelop ===&lt;br /&gt;
&lt;br /&gt;
[https://www.kdevelop.org/ KDevelop] is the official IDE from the KDE project based on Qt and the KDE libraries. Besides many other languages it supports Objective C. It supports projects that are build upon GNUMakefiles and thus should support GNUstep projects quite well. It is GPL 2 licensed and easily available via the package managers of most distributions and operating systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code ===&lt;br /&gt;
&lt;br /&gt;
[https://code.visualstudio.com/ Visual Studio Code] is a relatively small electron (JavaScript) app, shipped as Open Source Software from Microsoft. Besides many other languages it supports Objective C very well. It is MIT licensed and you are expected to obtain it from Microsoft.&lt;br /&gt;
&lt;br /&gt;
== Proprietary ==&lt;br /&gt;
&lt;br /&gt;
=== JetBrains CLion ===&lt;br /&gt;
&lt;br /&gt;
[https://www.jetbrains.com/clion/ JetBrains CLion] is a proprietary, full featured IDE for C and C++ (the framework is well known for Java developers), but also [https://www.jetbrains.com/help/clion/objective-c-c-support.html supporting Objective C].&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=7155</id>
		<title>Developer Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Developer_Guides&amp;diff=7155"/>
		<updated>2020-04-13T17:42:26Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Simple Graphical Application Design */ Deleted dead links to tutorial videos.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for developers.&lt;br /&gt;
&lt;br /&gt;
== Introductory Articles on GNUstep Development ==&lt;br /&gt;
&lt;br /&gt;
{{Stub}}&lt;br /&gt;
&lt;br /&gt;
=== [[Installation]] ===&lt;br /&gt;
How to get started using GNUStep, because it is not immediately obvious, and we appologize for that.&lt;br /&gt;
&lt;br /&gt;
=== [[GNUstep Suite|GNUstep Libraries and Tools]] ===&lt;br /&gt;
&lt;br /&gt;
A general overview of GNUstep.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.gnustep.org/resources/documentation/Developer/Base/ProgrammingManual/manual_toc.html GNUstep Base Programming Manual] ===&lt;br /&gt;
&lt;br /&gt;
The aim of this manual is to introduce you to the Objective-C language and the GNUstep development environment, in particular the Base library. The manual is organised to give you a tutorial introduction to the language and APIs, by using examples whenever possible, rather than providing a lengthy abstract description. &lt;br /&gt;
&lt;br /&gt;
While Objective-C is not a difficult language to learn or use, some of the terms may be unfamiliar, especially to those that have not programmed using an object-oriented programming language before. Whenever possible, concepts will be explained in simple terms rather than in more advanced programming terms, and comparisons to other languages will be used to aid in illustration.&lt;br /&gt;
&lt;br /&gt;
===[[GNUStep Macros]]===&lt;br /&gt;
See a define, but don't know what it's for, you are not alone.  See this article for a reference to various macros, or otherwise unusual language extensions that you may see when reading the GNUStep Code.&lt;br /&gt;
&lt;br /&gt;
=== [http://www.roard.com/docs/lmf2.article/en.html (GUI) Programming under GNUstep] ===&lt;br /&gt;
&lt;br /&gt;
This tutorial will introduce you to the [[AppKit]] classes and how to use [[Gorm]] to create graphical interfaces.&lt;br /&gt;
&lt;br /&gt;
=== [[Writing Makefiles]] ===&lt;br /&gt;
&lt;br /&gt;
The Makefile package is a system of make commands that is designed to encapsulate all the complex details of building and installing various types of projects from libraries to applications to documentation. This frees the developer to focus on the details of their particular project. Only a fairly simple main makefile need to be written which specifies the type of project and files involved in the project.&lt;br /&gt;
&lt;br /&gt;
=== Sample GNUstep Programs ===&lt;br /&gt;
&lt;br /&gt;
This isn't really an article but rather a collection of small &amp;quot;codified guides&amp;quot; for the pragmatic programmer who wants to explore GNUstep by looking at and messing around with example code. This is best done while reading about basic concepts of OpenStep or Cocoa with the API documentation ([[Foundation]], [[AppKit]]) open in the background. Get the gnustep-examples package from [ftp://ftp.gnustep.org/pub/gnustep/core/ here]&lt;br /&gt;
&lt;br /&gt;
== General ==&lt;br /&gt;
&lt;br /&gt;
=== [[Writing portable code|Coding for Portability]] ===&lt;br /&gt;
&lt;br /&gt;
Writing code that will compile and then run on different platforms can be surprisingly easy. This guide describes &lt;br /&gt;
some straight-forward steps to take to make your program easy to port to new platforms.&lt;br /&gt;
&lt;br /&gt;
=== [[Property Lists|Using Property Lists]] ===&lt;br /&gt;
&lt;br /&gt;
A regular issue that programmers face is storing structured configuration information, and reading it back. GNUstep has a standard mechanism that can be used for this task, amongst others: Property Lists.&lt;br /&gt;
&lt;br /&gt;
=== [[Deployment on Windows]] ===&lt;br /&gt;
&lt;br /&gt;
This article will tell you how to deploy GNUstep applications on Windows.&lt;br /&gt;
&lt;br /&gt;
=== [[Adding a new Natural Language to GNUstep|Translating GNUstep]] ===&lt;br /&gt;
&lt;br /&gt;
Translation of GNUstep applications involves a number of steps, including translation of GNUstep Base and GNUstep GUI.&lt;br /&gt;
&lt;br /&gt;
=== [[Contributing to GNUstep core libraries]] ===&lt;br /&gt;
&lt;br /&gt;
Contributing to the core libraries is what everyone loves you for the most ... but it's quite a step to go from simple bug fixes/patches to major new code contributions.  Follow the link above to see how.&lt;br /&gt;
&lt;br /&gt;
When you read the information on [[Contributing to GNUstep core libraries]], please keep in mind that while it was written primarily form the point of view of contributing  code to the gnustep-base library, the principles all apply to the gnustep-gui library (and other library code too).  Also, a lot of the information is also relevant to contributions to application/tool code, not just library code.&lt;br /&gt;
&lt;br /&gt;
== Graphical Applications ==&lt;br /&gt;
&lt;br /&gt;
=== Simple Graphical Application Design ===&lt;br /&gt;
GNUstep includes several sophisticated development tools. GNUstep GUI interfaces are designed using [[Gorm]] (Graphical Object Relationship Modeler), an elegant application developed by Gregory Casamento. (See his [http://heronsperch.blogspot.com/ blog] for the latest news on GORM.) There are two proto-IDEs, [[ProjectCenter]] and [[ProjectManager]].&lt;br /&gt;
&lt;br /&gt;
There are several introductory tutorials for using these development tools. The first [http://www.gnustep.it/pierre-yves/index.html tutorial] by Pierre-Yves Rivaille is a classic demonstrating the process used to create the ubiquitous currency converter application. A second [http://www.nongnu.org/gstutorial/ tutorial] by Yen-Ju Chen is somewhat more in-depth and extensive.&lt;br /&gt;
&lt;br /&gt;
=== [[Document based applications|Document-based Application Design]] ===&lt;br /&gt;
&lt;br /&gt;
One of the most common use-patterns of applications on modern platforms is that of document-based applications --- applications which can have several active user-controlled contexts. Some familar examples might be a word processor where the user may have multiple document windows concurrently, or a web browser which allows a user to have a number of different browser windows open at the same time. This guide provides information and tips on how to code this style of application.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Web Applications ==&lt;br /&gt;
&lt;br /&gt;
Please have a look at [[Creating A Simple GSWeb Application]] to learn how to create a [[GNUstepWeb|GNUstep Web]] application.&lt;br /&gt;
&lt;br /&gt;
== Other Information ==&lt;br /&gt;
&lt;br /&gt;
=== Developer sites ===&lt;br /&gt;
&lt;br /&gt;
* [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=User_Guides&amp;diff=7154</id>
		<title>User Guides</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=User_Guides&amp;diff=7154"/>
		<updated>2020-04-13T17:36:59Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* Other Info */ Added Nextspace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is intended as a collection of guides for users.&lt;br /&gt;
&lt;br /&gt;
== Installing GNUstep ==&lt;br /&gt;
&lt;br /&gt;
Installation can be easy or complex, depending on the system you use. If you encounter problems that aren't discussed here, please [[Get Help|ask for help on the mailing lists]].&lt;br /&gt;
&lt;br /&gt;
* [[Installation | Installation introduction]]&lt;br /&gt;
* Instructions on how to install on [[Platform:BSD|BSD]] or [[Platform:Linux|Linux]]. There are other [[Platform_compatibility|platform-specific]] instructions as well.&lt;br /&gt;
* Comprehensive [http://gnustep.made-it.com/BuildGuide/ build guide] for GNUstep on GNU/Linux.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
* [http://www.gnustep.org/resources/documentation/User/Gui/KeyboardSetup.html User Keyboard Setup]&lt;br /&gt;
* [http://www.gnustep.org/resources/documentation/User/Gui/LanguageSetup.html Setup for East Asian Languages]&lt;br /&gt;
* User Defaults ([http://www.gnustep.org/resources/documentation/User/Gui/DefaultsSummary.html GUI]) ([http://www.gnustep.org/resources/documentation/Developer/Back/General/DefaultsSummary.html Back])&lt;br /&gt;
&lt;br /&gt;
== Advanced installation ==&lt;br /&gt;
&lt;br /&gt;
* [[GNUstep SVN Installation Guide]]&lt;br /&gt;
* [http://svn.gna.org/svn/etoile/trunk/Etoile/INSTALL.Ubuntu GNUstep and Étoilé dependency list]&lt;br /&gt;
* [[Building GNUstep with Clang]]&lt;br /&gt;
* [[Building GNUstep under Debian FreeBSD|Building GNUstep under Debian and FreeBSD using runtime 2.0 with clang and support for blocks, Grand Central Dispatch and ARC]]&lt;br /&gt;
* [http://artinamessage.wordpress.com/2013/06/03/gnustep-install-with-clang-blocks-and-grand-central-dispatch-gcd/ Building GNUstep with clang, blocks, and Grand Central Dispatch]&lt;br /&gt;
* [[Raspbian Install| Raspbian Install]]&lt;br /&gt;
&lt;br /&gt;
== Using GNUstep ==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Applications|User Applications]]&lt;br /&gt;
* [http://www.gnustep.org/resources/documentation/User/GNUstep/filesystem_toc.html Filesystem Layout] ([http://www.gnustep.org/resources/documentation/User/GNUstep/filesystem.pdf PDF])&lt;br /&gt;
* [[User_FAQ|GNUstep Users' FAQ]] ([http://www.gnustep.org/resources/documentation/User/GNUstep/userfaq.pdf PDF])&lt;br /&gt;
* [[Get Help|Mailing Lists, IRC and Newsgroups]]&lt;br /&gt;
* [[Cross Compiling]]&lt;br /&gt;
* [http://gnustep.files.wordpress.com/2010/11/objective-c_gnustep.pdf Manual de Objective-C y GNUstep (PDF en español)]&lt;br /&gt;
* [[Themes|Changing GNUstep Theme]]&lt;br /&gt;
&lt;br /&gt;
== Other Info ==&lt;br /&gt;
&lt;br /&gt;
* News and info:&lt;br /&gt;
** [http://freecode.com/tags/objective-c Freshmeat] -&amp;gt;Freecode Effective 2014-06-18 Freecode is no longer being updated (content may be stale).&lt;br /&gt;
** [http://www.gnustep.wordpress.com/ GNUstep en español] - Noticias e información&lt;br /&gt;
* Projects:&lt;br /&gt;
** [[:Category:Desktop Environments|Desktop Environments]]&lt;br /&gt;
*** [http://www.nongnu.org/backbone/ Backbone] - GNUstep Desktop project&lt;br /&gt;
*** [http://www.etoile-project.org/ Étoilé] - GNUstep based user environment&lt;br /&gt;
*** [http://www.nongnu.org/gap/ GAP] - GNUstep Application Project&lt;br /&gt;
*** [https://trunkmaster.github.io/ Nextspace] - GNUstep based Desktop project&lt;br /&gt;
** Live CDs&lt;br /&gt;
*** [http://livecd.gnustep.org/ GNUSTEP Live CD] - based on Debian&lt;br /&gt;
*** ALT Linux based (i586/x86_64, BIOS/UEFI, considerable number of GNUstep/Étoilé apps):&lt;br /&gt;
**** [http://en.altlinux.org/Starterkits/gnustep GNUstep starterkit] - updated quarterly (as of June 2014) using stable package branch&lt;br /&gt;
**** [http://en.altlinux.org/Regular#experimental Regular GNUstep] - updated [http://nightly.altlinux.org/sisyphus/flavours/gnustep/ weekly] using unstable development branch&lt;br /&gt;
* Developer sites:&lt;br /&gt;
** [[For_Developers | Developers]] - List of developers&lt;br /&gt;
** [http://www.gnustep.it/ GNUstep.it] - Italian developer site&lt;br /&gt;
** [http://www.collaboration-world.com/ Collaboration World] - home to GNUMail, Affiche and more&lt;br /&gt;
** [http://www.roard.com/docs/ GNUstep HelpCenter]&lt;br /&gt;
** [http://www.aiei.ch/gnustep/icons/icons.html GNUstep Icons project]&lt;br /&gt;
* [[Success_Stories | GNUstep Success Stories]]&lt;br /&gt;
&lt;br /&gt;
== Stores ==&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7134</id>
		<title>Building GNUstep under Debian FreeBSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7134"/>
		<updated>2020-02-20T07:45:11Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* libiconv */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's a tutorial on how to to build gnustep and its dependencies if you want to run it using GNUstep runtime 2.0 (ng), which has to be built using clang 8.0.&lt;br /&gt;
&lt;br /&gt;
You'll find these steps bundled in a script which you can execute under Debian 9 at https://github.com/plaurent/gnustep-build/tree/master/debian-9-clang-8.0-runtime-2.0.&lt;br /&gt;
&lt;br /&gt;
== Install empty VM ==&lt;br /&gt;
&lt;br /&gt;
We start with an empty Debian9 or FreeBSD 12 VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under Debian 9 ==&lt;br /&gt;
&lt;br /&gt;
we install these packages under Debian as they are coming up as dependencies anyhow&lt;br /&gt;
&lt;br /&gt;
  apt-get install dirmngr&lt;br /&gt;
  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com \&lt;br /&gt;
           15CF4D18AF4F7421&lt;br /&gt;
  sudo apt -y install build-essential git subversion \&lt;br /&gt;
  libpthread-workqueue0 libpthread-workqueue-dev \&lt;br /&gt;
  libxml2 libxml2-dev \&lt;br /&gt;
  libffi6 libffi-dev \&lt;br /&gt;
  libicu-dev \&lt;br /&gt;
  libuuid1 uuid-dev uuid-runtime \&lt;br /&gt;
  libsctp1 libsctp-dev lksctp-tools \&lt;br /&gt;
  libavahi-core7 libavahi-core-dev \&lt;br /&gt;
  libavahi-client3 libavahi-client-dev \&lt;br /&gt;
  libavahi-common3 libavahi-common-dev libavahi-common-data \&lt;br /&gt;
  libgcrypt20 libgcrypt20-dev \&lt;br /&gt;
  libtiff5 libtiff5-dev \&lt;br /&gt;
  libbsd0 libbsd-dev \&lt;br /&gt;
  util-linux-locales \&lt;br /&gt;
  locales-all \&lt;br /&gt;
  libjpeg-dev \&lt;br /&gt;
  libtiff-dev \&lt;br /&gt;
  libcups2-dev \&lt;br /&gt;
  libfreetype6-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev \&lt;br /&gt;
  libgl1-mesa-dev \&lt;br /&gt;
  libpcap-dev \&lt;br /&gt;
  libc-dev libc++-dev libc++1 \&lt;br /&gt;
  python-dev swig \&lt;br /&gt;
  libedit-dev libeditline0 libeditline-dev readline-common \&lt;br /&gt;
  binfmt-support libtinfo-dev \&lt;br /&gt;
  bison flex m4 wget \&lt;br /&gt;
  libicns1 libicns-dev \&lt;br /&gt;
  libxslt1.1 libxslt1-dev \&lt;br /&gt;
  libxft2 libxft-dev \&lt;br /&gt;
  libflite1 flite1-dev \&lt;br /&gt;
  libxmu6 libxpm4 wmaker-common \&lt;br /&gt;
  libgnutls30 libgnutls28-dev \&lt;br /&gt;
  libpng-dev libpng16-16 \&lt;br /&gt;
  default-libmysqlclient-dev \&lt;br /&gt;
  libpq-dev \&lt;br /&gt;
  libstdc++-6-dev \&lt;br /&gt;
  libreadline7 libreadline-dev \gobjc-6 gobjc++-6 \&lt;br /&gt;
  libgif7 libgif-dev libwings3 libwings-dev libwraster5 \&lt;br /&gt;
  libwraster-dev libwutil5 \&lt;br /&gt;
  libcups2-dev libicu57 libicu-dev \&lt;br /&gt;
  gobjc++ \&lt;br /&gt;
  xorg \&lt;br /&gt;
  libfreetype6 libfreetype6-dev \&lt;br /&gt;
  libpango1.0-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev libssl-dev \&lt;br /&gt;
  libasound2-dev libjack-dev libjack0 libportaudio2 \&lt;br /&gt;
  libportaudiocpp0 portaudio19-dev \&lt;br /&gt;
  libstdc++-6-dev libstdc++-6-doc libstdc++-6-pic \&lt;br /&gt;
  libstdc++6 wmaker cmake cmake-curses-gui xpdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under FeeBSD 12 ==&lt;br /&gt;
&lt;br /&gt;
  pkg install git \&lt;br /&gt;
     autoconf \&lt;br /&gt;
     automake \&lt;br /&gt;
     cmake \&lt;br /&gt;
     subversion  \&lt;br /&gt;
     wget \&lt;br /&gt;
     bash \&lt;br /&gt;
     pkgconf \&lt;br /&gt;
     sudo \&lt;br /&gt;
     gmake \&lt;br /&gt;
     windowmaker \&lt;br /&gt;
     jpeg \&lt;br /&gt;
     tiff \&lt;br /&gt;
     png \&lt;br /&gt;
     libxml2 \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     gnutls \&lt;br /&gt;
     libffi \&lt;br /&gt;
     icu \&lt;br /&gt;
     cairo \&lt;br /&gt;
     avahi \&lt;br /&gt;
     portaudio \&lt;br /&gt;
     flite \&lt;br /&gt;
     pngwriter \&lt;br /&gt;
     mariadb103-client \&lt;br /&gt;
     postgresql96-client \&lt;br /&gt;
     bash \&lt;br /&gt;
     clang \&lt;br /&gt;
     lldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We install a decent clang compiler. ==&lt;br /&gt;
&lt;br /&gt;
clang-8: from clang8 repository: Add a file /etc/apt/sources.d/llvm.list with content&lt;br /&gt;
&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
&lt;br /&gt;
To install you call it like this:&lt;br /&gt;
&lt;br /&gt;
  apt-get update&lt;br /&gt;
  apt-get install clang-8 lldb-8 lld-8&lt;br /&gt;
&lt;br /&gt;
Note: clang-7 has a bug which makes gnustep-base fail during its ./configure phase.&lt;br /&gt;
&lt;br /&gt;
(Note today clang-8 was no longer in the llvm repo for some reason. Maybe temporary issue. I also tried the bleeding edge clang-9 and that worked similarly)&lt;br /&gt;
&lt;br /&gt;
Under FreeBSD we use the clang compiler which comes with FreeBSD12.&lt;br /&gt;
If you use CentOS 7 or the like, you probably have to compile the clang compiler from source. this is time consuming and can be done like tis:&lt;br /&gt;
&lt;br /&gt;
  git clone https://git.llvm.org/git/llvm.git/&lt;br /&gt;
  cd llvm/tools&lt;br /&gt;
  git clone https://git.llvm.org/git/clang.git/&lt;br /&gt;
  cd ../projects&lt;br /&gt;
  git clone https://git.llvm.org/git/compiler-rt.git/&lt;br /&gt;
  cd ..&lt;br /&gt;
  mkdir BUILD&lt;br /&gt;
  cd BUILD&lt;br /&gt;
  cmake .. -DCMAKE_BUILD_TYPE=Release make -j8&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
(note this installs your compiler in /usr/local/bin so you have to change the path on the later stages below)&lt;br /&gt;
&lt;br /&gt;
== Download GNUSTEP ==&lt;br /&gt;
&lt;br /&gt;
We download the sources we need:&lt;br /&gt;
&lt;br /&gt;
    mkdir gnustep&lt;br /&gt;
    cd gnustep&lt;br /&gt;
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz&lt;br /&gt;
    git clone https://github.com/apple/swift-corelibs-libdispatch&lt;br /&gt;
    git clone https://github.com/gnustep/scripts&lt;br /&gt;
    git clone https://github.com/gnustep/make&lt;br /&gt;
    git clone https://github.com/gnustep/libobjc2&lt;br /&gt;
    git clone https://github.com/gnustep/base&lt;br /&gt;
    git clone https://github.com/gnustep/corebase&lt;br /&gt;
    git clone https://github.com/gnustep/gui&lt;br /&gt;
    git clone https://github.com/gnustep/back&lt;br /&gt;
    ./scripts/install-dependencies&lt;br /&gt;
&lt;br /&gt;
The last step should basically not show any additional dependency we have not already covered. On FreeBSD , the last step has to be skipped as the script is not prepared for FreeBSD yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libiconv ==&lt;br /&gt;
&lt;br /&gt;
This applies for Debian 9 (or maybe older). From Debian 10 upwards you won't need to install libiconv. You do not have to do this when installing for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
For Debian 9 (and older?): We compile libiconv. Debian comes standard with version 1.14 but there was an issue in 1.14 which got fixed in 1.15 which was relevant to us so using 1.15 is recommended.&lt;br /&gt;
&lt;br /&gt;
    tar -xvzf libiconv-1.15.tar.gz&lt;br /&gt;
    cd libiconv-1.15&lt;br /&gt;
    ./configure --enable-static --enable-dynamic&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
== Defaults ==&lt;br /&gt;
&lt;br /&gt;
We set some environment defaults for the remainder of the session&lt;br /&gt;
&lt;br /&gt;
  # we set the C and C++ compiler version&lt;br /&gt;
  export CC=/usr/bin/clang-8&lt;br /&gt;
  export CXX=/usr/bin/clang++-8&lt;br /&gt;
  export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig&lt;br /&gt;
  export LD=/usr/bin/ld.gold&lt;br /&gt;
  export LDFLAGS=-fuse-ld=/usr/bin/ld.gold&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fblocks&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the ld.gold linker is important as otherwise strange things happens. old ld does stuff wrong, newer lld from clang optimises stuff away it shouldn't.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libdispatch ==&lt;br /&gt;
&lt;br /&gt;
The libdispatch is an open source library supplied by Apple which takes care of running multiple background tasks. Apple calls it &amp;quot;Grand Central Dispatch&amp;quot;. The Swift language also uses it, hence the repo name. We're not really directly using it but other objc code might use it or benefit from it so we compile it as well.&lt;br /&gt;
&lt;br /&gt;
    cd swift-corelibs-libdispatch&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DUSE_GOLD_LINKER=YES&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libobjc2 / gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
Now we have reached a point where the magic triple libobjc2 + gnustep-make + gnustep-base comes into play. To understand the context here. The objectiveC compiler needs a runtime. The runtime is taking care of the basic functionality of objectiveC objects such as their memory allocation and release and other stuff. The compiler calls the runtime when specific stuff happens. When a method is called, the compiler puts a call into the runtime which then looks up the dynamic methods and calls the method etc. When a block ends and certain objects are no longer needed, the compiler calls the runtime so it can release the objects accordingly.&lt;br /&gt;
&lt;br /&gt;
There are different runtimes around. The original objectiveC runtime supplied by the gcc compiler. It's old, outdated and doesn't deal with automatic reference counting and a lot of other things. So it's not recommended. The libobjc2 is the &amp;quot;modern&amp;quot; rewrite for a runtime and is actually based on a project called Etoile. It's ABI has different variants. There is a fragile and a non fragile ABI.&lt;br /&gt;
&lt;br /&gt;
Read this blogpost to understand what the difference is: http://www.sealiesoftware.com/blog/archive/2009/01/27/objc_explain_Non-fragile_ivars.html&lt;br /&gt;
If you get this is wrong, you might end up with objects no longer using the right position of variables in the data of super or subclasses and things can get totally out of control. So the new non-fragile-ABI is really the way to go. There are also different versions of the ABI on how the compiler calls the runtime. So the compiler and the runtime are working together as a team.&lt;br /&gt;
&lt;br /&gt;
So once we have a runtime library which is a requirement for any objectiveC code, there is also the base library gnustep-base which corresponds to Apple's Foundation framework. This one implements basic functionality which is used in almost all ObjC code.. It brings stuff like dealing with strings, arrays, dictionaries, and lots of other things you need day in day out. It does not supply any GUI code. All NextStep/Apple ObjectiveC code is derived from a base class called NSObject which is defined in gnustep-base. GnuStep is an open source reimplementation of NextStep and the Apple Foundation/AppKit classes.&lt;br /&gt;
&lt;br /&gt;
There are 3 other libraries in GnuStep which are gnustep-gui which does all the graphical interface, gnustep-back which is the backend for the GUI (so there's a variant for X-windows, one for Windows, one for MacOS aqua etc) which is like a driver for the gui to do the displaying on actual hardware and there is gnustep-corebase which is a glue library to use objective C objects from C and to deal with the fundamental data types of objective C like NSData, NSArray etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== compiling libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
    cd libobjc2&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DBUILD_STATIC_LIBOBJC=1  \&lt;br /&gt;
             -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_LINKER=${LD} \&lt;br /&gt;
             -DCMAKE_MODULE_LINKER_FLAGS=${LDFLAGS}&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make test&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
this should pass everywhere except these two which according to David Chisnal are corner cases which shouldn't affect real software:&lt;br /&gt;
&lt;br /&gt;
     18 - AssociatedObject_optimised (OTHER_FAULT)&lt;br /&gt;
     20 - AssociatedObject_legacy_optimised (OTHER_FAULT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-make ==&lt;br /&gt;
&lt;br /&gt;
Gnustep Make is a package of makefiles to be used inside Gnustep projects. This way some common settings can be shared along all projects such as the location of certain runtime files (defaults, file layouts etc). It does not have any compiled code but its needed for the rest.&lt;br /&gt;
Edit the file library-combo.make and on line 47 replace&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-1.8&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
Please note: Instead of editing the make file you can set the runtime version using the env variable as well:&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-1.9&lt;br /&gt;
&lt;br /&gt;
For the older runtime.&lt;br /&gt;
Then you can install make&lt;br /&gt;
&lt;br /&gt;
     cd make&lt;br /&gt;
    ./configure \&lt;br /&gt;
            --with-layout=fhs \&lt;br /&gt;
            --disable-importing-config-file \&lt;br /&gt;
            --enable-native-objc-exceptions \&lt;br /&gt;
            --enable-objc-arc \&lt;br /&gt;
            --enable-install-ld-so-conf \&lt;br /&gt;
            --with-library-combo=ng-gnu-gnu \&lt;br /&gt;
            --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf \&lt;br /&gt;
            --with-user-config-file='.GNUstep.conf' \&lt;br /&gt;
            --with-user-defaults-dir='GNUstep/Library/Defaults'&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
    cd base&lt;br /&gt;
    ./configure  --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make check&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
There is one test which will fail. For our usage this is not vital.&lt;br /&gt;
&lt;br /&gt;
  Failed test: basic.m:31 ... Expiration date can be retrieved&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-corebase ==&lt;br /&gt;
&lt;br /&gt;
    cd corebase&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-gui ==&lt;br /&gt;
&lt;br /&gt;
    cd gui&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-back ==&lt;br /&gt;
&lt;br /&gt;
    cd back&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
Author: Andreas Fink as of 2019-05-05.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7133</id>
		<title>Building GNUstep under Debian FreeBSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7133"/>
		<updated>2020-02-20T07:44:43Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* libiconv */ Added hints for newer versions of Debian&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's a tutorial on how to to build gnustep and its dependencies if you want to run it using GNUstep runtime 2.0 (ng), which has to be built using clang 8.0.&lt;br /&gt;
&lt;br /&gt;
You'll find these steps bundled in a script which you can execute under Debian 9 at https://github.com/plaurent/gnustep-build/tree/master/debian-9-clang-8.0-runtime-2.0.&lt;br /&gt;
&lt;br /&gt;
== Install empty VM ==&lt;br /&gt;
&lt;br /&gt;
We start with an empty Debian9 or FreeBSD 12 VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under Debian 9 ==&lt;br /&gt;
&lt;br /&gt;
we install these packages under Debian as they are coming up as dependencies anyhow&lt;br /&gt;
&lt;br /&gt;
  apt-get install dirmngr&lt;br /&gt;
  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com \&lt;br /&gt;
           15CF4D18AF4F7421&lt;br /&gt;
  sudo apt -y install build-essential git subversion \&lt;br /&gt;
  libpthread-workqueue0 libpthread-workqueue-dev \&lt;br /&gt;
  libxml2 libxml2-dev \&lt;br /&gt;
  libffi6 libffi-dev \&lt;br /&gt;
  libicu-dev \&lt;br /&gt;
  libuuid1 uuid-dev uuid-runtime \&lt;br /&gt;
  libsctp1 libsctp-dev lksctp-tools \&lt;br /&gt;
  libavahi-core7 libavahi-core-dev \&lt;br /&gt;
  libavahi-client3 libavahi-client-dev \&lt;br /&gt;
  libavahi-common3 libavahi-common-dev libavahi-common-data \&lt;br /&gt;
  libgcrypt20 libgcrypt20-dev \&lt;br /&gt;
  libtiff5 libtiff5-dev \&lt;br /&gt;
  libbsd0 libbsd-dev \&lt;br /&gt;
  util-linux-locales \&lt;br /&gt;
  locales-all \&lt;br /&gt;
  libjpeg-dev \&lt;br /&gt;
  libtiff-dev \&lt;br /&gt;
  libcups2-dev \&lt;br /&gt;
  libfreetype6-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev \&lt;br /&gt;
  libgl1-mesa-dev \&lt;br /&gt;
  libpcap-dev \&lt;br /&gt;
  libc-dev libc++-dev libc++1 \&lt;br /&gt;
  python-dev swig \&lt;br /&gt;
  libedit-dev libeditline0 libeditline-dev readline-common \&lt;br /&gt;
  binfmt-support libtinfo-dev \&lt;br /&gt;
  bison flex m4 wget \&lt;br /&gt;
  libicns1 libicns-dev \&lt;br /&gt;
  libxslt1.1 libxslt1-dev \&lt;br /&gt;
  libxft2 libxft-dev \&lt;br /&gt;
  libflite1 flite1-dev \&lt;br /&gt;
  libxmu6 libxpm4 wmaker-common \&lt;br /&gt;
  libgnutls30 libgnutls28-dev \&lt;br /&gt;
  libpng-dev libpng16-16 \&lt;br /&gt;
  default-libmysqlclient-dev \&lt;br /&gt;
  libpq-dev \&lt;br /&gt;
  libstdc++-6-dev \&lt;br /&gt;
  libreadline7 libreadline-dev \gobjc-6 gobjc++-6 \&lt;br /&gt;
  libgif7 libgif-dev libwings3 libwings-dev libwraster5 \&lt;br /&gt;
  libwraster-dev libwutil5 \&lt;br /&gt;
  libcups2-dev libicu57 libicu-dev \&lt;br /&gt;
  gobjc++ \&lt;br /&gt;
  xorg \&lt;br /&gt;
  libfreetype6 libfreetype6-dev \&lt;br /&gt;
  libpango1.0-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev libssl-dev \&lt;br /&gt;
  libasound2-dev libjack-dev libjack0 libportaudio2 \&lt;br /&gt;
  libportaudiocpp0 portaudio19-dev \&lt;br /&gt;
  libstdc++-6-dev libstdc++-6-doc libstdc++-6-pic \&lt;br /&gt;
  libstdc++6 wmaker cmake cmake-curses-gui xpdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under FeeBSD 12 ==&lt;br /&gt;
&lt;br /&gt;
  pkg install git \&lt;br /&gt;
     autoconf \&lt;br /&gt;
     automake \&lt;br /&gt;
     cmake \&lt;br /&gt;
     subversion  \&lt;br /&gt;
     wget \&lt;br /&gt;
     bash \&lt;br /&gt;
     pkgconf \&lt;br /&gt;
     sudo \&lt;br /&gt;
     gmake \&lt;br /&gt;
     windowmaker \&lt;br /&gt;
     jpeg \&lt;br /&gt;
     tiff \&lt;br /&gt;
     png \&lt;br /&gt;
     libxml2 \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     gnutls \&lt;br /&gt;
     libffi \&lt;br /&gt;
     icu \&lt;br /&gt;
     cairo \&lt;br /&gt;
     avahi \&lt;br /&gt;
     portaudio \&lt;br /&gt;
     flite \&lt;br /&gt;
     pngwriter \&lt;br /&gt;
     mariadb103-client \&lt;br /&gt;
     postgresql96-client \&lt;br /&gt;
     bash \&lt;br /&gt;
     clang \&lt;br /&gt;
     lldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We install a decent clang compiler. ==&lt;br /&gt;
&lt;br /&gt;
clang-8: from clang8 repository: Add a file /etc/apt/sources.d/llvm.list with content&lt;br /&gt;
&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
&lt;br /&gt;
To install you call it like this:&lt;br /&gt;
&lt;br /&gt;
  apt-get update&lt;br /&gt;
  apt-get install clang-8 lldb-8 lld-8&lt;br /&gt;
&lt;br /&gt;
Note: clang-7 has a bug which makes gnustep-base fail during its ./configure phase.&lt;br /&gt;
&lt;br /&gt;
(Note today clang-8 was no longer in the llvm repo for some reason. Maybe temporary issue. I also tried the bleeding edge clang-9 and that worked similarly)&lt;br /&gt;
&lt;br /&gt;
Under FreeBSD we use the clang compiler which comes with FreeBSD12.&lt;br /&gt;
If you use CentOS 7 or the like, you probably have to compile the clang compiler from source. this is time consuming and can be done like tis:&lt;br /&gt;
&lt;br /&gt;
  git clone https://git.llvm.org/git/llvm.git/&lt;br /&gt;
  cd llvm/tools&lt;br /&gt;
  git clone https://git.llvm.org/git/clang.git/&lt;br /&gt;
  cd ../projects&lt;br /&gt;
  git clone https://git.llvm.org/git/compiler-rt.git/&lt;br /&gt;
  cd ..&lt;br /&gt;
  mkdir BUILD&lt;br /&gt;
  cd BUILD&lt;br /&gt;
  cmake .. -DCMAKE_BUILD_TYPE=Release make -j8&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
(note this installs your compiler in /usr/local/bin so you have to change the path on the later stages below)&lt;br /&gt;
&lt;br /&gt;
== Download GNUSTEP ==&lt;br /&gt;
&lt;br /&gt;
We download the sources we need:&lt;br /&gt;
&lt;br /&gt;
    mkdir gnustep&lt;br /&gt;
    cd gnustep&lt;br /&gt;
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz&lt;br /&gt;
    git clone https://github.com/apple/swift-corelibs-libdispatch&lt;br /&gt;
    git clone https://github.com/gnustep/scripts&lt;br /&gt;
    git clone https://github.com/gnustep/make&lt;br /&gt;
    git clone https://github.com/gnustep/libobjc2&lt;br /&gt;
    git clone https://github.com/gnustep/base&lt;br /&gt;
    git clone https://github.com/gnustep/corebase&lt;br /&gt;
    git clone https://github.com/gnustep/gui&lt;br /&gt;
    git clone https://github.com/gnustep/back&lt;br /&gt;
    ./scripts/install-dependencies&lt;br /&gt;
&lt;br /&gt;
The last step should basically not show any additional dependency we have not already covered. On FreeBSD , the last step has to be skipped as the script is not prepared for FreeBSD yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libiconv ==&lt;br /&gt;
&lt;br /&gt;
This applies for Debian 9 (or maybe older). From Debian 10 upwards you won't need to install libiconv. You do not have to do this when installing for Ubuntu.&lt;br /&gt;
&lt;br /&gt;
We compile libiconv. Debian comes standard with version 1.14 but there was an issue in 1.14 which got fixed in 1.15 which was relevant to us so using 1.15 is recommended.&lt;br /&gt;
&lt;br /&gt;
    tar -xvzf libiconv-1.15.tar.gz&lt;br /&gt;
    cd libiconv-1.15&lt;br /&gt;
    ./configure --enable-static --enable-dynamic&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
== Defaults ==&lt;br /&gt;
&lt;br /&gt;
We set some environment defaults for the remainder of the session&lt;br /&gt;
&lt;br /&gt;
  # we set the C and C++ compiler version&lt;br /&gt;
  export CC=/usr/bin/clang-8&lt;br /&gt;
  export CXX=/usr/bin/clang++-8&lt;br /&gt;
  export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig&lt;br /&gt;
  export LD=/usr/bin/ld.gold&lt;br /&gt;
  export LDFLAGS=-fuse-ld=/usr/bin/ld.gold&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fblocks&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the ld.gold linker is important as otherwise strange things happens. old ld does stuff wrong, newer lld from clang optimises stuff away it shouldn't.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libdispatch ==&lt;br /&gt;
&lt;br /&gt;
The libdispatch is an open source library supplied by Apple which takes care of running multiple background tasks. Apple calls it &amp;quot;Grand Central Dispatch&amp;quot;. The Swift language also uses it, hence the repo name. We're not really directly using it but other objc code might use it or benefit from it so we compile it as well.&lt;br /&gt;
&lt;br /&gt;
    cd swift-corelibs-libdispatch&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DUSE_GOLD_LINKER=YES&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libobjc2 / gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
Now we have reached a point where the magic triple libobjc2 + gnustep-make + gnustep-base comes into play. To understand the context here. The objectiveC compiler needs a runtime. The runtime is taking care of the basic functionality of objectiveC objects such as their memory allocation and release and other stuff. The compiler calls the runtime when specific stuff happens. When a method is called, the compiler puts a call into the runtime which then looks up the dynamic methods and calls the method etc. When a block ends and certain objects are no longer needed, the compiler calls the runtime so it can release the objects accordingly.&lt;br /&gt;
&lt;br /&gt;
There are different runtimes around. The original objectiveC runtime supplied by the gcc compiler. It's old, outdated and doesn't deal with automatic reference counting and a lot of other things. So it's not recommended. The libobjc2 is the &amp;quot;modern&amp;quot; rewrite for a runtime and is actually based on a project called Etoile. It's ABI has different variants. There is a fragile and a non fragile ABI.&lt;br /&gt;
&lt;br /&gt;
Read this blogpost to understand what the difference is: http://www.sealiesoftware.com/blog/archive/2009/01/27/objc_explain_Non-fragile_ivars.html&lt;br /&gt;
If you get this is wrong, you might end up with objects no longer using the right position of variables in the data of super or subclasses and things can get totally out of control. So the new non-fragile-ABI is really the way to go. There are also different versions of the ABI on how the compiler calls the runtime. So the compiler and the runtime are working together as a team.&lt;br /&gt;
&lt;br /&gt;
So once we have a runtime library which is a requirement for any objectiveC code, there is also the base library gnustep-base which corresponds to Apple's Foundation framework. This one implements basic functionality which is used in almost all ObjC code.. It brings stuff like dealing with strings, arrays, dictionaries, and lots of other things you need day in day out. It does not supply any GUI code. All NextStep/Apple ObjectiveC code is derived from a base class called NSObject which is defined in gnustep-base. GnuStep is an open source reimplementation of NextStep and the Apple Foundation/AppKit classes.&lt;br /&gt;
&lt;br /&gt;
There are 3 other libraries in GnuStep which are gnustep-gui which does all the graphical interface, gnustep-back which is the backend for the GUI (so there's a variant for X-windows, one for Windows, one for MacOS aqua etc) which is like a driver for the gui to do the displaying on actual hardware and there is gnustep-corebase which is a glue library to use objective C objects from C and to deal with the fundamental data types of objective C like NSData, NSArray etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== compiling libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
    cd libobjc2&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DBUILD_STATIC_LIBOBJC=1  \&lt;br /&gt;
             -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_LINKER=${LD} \&lt;br /&gt;
             -DCMAKE_MODULE_LINKER_FLAGS=${LDFLAGS}&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make test&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
this should pass everywhere except these two which according to David Chisnal are corner cases which shouldn't affect real software:&lt;br /&gt;
&lt;br /&gt;
     18 - AssociatedObject_optimised (OTHER_FAULT)&lt;br /&gt;
     20 - AssociatedObject_legacy_optimised (OTHER_FAULT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-make ==&lt;br /&gt;
&lt;br /&gt;
Gnustep Make is a package of makefiles to be used inside Gnustep projects. This way some common settings can be shared along all projects such as the location of certain runtime files (defaults, file layouts etc). It does not have any compiled code but its needed for the rest.&lt;br /&gt;
Edit the file library-combo.make and on line 47 replace&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-1.8&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
Please note: Instead of editing the make file you can set the runtime version using the env variable as well:&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-1.9&lt;br /&gt;
&lt;br /&gt;
For the older runtime.&lt;br /&gt;
Then you can install make&lt;br /&gt;
&lt;br /&gt;
     cd make&lt;br /&gt;
    ./configure \&lt;br /&gt;
            --with-layout=fhs \&lt;br /&gt;
            --disable-importing-config-file \&lt;br /&gt;
            --enable-native-objc-exceptions \&lt;br /&gt;
            --enable-objc-arc \&lt;br /&gt;
            --enable-install-ld-so-conf \&lt;br /&gt;
            --with-library-combo=ng-gnu-gnu \&lt;br /&gt;
            --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf \&lt;br /&gt;
            --with-user-config-file='.GNUstep.conf' \&lt;br /&gt;
            --with-user-defaults-dir='GNUstep/Library/Defaults'&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
    cd base&lt;br /&gt;
    ./configure  --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make check&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
There is one test which will fail. For our usage this is not vital.&lt;br /&gt;
&lt;br /&gt;
  Failed test: basic.m:31 ... Expiration date can be retrieved&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-corebase ==&lt;br /&gt;
&lt;br /&gt;
    cd corebase&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-gui ==&lt;br /&gt;
&lt;br /&gt;
    cd gui&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-back ==&lt;br /&gt;
&lt;br /&gt;
    cd back&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
Author: Andreas Fink as of 2019-05-05.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7132</id>
		<title>Building GNUstep under Debian FreeBSD</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.gnustep.org/index.php?title=Building_GNUstep_under_Debian_FreeBSD&amp;diff=7132"/>
		<updated>2020-02-20T07:42:01Z</updated>

		<summary type="html">&lt;p&gt;Letterus: /* installing gnustep-make */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's a tutorial on how to to build gnustep and its dependencies if you want to run it using GNUstep runtime 2.0 (ng), which has to be built using clang 8.0.&lt;br /&gt;
&lt;br /&gt;
You'll find these steps bundled in a script which you can execute under Debian 9 at https://github.com/plaurent/gnustep-build/tree/master/debian-9-clang-8.0-runtime-2.0.&lt;br /&gt;
&lt;br /&gt;
== Install empty VM ==&lt;br /&gt;
&lt;br /&gt;
We start with an empty Debian9 or FreeBSD 12 VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under Debian 9 ==&lt;br /&gt;
&lt;br /&gt;
we install these packages under Debian as they are coming up as dependencies anyhow&lt;br /&gt;
&lt;br /&gt;
  apt-get install dirmngr&lt;br /&gt;
  apt-key adv --recv-keys --keyserver keyserver.ubuntu.com \&lt;br /&gt;
           15CF4D18AF4F7421&lt;br /&gt;
  sudo apt -y install build-essential git subversion \&lt;br /&gt;
  libpthread-workqueue0 libpthread-workqueue-dev \&lt;br /&gt;
  libxml2 libxml2-dev \&lt;br /&gt;
  libffi6 libffi-dev \&lt;br /&gt;
  libicu-dev \&lt;br /&gt;
  libuuid1 uuid-dev uuid-runtime \&lt;br /&gt;
  libsctp1 libsctp-dev lksctp-tools \&lt;br /&gt;
  libavahi-core7 libavahi-core-dev \&lt;br /&gt;
  libavahi-client3 libavahi-client-dev \&lt;br /&gt;
  libavahi-common3 libavahi-common-dev libavahi-common-data \&lt;br /&gt;
  libgcrypt20 libgcrypt20-dev \&lt;br /&gt;
  libtiff5 libtiff5-dev \&lt;br /&gt;
  libbsd0 libbsd-dev \&lt;br /&gt;
  util-linux-locales \&lt;br /&gt;
  locales-all \&lt;br /&gt;
  libjpeg-dev \&lt;br /&gt;
  libtiff-dev \&lt;br /&gt;
  libcups2-dev \&lt;br /&gt;
  libfreetype6-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev \&lt;br /&gt;
  libgl1-mesa-dev \&lt;br /&gt;
  libpcap-dev \&lt;br /&gt;
  libc-dev libc++-dev libc++1 \&lt;br /&gt;
  python-dev swig \&lt;br /&gt;
  libedit-dev libeditline0 libeditline-dev readline-common \&lt;br /&gt;
  binfmt-support libtinfo-dev \&lt;br /&gt;
  bison flex m4 wget \&lt;br /&gt;
  libicns1 libicns-dev \&lt;br /&gt;
  libxslt1.1 libxslt1-dev \&lt;br /&gt;
  libxft2 libxft-dev \&lt;br /&gt;
  libflite1 flite1-dev \&lt;br /&gt;
  libxmu6 libxpm4 wmaker-common \&lt;br /&gt;
  libgnutls30 libgnutls28-dev \&lt;br /&gt;
  libpng-dev libpng16-16 \&lt;br /&gt;
  default-libmysqlclient-dev \&lt;br /&gt;
  libpq-dev \&lt;br /&gt;
  libstdc++-6-dev \&lt;br /&gt;
  libreadline7 libreadline-dev \gobjc-6 gobjc++-6 \&lt;br /&gt;
  libgif7 libgif-dev libwings3 libwings-dev libwraster5 \&lt;br /&gt;
  libwraster-dev libwutil5 \&lt;br /&gt;
  libcups2-dev libicu57 libicu-dev \&lt;br /&gt;
  gobjc++ \&lt;br /&gt;
  xorg \&lt;br /&gt;
  libfreetype6 libfreetype6-dev \&lt;br /&gt;
  libpango1.0-dev \&lt;br /&gt;
  libcairo2-dev \&lt;br /&gt;
  libxt-dev libssl-dev \&lt;br /&gt;
  libasound2-dev libjack-dev libjack0 libportaudio2 \&lt;br /&gt;
  libportaudiocpp0 portaudio19-dev \&lt;br /&gt;
  libstdc++-6-dev libstdc++-6-doc libstdc++-6-pic \&lt;br /&gt;
  libstdc++6 wmaker cmake cmake-curses-gui xpdf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Dependencies under FeeBSD 12 ==&lt;br /&gt;
&lt;br /&gt;
  pkg install git \&lt;br /&gt;
     autoconf \&lt;br /&gt;
     automake \&lt;br /&gt;
     cmake \&lt;br /&gt;
     subversion  \&lt;br /&gt;
     wget \&lt;br /&gt;
     bash \&lt;br /&gt;
     pkgconf \&lt;br /&gt;
     sudo \&lt;br /&gt;
     gmake \&lt;br /&gt;
     windowmaker \&lt;br /&gt;
     jpeg \&lt;br /&gt;
     tiff \&lt;br /&gt;
     png \&lt;br /&gt;
     libxml2 \&lt;br /&gt;
     libxslt \&lt;br /&gt;
     gnutls \&lt;br /&gt;
     libffi \&lt;br /&gt;
     icu \&lt;br /&gt;
     cairo \&lt;br /&gt;
     avahi \&lt;br /&gt;
     portaudio \&lt;br /&gt;
     flite \&lt;br /&gt;
     pngwriter \&lt;br /&gt;
     mariadb103-client \&lt;br /&gt;
     postgresql96-client \&lt;br /&gt;
     bash \&lt;br /&gt;
     clang \&lt;br /&gt;
     lldb&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== We install a decent clang compiler. ==&lt;br /&gt;
&lt;br /&gt;
clang-8: from clang8 repository: Add a file /etc/apt/sources.d/llvm.list with content&lt;br /&gt;
&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch main&lt;br /&gt;
  deb http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
  deb-src http://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 main&lt;br /&gt;
&lt;br /&gt;
To install you call it like this:&lt;br /&gt;
&lt;br /&gt;
  apt-get update&lt;br /&gt;
  apt-get install clang-8 lldb-8 lld-8&lt;br /&gt;
&lt;br /&gt;
Note: clang-7 has a bug which makes gnustep-base fail during its ./configure phase.&lt;br /&gt;
&lt;br /&gt;
(Note today clang-8 was no longer in the llvm repo for some reason. Maybe temporary issue. I also tried the bleeding edge clang-9 and that worked similarly)&lt;br /&gt;
&lt;br /&gt;
Under FreeBSD we use the clang compiler which comes with FreeBSD12.&lt;br /&gt;
If you use CentOS 7 or the like, you probably have to compile the clang compiler from source. this is time consuming and can be done like tis:&lt;br /&gt;
&lt;br /&gt;
  git clone https://git.llvm.org/git/llvm.git/&lt;br /&gt;
  cd llvm/tools&lt;br /&gt;
  git clone https://git.llvm.org/git/clang.git/&lt;br /&gt;
  cd ../projects&lt;br /&gt;
  git clone https://git.llvm.org/git/compiler-rt.git/&lt;br /&gt;
  cd ..&lt;br /&gt;
  mkdir BUILD&lt;br /&gt;
  cd BUILD&lt;br /&gt;
  cmake .. -DCMAKE_BUILD_TYPE=Release make -j8&lt;br /&gt;
  make install&lt;br /&gt;
&lt;br /&gt;
(note this installs your compiler in /usr/local/bin so you have to change the path on the later stages below)&lt;br /&gt;
&lt;br /&gt;
== Download GNUSTEP ==&lt;br /&gt;
&lt;br /&gt;
We download the sources we need:&lt;br /&gt;
&lt;br /&gt;
    mkdir gnustep&lt;br /&gt;
    cd gnustep&lt;br /&gt;
    wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz&lt;br /&gt;
    git clone https://github.com/apple/swift-corelibs-libdispatch&lt;br /&gt;
    git clone https://github.com/gnustep/scripts&lt;br /&gt;
    git clone https://github.com/gnustep/make&lt;br /&gt;
    git clone https://github.com/gnustep/libobjc2&lt;br /&gt;
    git clone https://github.com/gnustep/base&lt;br /&gt;
    git clone https://github.com/gnustep/corebase&lt;br /&gt;
    git clone https://github.com/gnustep/gui&lt;br /&gt;
    git clone https://github.com/gnustep/back&lt;br /&gt;
    ./scripts/install-dependencies&lt;br /&gt;
&lt;br /&gt;
The last step should basically not show any additional dependency we have not already covered. On FreeBSD , the last step has to be skipped as the script is not prepared for FreeBSD yet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libiconv ==&lt;br /&gt;
&lt;br /&gt;
We compile libiconv. Debian comes standard with version 1.14 but there was an issue in 1.14 which got fixed in 1.15 which was relevant to us so using 1.15 is recommended.&lt;br /&gt;
&lt;br /&gt;
    tar -xvzf libiconv-1.15.tar.gz&lt;br /&gt;
    cd libiconv-1.15&lt;br /&gt;
    ./configure --enable-static --enable-dynamic&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Defaults ==&lt;br /&gt;
&lt;br /&gt;
We set some environment defaults for the remainder of the session&lt;br /&gt;
&lt;br /&gt;
  # we set the C and C++ compiler version&lt;br /&gt;
  export CC=/usr/bin/clang-8&lt;br /&gt;
  export CXX=/usr/bin/clang++-8&lt;br /&gt;
  export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig&lt;br /&gt;
  export LD=/usr/bin/ld.gold&lt;br /&gt;
  export LDFLAGS=-fuse-ld=/usr/bin/ld.gold&lt;br /&gt;
  export OBJCFLAGS=&amp;quot;-fblocks&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Using the ld.gold linker is important as otherwise strange things happens. old ld does stuff wrong, newer lld from clang optimises stuff away it shouldn't.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libdispatch ==&lt;br /&gt;
&lt;br /&gt;
The libdispatch is an open source library supplied by Apple which takes care of running multiple background tasks. Apple calls it &amp;quot;Grand Central Dispatch&amp;quot;. The Swift language also uses it, hence the repo name. We're not really directly using it but other objc code might use it or benefit from it so we compile it as well.&lt;br /&gt;
&lt;br /&gt;
    cd swift-corelibs-libdispatch&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DUSE_GOLD_LINKER=YES&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== libobjc2 / gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
Now we have reached a point where the magic triple libobjc2 + gnustep-make + gnustep-base comes into play. To understand the context here. The objectiveC compiler needs a runtime. The runtime is taking care of the basic functionality of objectiveC objects such as their memory allocation and release and other stuff. The compiler calls the runtime when specific stuff happens. When a method is called, the compiler puts a call into the runtime which then looks up the dynamic methods and calls the method etc. When a block ends and certain objects are no longer needed, the compiler calls the runtime so it can release the objects accordingly.&lt;br /&gt;
&lt;br /&gt;
There are different runtimes around. The original objectiveC runtime supplied by the gcc compiler. It's old, outdated and doesn't deal with automatic reference counting and a lot of other things. So it's not recommended. The libobjc2 is the &amp;quot;modern&amp;quot; rewrite for a runtime and is actually based on a project called Etoile. It's ABI has different variants. There is a fragile and a non fragile ABI.&lt;br /&gt;
&lt;br /&gt;
Read this blogpost to understand what the difference is: http://www.sealiesoftware.com/blog/archive/2009/01/27/objc_explain_Non-fragile_ivars.html&lt;br /&gt;
If you get this is wrong, you might end up with objects no longer using the right position of variables in the data of super or subclasses and things can get totally out of control. So the new non-fragile-ABI is really the way to go. There are also different versions of the ABI on how the compiler calls the runtime. So the compiler and the runtime are working together as a team.&lt;br /&gt;
&lt;br /&gt;
So once we have a runtime library which is a requirement for any objectiveC code, there is also the base library gnustep-base which corresponds to Apple's Foundation framework. This one implements basic functionality which is used in almost all ObjC code.. It brings stuff like dealing with strings, arrays, dictionaries, and lots of other things you need day in day out. It does not supply any GUI code. All NextStep/Apple ObjectiveC code is derived from a base class called NSObject which is defined in gnustep-base. GnuStep is an open source reimplementation of NextStep and the Apple Foundation/AppKit classes.&lt;br /&gt;
&lt;br /&gt;
There are 3 other libraries in GnuStep which are gnustep-gui which does all the graphical interface, gnustep-back which is the backend for the GUI (so there's a variant for X-windows, one for Windows, one for MacOS aqua etc) which is like a driver for the gui to do the displaying on actual hardware and there is gnustep-corebase which is a glue library to use objective C objects from C and to deal with the fundamental data types of objective C like NSData, NSArray etc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== compiling libobjc2 ==&lt;br /&gt;
&lt;br /&gt;
    cd libobjc2&lt;br /&gt;
    mkdir build&lt;br /&gt;
    cd build&lt;br /&gt;
    cmake .. -DCMAKE_BUILD_TYPE=Release \&lt;br /&gt;
             -DBUILD_STATIC_LIBOBJC=1  \&lt;br /&gt;
             -DCMAKE_C_COMPILER=${CC} \&lt;br /&gt;
             -DCMAKE_CXX_COMPILER=${CXX} \&lt;br /&gt;
             -DCMAKE_LINKER=${LD} \&lt;br /&gt;
             -DCMAKE_MODULE_LINKER_FLAGS=${LDFLAGS}&lt;br /&gt;
    make -j40&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make test&lt;br /&gt;
    cd ../..&lt;br /&gt;
&lt;br /&gt;
this should pass everywhere except these two which according to David Chisnal are corner cases which shouldn't affect real software:&lt;br /&gt;
&lt;br /&gt;
     18 - AssociatedObject_optimised (OTHER_FAULT)&lt;br /&gt;
     20 - AssociatedObject_legacy_optimised (OTHER_FAULT)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-make ==&lt;br /&gt;
&lt;br /&gt;
Gnustep Make is a package of makefiles to be used inside Gnustep projects. This way some common settings can be shared along all projects such as the location of certain runtime files (defaults, file layouts etc). It does not have any compiled code but its needed for the rest.&lt;br /&gt;
Edit the file library-combo.make and on line 47 replace&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-1.8&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
with&lt;br /&gt;
&lt;br /&gt;
  ifeq ($(RUNTIME_VERSION),)&lt;br /&gt;
    RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
  endif&lt;br /&gt;
&lt;br /&gt;
Please note: Instead of editing the make file you can set the runtime version using the env variable as well:&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-2.0&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
  export RUNTIME_VERSION=gnustep-1.9&lt;br /&gt;
&lt;br /&gt;
For the older runtime.&lt;br /&gt;
Then you can install make&lt;br /&gt;
&lt;br /&gt;
     cd make&lt;br /&gt;
    ./configure \&lt;br /&gt;
            --with-layout=fhs \&lt;br /&gt;
            --disable-importing-config-file \&lt;br /&gt;
            --enable-native-objc-exceptions \&lt;br /&gt;
            --enable-objc-arc \&lt;br /&gt;
            --enable-install-ld-so-conf \&lt;br /&gt;
            --with-library-combo=ng-gnu-gnu \&lt;br /&gt;
            --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf \&lt;br /&gt;
            --with-user-config-file='.GNUstep.conf' \&lt;br /&gt;
            --with-user-defaults-dir='GNUstep/Library/Defaults'&lt;br /&gt;
    make&lt;br /&gt;
    make install&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-base ==&lt;br /&gt;
&lt;br /&gt;
    cd base&lt;br /&gt;
    ./configure  --with-config-file=/usr/local/etc/GNUstep/GNUstep.conf&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    make check&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
There is one test which will fail. For our usage this is not vital.&lt;br /&gt;
&lt;br /&gt;
  Failed test: basic.m:31 ... Expiration date can be retrieved&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-corebase ==&lt;br /&gt;
&lt;br /&gt;
    cd corebase&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-gui ==&lt;br /&gt;
&lt;br /&gt;
    cd gui&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== installing gnustep-back ==&lt;br /&gt;
&lt;br /&gt;
    cd back&lt;br /&gt;
    ./configure&lt;br /&gt;
    make -j8&lt;br /&gt;
    make install&lt;br /&gt;
    ldconfig&lt;br /&gt;
    cd ..&lt;br /&gt;
&lt;br /&gt;
Author: Andreas Fink as of 2019-05-05.&lt;/div&gt;</summary>
		<author><name>Letterus</name></author>
	</entry>
</feed>