Крис Стерритт написал следующее (подредактировано для большей наглядности) в comp.windows.x.kde.
Установите Qt 1.42 или выше.
Я устанавливаю KDE для себя (не как root), так что я задаю переменную окружения KDEDIR не как /usr/local, или что-либо другое, что было по умолчанию, а как другой каталог. Я буду использовать это ниже, но вам,возможно, это не нужно. Кроме того, SGI имеет библиотеки 'jpeg' и 'png', но они либо устарели, либо что-то в них сломано. Так что вам придется отыскать исходные тексты libpng и libz (jpeg поставляется с kdesupport); я их обнаружил в RPM-пакетах с исходными текстами в одном из зеркал FTP RedHat.
Возьмите egcs 1.1.1 или выше и скомпилируйте с включенной поддержкой '-fsquangle'. Это нужно, так как ассемблер SGI не может справиться с громадными именами объектов, создаваемыми нормальным g++, и gas, похоже, не работает в SGI. Вам также будет нужно откомпилировать библиотеки gcс, используя этот бинарный файл. Убедитесь, что ваш PATH не содержит другой версии gcc (если она была установлена до этого). Затем, если я делаю g++ -v на выходе получается:
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) |
Сделайте
setenv LDFLAGS " " |
Распакуйте 'kdesupport' и войдите в его каталог. Запустите его configure c "--prefix" если это вам нужно (если вы не root):
./configure --prefix=$KDEDIR |
Запустите скрипт (который я привожу ниже) следующим образом:
find . -name Makefile -exec ../FixMakesSq {} \; |
CXXFLAGS имеет '-fsquangle'.
все 'реплицированные' библиотеки (jpeg and png) будут подаваться с полным путем к ним, так что они не будут связаны с "родными" библиотеками SGI.
#!/bin/perl -ni.bak if (/cflags\s*=(.*)$/i) { print "CFLAGS = -fsquangle $1\n"; } elsif (/cxxflags\s*=(.*)$/i) { print "CXXFLAGS = -fsquangle $1\n"; } elsif ((/-lpng/) || (/-ljpeg/)) { if (/^(.*)-lpng(.*)$/) { $b4 = $1; $af = $2; print "$b4 /path/to/KDE/libs/libpng.a $af\n"; } if (/^(.*)-ljpeg(.*)$/) { $b4 = $1; $af = $2; print "$b4 /path/to/KDE/libs/libjpeg.a $af\n"; } } else { print; } |
Сделайте:
make make install |
Пройдите в каталог с исходным текстом 'libz', сделайте:
./configure --prefix=$KDEDIR make make install |
Пройдите в каталог с исходным текстом 'libpng', сделайте:
./configure --prefix=$KDEDIR make make install |
Распакуйте 'kdelibs' и войдете в его каталог. Добавьте аргумент '--enable-new-stuff' к ./configure:
./configure --prefix=$KDEDIR --enable-new-stuff find . -name Makefile -exec ../FixMakesSq {} \; |
Найдите 'kprocctrl.cpp', и исправьте Makefile в этом каталоге. Добавьте '-D_LANGUAGE_C_PLUS_PLUS' к строке CXXFLAGS. Это даст правильное определение для сигнальных функций (имеет аргумент 'int).
make make install |
Распакуйте 'kdebase' и войдите в его каталог. Сделайте:
./configure --prefix=$KDEDIR find . -name Makefile -exec ../FixMakesSq {} \; |
Исправьте 'memory_sgi.cpp' (сделайте find в каталоге 'kdebase'). Я просто сделал для всей функции #ifdef ... она не компилируется на моей машине и я все-равно никогда не открываю эту часть KPanel :-)
make make install |
Распакуйте 'kdeutils'.
./configure --prefix=$KDEDIR find . -name Makefile -exec ../FixMakesSq {} \; |
Найдите 'kcalc_core.cpp' и исправьте его Makefile аналогично тому, как вы это сделали до этого для 'kprocctrl.cpp'.
make make install |
Распакуйте 'kdegames', 'kdegraphics', и 'kdetoys' и для каждого войдите в его каталог и сделайте:
./configure --prefix=$KDEDIR find . -name Makefile -exec ../FixMakesSq {} \; make make install |
Следующий шаг необязателен. Найдите, где находится каталог knotes. Пройдите туда, сделайте 'make clean', затем измените CXXFLAGS в его Makefile. Строка CXXFLAGS имеет '-O2', замените это на '-g'. Затем сделайте 'make' и 'make install'. Я это сделал потому, что на моей машине knotes рушился через несколько минут работы в нем. Тем не менее, когда я перекомпилировал его c '-g' (то есть с поддержкой отладки) вместо '-O2' (оптимизация) все хорошо заработало. Разберитесь в чем дело :-).
Вот и все, теперь вы сможете пользоваться KDE.