Installation
Angdoom provient du dépôt d'origine : https://github.com/tetron/angdoom
Cette version d'Angdoom se trouve dans le dépôt : https://github.com/HackTechDev/Angdoom_v2
angdoom est lié à libggi, utilisée par vectorize.c uniquement pour dessiner une visualisation de
débogage des limites de secteurs, une fois le WAD déjà écrit sur le disque. Ubuntu 22.04 (et les versions
actuelles de Debian/Ubuntu en général) ne fournit plus libggi-dev — le projet GGI a été retiré des dépôts
il y a des années — il faut donc la compiler depuis les sources. libggi dépend elle-même de libgii
(gestion des entrées), qui doit être compilée et installée en premier.
Les étapes ci-dessous installent les deux bibliothèques dans ~/.local, sans sudo et sans toucher aux
chemins système.
1. Télécharger les sources
Les deux paquets sont toujours hébergés sur SourceForge (dernière version publiée en 2007, mais elles compilent toujours correctement avec gcc/glibc modernes) :
mkdir -p ~/src/ggi-build && cd ~/src/ggi-build
curl -fL -o libgii-1.0.2.src.tar.gz "http://prdownloads.sourceforge.net/ggi/libgii-1.0.2.src.tar.gz?download"
curl -fL -o libggi-2.2.2.src.tar.gz "http://prdownloads.sourceforge.net/ggi/libggi-2.2.2.src.tar.gz?download"
tar xzf libgii-1.0.2.src.tar.gz
tar xzf libggi-2.2.2.src.tar.gz
2. Compiler et installer libgii (obligatoirement en premier)
cd ~/src/ggi-build/libgii-1.0.2
./configure --prefix="$HOME/.local"
make -j"$(nproc)"
make install
3. Compiler et installer libggi
Le configure de libggi doit être informé de l'emplacement de la libgii qu'on vient d'installer, à la fois
pour ses en-têtes (CPPFLAGS/PKG_CONFIG_PATH) et pour l'édition de liens (LDFLAGS avec un rpath afin que
les binaires produits retrouvent libgii.so/libgg.so à l'exécution sans avoir besoin de
LD_LIBRARY_PATH) :
cd ~/src/ggi-build/libggi-2.2.2
PKG_CONFIG_PATH="$HOME/.local/lib/pkgconfig" \
CPPFLAGS="-I$HOME/.local/include" \
LDFLAGS="-L$HOME/.local/lib -Wl,-rpath,$HOME/.local/lib" \
./configure --prefix="$HOME/.local" --with-gii-prefix="$HOME/.local"
make -j"$(nproc)"
make install
Les deux compilations ne produisent que des avertissements (variables inutilisées, casts de qualificateur
const) — aucune erreur n'est attendue.
4. Compiler angdoom avec cette libggi
Comme libggi ne se trouve pas dans un chemin de recherche système, le Makefile d'angdoom (qui se
contente de faire gcc $(CFLAGS) -o angdoom $(OBJS) -lggi) a besoin que les options include/lib/rpath lui
soient passées via CFLAGS sur la ligne de commande make :
cd /chemin/vers/angdoom
make CFLAGS="-g -I$HOME/.local/include -L$HOME/.local/lib -Wl,-rpath,$HOME/.local/lib"
Cela produit ./angdoom, lié dynamiquement à ~/.local/lib/libggi.so.2 (et par transitivité à
libgii/libgg) grâce au rpath intégré — aucune variable d'environnement n'est nécessaire à l'exécution.
Vérifier que l'édition de liens est bien résolue :
ldd ./angdoom | grep -E 'ggi|gii|libgg'
doit afficher libggi.so.2, libgii.so.1 et libgg.so.1, tous résolus sous ~/.local/lib.
Désinstallation
Tout se trouve dans ~/.local, donc pour tout supprimer :
rm -rf ~/.local/include/ggi ~/.local/lib/libgg* ~/.local/lib/libgii* ~/.local/lib/libggi* \
~/.local/lib/pkgconfig/{gg,gii,ggi}*.pc ~/.local/share/ggi ~/.local/etc/ggi
(ainsi que ~/src/ggi-build si vous ne souhaitez pas conserver les arborescences source/compilation).
Capture d'écran