XFree86 4.0. 1 appeared to be lacking libGLU* and its include files.
GLU - это стандартная часть нормальной установки OpenGL, которая отсутствует в XFree86 4 и может не работать со специализированными драйверами OpenGL.
XFree86 4.0.1 включает только ядро Mesa 3.3, которое во время разработки было/есть MesaGL. Direct Rendering Infrastructure (DRI) XFree86 основано на коде Mesa.
Если вам посчастливилось иметь видеокарту Nvidia, то и вы можете заинтерисоваться установкой драйверов Nvidia и выбором библиотек OpenGL (GLU, glut, Qt, страницы руководства OpenGL), поэтому посмотрите NVIDIA-OpenGL-Configuration miniHOWTO здесь:
Сделайте каталог для хранения исходных текстов quake:
mkdir q1src cd q1src unzip ../q1source.zip cd QW cp Makefile.Linux Makefile
Отредактируйте Makefile:
Строка 30:
MAINDIR=/home//q1src (куда вы распакуете исходные тексты)
Строка 37:
MESA_DIR=/usr/src/Mesa-3.3 или то, куда вы положите исходный код Mesa
Строки 43 и 46:
Вам может понадобится удалить все оптимизирующие флаги компилятора, чтобы получить стабильный бинарный код. Вы можете поэкспериментировать с ними. Например, творились странные вещи, когда открывались PAK-файлы с включенной оптимизацией: программа говорила, что имеются миллионы файлов в id1/pak0.pak!
Однако, далее эксперименты показали, что по крайней мере при двух включенных флагах, все было в порядке:
-ffast-math -fexpensive-optimizations
Действительно неприятный флаг кажется - -O6. Я пробовал установить -O1, но результат был тот же. Флаги -malign* также не были нужны.
Строка 50:
Добавьте: -DGL_EXT_SHARED
Это #define найдено внутри файла gl_vidlinuxglx.c, где оно условно компилирует некоторый 3DFx/glide-специфичный код #ifndef! Без этого, компилятор будет выдавать ошибку: неразрешенные внешние функции, связанная с glide/3dfx.
Удалите: -I/usr/include/glide
Измените: -L/usr/local/src/Mesa-3.0/lib на то, куда вы положили исходный код Mesa: -L/usr/src/Mesa-3.3/lib
Удалите любые ссылки на glide и исправьте путь к исходным кодам Mesa, везде, где они еще упомянуты.