Skip to content

Instantly share code, notes, and snippets.

@Pinjontall94
Last active March 18, 2026 12:21
Show Gist options
  • Select an option

  • Save Pinjontall94/e70feaf225a7d5d8bfdc256e5975fa2b to your computer and use it in GitHub Desktop.

Select an option

Save Pinjontall94/e70feaf225a7d5d8bfdc256e5975fa2b to your computer and use it in GitHub Desktop.
GNUstep Source Build Instructions

GNUstep Source Build Instructions

Author: Sammi Johnson

PGP: F623 E4C6 CA87 6A5B C825 CDEE 496A F63E FB0B 589F

Date: 18.03.2026

Install Dependencies

Required Packages:

  • git
  • base-devel
  • clang
  • lldb
  • cmake
  • gnutls-dev
  • icu-dev
  • ffi-dev
  • xslt-dev
  • png-dev
  • zlib-dev
  • nspr-dev
  • espeak-ng-dev
  • vorbis-dev
  • openal-dev
  • opengl-dev
  • glu-dev
  • sdl12-compat
  • x11-dev

OS Specific Packages Required

Debian:

sudo apt install git build-essential clang lldb cmake libgnutls28-dev libicu-dev libffi-dev libxml2-dev libxslt1-dev \
  libpng-dev zlib1g-dev libnspr4-dev libespeak-ng-dev libvorbis-dev libopenal-dev libgl-dev libglu1-mesa-dev \
  libsdl1.2-compat-dev libx11-dev 

Red Hat:

sudo dnf install git gcc gcc-c++ make clang-devel lldb cmake gnutls-devel libicu-devel libffi-devel libxml2-devel \
  libxslt-devel libpng-devel zlib-devel nspr-devel espeak-ng-devel libvorbis-devel openal-soft-devel mesa-libGL-devel \
  mesa-libGLU-devel sdl12-compat-devel sdl12-compat-devel

Arch:

sudo pacman -S git base-devel clang gnutls icu libffi libxml2 libxslt libpng zlib nspr espeak-ng libvorbis openal \
  libglvnd glu sdl12-compat libx11

Clone GNUstep core:

git clone --filter=blob:none https://github.com/gnustep/libobjc2.git
git clone --filter=blob:none https://github.com/gnustep/tools-make.git
git clone --filter=blob:none https://github.com/gnustep/libs-base.git

Building GNUstep

export CC=clang
export CXX=clang++

Libobjc2

cd libobjc2
rm -rf build && mkdir build && cd build
cmake .. \
  -DTESTS=on \
  -DCMAKE_BUILD_TYPE=Release \
  -DGNUSTEP_INSTALL_TYPE=NONE \
  -DEMBEDDED_BLOCKS_RUNTIME=ON \
  -DOLDABI_COMPAT=OFF
cmake --build .
cmake --install .
cd ../..

GNUstep Make

cd tools-make
make clean
if [[ -x "/bin/yum" -o -x "/bin/dnf" ]]; then
    LIB_PARAM="--with-libdir=lib64"
else
    LIB_PARAM=""
fi

./configure --with-library-combo=ng-gnu-gnu --with-runtime-abi=gnustep-2.2 ${LIB_PARAM:+"$LIB_PARAM"}
make
make install
cd ..

GNUstep base (Foundation.h)

cd libs-base
make clean
source /usr/local/share/GNUstep/Makefiles/GNUstep.sh
./configure
make -j$(nproc)
make install
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment