Seules les sources pour les versions complètes de XFree86 sont disponibles. La dernière version complète est XFree86 3.2.
Il n'y a pas d'instructions particulières pour compiler XFree86. Cette version a été compilée avec le compilateur gcc-2.7.2, les librairies ELS 5.2.18 et partagées 1.7.14, et ld.so. Le serveur a été compilé avec l'option -m486 qui permet d'obtenir de meilleures performances avec des processeurs 486, mais le binaire fonctionnera tout de même sur des 386.
Les extensions et les clients ont été portés et testés. Par défaut, les serveurs sont compilés sans les extensions supplémentaires (PEX, XIE, etc), mais les librairies de ces extensions sont tout de même générées. Elles peuvent être chargées au démarrage, consultez les pages du man pour plus de détails. En modifiant site.def, les extensions supplémentaires peuvent être compilées dans le serveur. Vous pouvez aussi utiliser le link kit.
La distribution occupe beaucoup de place. Si l'arborescence est correctement agencée (supprimez les pages man, PEX ou les gros clients), il est possible de compiler XFree86 sur une partition de 64Mo. Exécutez simplement ''make Makefiles'' pour créer les Makefiles, puis stoppez le make et exécutez chaque partie individuellement. Il n'est pas nécessaire d'exécuter ''make depend''. Si vous disposez de 100Mo, la compilation de XFree86 sera plus facile. Vous aurez besoin d'environ 10Mo de mémoire virtuelle pour compiler l'intégralité du serveur.
Si une version a.out de XFree86 est à compiler et que les patches ont été appliqués avec des modifications significatives des librairies, vous devez effectuer des modifications sur les fichiers jump_xxx. Ils peuvent être générés en utilisant les instructions données dans le package d'outils DLL, et seront disponibles en tant que patches XFree86.
Les définitions JUMP_xxx utilisées pour compiler les librairies X peuvent aussi être utilisées pour compiler les librairies partagées externes (ex : Xaw3d). Vous trouverez des instructions détaillées dans le répertoire /usr/X11R6/lib/X11/config/lnxLib.rules.
Merci à Dirk Hohndel (hohndel@aib.com) qui a créé les premières librairies DLL pour XFree86, sur lesquelles cette méthode est basée (développée par Orest Zborowski - (orestz@eskimo.com)).