Chris Berry va enviar el següent micro-Com fer actualitzat a comp.windows.x.kde.
Aquesta és una modificació del 'Micro-Com fer' original enviat per Chris Sterritt. És vàlid per a KDE-1.1.1 corrent sobre Irix 6.5. No ho he intentat sobre altres plataformes. Hi ha alguns elements de contenció: Obtinc molts, molts avisos sobre definicions Qt forçades, sobre definicions libkdecore forçades, etc. (Tantes definicions forçades, que hauria pogut escriure un diccionari), la part i18n no funciona (mentre que si que ho deia en v1.0) i kikbd estossega en la consola (funciona bé altrament). Tots els comentaris o preguntes els podeu dirigir a berry@ieeecs.concordia.ca. Mantindré també una còpia d'aquest 'Com fer' en la meva pàgina web personal: http://alcor.concordia.ca/~c_berry/.
També, si aquest tema no us interessa, he carregat els binaris de kde-1.1.1 i egcs-1.1.2 a ftp://ftp.cmc.ec.gc.ca/pub/hbc/sgi/. El KDE ha estat compilat amb biblioteques compartides, per tant si no teniu libstdc++.so.2.9.0 jo us suggeriria que descarreguéssiu els binaris egcs igualment. Si us plau descarregueu i _llegiu_ també el fitxer LLEGEIXME del directori, ja que conté important informació sobre la instal·lació.
En últim lloc ni jo ni Environment Canada acceptem cap responsabilitat personal respecte la vàlua o ús d'aquestes instruccions. Han funcionat per a mi. Si us funcionen, està bé, però si no ho fan no us puc ajudar ni tampoc ningú d'EC. Adoneu-vos que algunes coses no funcionen de la manera que haurien de fer-ho. Si trobeu alguna manera de solucionar els problemes feu-ho saber a algú altre. Personalment no podré provar res després del 20 d'Agost de 1999 ja que retornaré a la Universitat (i utilitzaré SunOS).
Passeu-ho bé!
Instal·lar Qt 1.42 o superior.
Estic instal·lant el KDE com a usuari (no com a root) per això tinc una variable d'entorn KDEDIR que té un valor diferent de /usr/local/ o quin sigui el per defecte. Així ho esmentaré més endavant, però no cal que ho feu. A més SGI té una biblioteca 'jpeg' i una 'png' però estan obsoletes i no acaben d'anar bé del tot. Per tant haureu d'aconseguir el codi font de libpng i libz (la de jpeg ve en el 'kdesupport'); Jo els he trobat com a RPM font en servidors rèplica d'ftp de RedHat.
Obteniu l'egcs 1.1.1 o superior, i compileu amb el paràmetre '-fsquangle' activat. Això és així perquè l'assemblador SGI no pot tractar amb noms d'objectes molt grans produïts perl g++ normal i el 'gas' no funciona encara per als SGI. Haureu de crear les biblioteques gcc utilitzant aquest binari també. Assegureu-vos que el vostre PATH obté únicament aquest compilador (si en teniu instal·lat algun altre en una altra banda). Quan faig un 'g++ -v' obtinc:
gcc version egcs-2.91.60 19981201 (egcs-1.1.1 release) |
Feu un
setenv LDFLAGS " " |
Desempaqueteu el 'kdesupport' i entreu en el seu directori. Executeu el fitxer de configuració amb "--prefix" si us cal:
./configure --prefix=$KDEDIR --x-includes=/usr/include/X11 \ --x-libraries=/usr/lib32 --with-qt-includes=/opt/kde-1.1.1 \ --with-qt-libs=/opt/kde-1.1.1 --enable-shared |
Executeu el fitxer (que s'inclou més endavant) de la següent manera:
find . -name Makefile -exec ../FixMakesSq {} \; |
Aquí hi ha el fitxer de configuració FixMakesSq:
#!/bin/perl -ni.bak if ((/-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"; } } #NOTA: Descomenteu aquesta secció si voleu afegir #-D_LANGUAGE_C_PLUS_PLUS per a tots els makefiles #Jo personalment no ho he provat, però no hauria d'espatllar #res. # Alternativament, afegiu aquest senyal als llocs especificats més avall. #elsif (/cxxflags\s*=(.*)$/i) #{ # print "CXXFLAGS = -D_LANGUAGE_C_PLUS_PLUS $1\n"; #} else { print; } |
Feu:
gmake gmake install |
Aneu al directori font de 'libz', feu:
./configure --prefix=$KDEDIR gmake gmake install |
Aneu al directori font de 'libpng', feu:
./configure --prefix=$KDEDIR gmake gmake install |
Desempaqueteu 'kdelibs' i entreu en el seu directori. Adoneu-vos del paràmetre '--enable-new-stuff' per al fitxer './configure' (podria no ser necessari, però res no es queixarà si l'utilitzeu):
./configure --prefix=$KDEDIR --x-includes=/usr/include/X11 \ --x-libraries=/usr/lib32 --with-qt-includes=/opt/kde-1.1.1 \ --with-qt-libs=/opt/kde-1.1.1 --enable-shared --enable-new-stuff find . -name Makefile -exec ../FixMakesSq {} \; |
Trobeu el 'kprocctrl.cpp', i arregleu el Makefile d'aquest directori. Només si no heu descomentat la secció que té aquesta funció en el fitxer FixMakesSq, afegiu '-D_LANGUAGE_C_PLUS_PLUS' a la línia CXXFLAGS. Això fa que prengui la definició correcta per a les funcions de senyals (té un paràmetre 'int').
Trobeu el 'addressbook.cc', i arregleu el Makefile en aquest directori. Afegiu '-fsquangle' a la línia de CXXFLAGS. Això fa possible gestionar el nom gran que apareixerà.
gmake gmake install |
Desempaqueteu el 'kdebase' i entreu al seu directori. Feu:
./configure --prefix=$KDEDIR --x-includes=/usr/include/X11 \ --x-libraries=/usr/lib32 --with-qt-includes=/opt/kde-1.1.1 \ --with-qt-libs=/opt/kde-1.1.1 --enable-shared find . -name Makefile -exec ../FixMakesSq {} \; |
Arregleu el 'memory_sgi.cpp' (feu un 'find' des del directori 'kdebase'). Jo he posat el contingut de tota la funció en un comentari #ifdef ... no compila en la meva màquina, i de tota manera mai no utilitzo aquesta part del KPanell :-).
Arregleu el 'TEShell.C' (en el directori kdebase-1.1.1/konsole/src/). És l'operació per a obtenir un 'pty' per a la nova consola K. Lamentablement no es va escriure pensant en l'Irix i necessita que s'apliqui un pegat amb el 'diff' inclòs més avall:
*** TEShell.C Mon Apr 12 00:12:37 1999 --- /users/dor/aspg/ber/data/kdedown/kdebase-1.1.1/konsole/src/TEShell.C Wed Jul 14 15:15:35 1999 *************** *** 169,174 **** --- 169,177 ---- pid_t pid = waitpid(-1,&status,WNOHANG); Shell* sh = shells.find(pid); if (sh) { shells.remove(pid); sh->doneShell(status); } + #if defined(sgi) + signal(SIGCHLD,catchChild); + #endif } void Shell::doneShell(int status) *************** *** 234,239 **** --- 237,252 ---- } } } + #endif + + #if defined(sgi) /* Irix */ + + needGrantPty = FALSE; + char* line; + line = _getpty(&ptyfd, O_RDWR|O_NDELAY, 0600, 0); + strcpy(ptynam,"/dev/ptc"); + strcpy(ttynam,line); + #endif if (ptyfd < 0) // Linux, FIXME: Problemes en altres sistemes ? gmake gmake install |
Desempaqueteu el 'kdeutils'.
./configure --prefix=$KDEDIR --x-includes=/usr/include/X11 \ --x-libraries=/usr/lib32 --with-qt-includes=/opt/kde-1.1.1 \ --with-qt-libs=/opt/kde-1.1.1 --enable-shared find . -name Makefile -exec ../FixMakesSq {} \; |
Trobeu el 'kcalc_core.cpp' i arregleu el seu Makefile com heu fet per al 'kprocctrl.cpp' més amunt.
gmake gmake install |
Desempaqueteu els 'kdegames', 'kdegraphics', i 'kdetoys' i per a cadascun d'ells entreu en el seu directori i feu :
./configure --prefix=$KDEDIR --x-includes=/usr/include/X11 \ --x-libraries=/usr/lib32 --with-qt-includes=/opt/kde-1.1.1 \ --with-qt-libs=/opt/kde-1.1.1 --enable-shared \ find . -name Makefile -exec ../FixMakesSq {} \; gmake gmake install |
Aquest pas és opcional per al KDE-1.1. No crec que sigui necessari per al KDE-1.1.1. El Knotes mai m'ha petat en la meva màquina. Ho he deixat aquí per a la completesa. Trobeu el directori a on hi ha el 'knotes'. Aneu-hi, feu un 'make clean', aleshores canvieu els CXXFLAGS del seu Makefile. La línia dels CXXFLAGS té '-O2'; canvieu-ho a '-g'. Aleshores feu-ho 'make' i 'make install'. La raó d'això és que vaig trobar que el 'knotes' petava minuts més tard d'engegar-se; en canvi quan vaig recompilar amb l'opció '-g' (que vol dir suport per a la depuració activat) en comptes de '-O2' (optimització) funcionava bé. Imagineu-vos-ho :-).
I això és tot. Ara hauríeu de poder executar el KDE.