Compilations

Compilation du logiciel Sankoré 3en1 version 1.00.00 sous Ubuntu 32 et 64 bits Natty Narwhal

Ayant eu du mal à compiler Sankoré 3en1 sous Linux, voici les commandes que j'ai effectuées pour arriver à mes fins. Je pense qu'elles peuvent très bien s'adapter aux autres versions d'Ubuntu voire distributions Linux.

Récupérer Sankoré avec git

Si vous êtes derrière un proxy, définissez la variable http_proxy :

# http_proxy=http://serveur:port/

Installer le paquet Ubuntu git

# apt-get install git

Se positionner dans le répertoire src

# cd /usr/local/src

Répérer les sources

# git clone https://github.com/Sankore/Sankore-3.1.git Sankore
# git clone https://github.com/Sankore/Sankore-ThirdParty.git Sankore-ThirdParty

Deux répertoires sont créés et populés, /usr/local/src/Sankore et /usr/local/src/Sankore-ThirdParty

Modifier les droits du fichier lançant la compilation

# chmod 755 Sankore/release.linux.sh

Installer les paquets Ubuntu nécessaires à la compilation

# apt-get install make
# apt-get install qt4-qmake
# apt-get install libqt4-dev
# apt-get install g++
# apt-get install libt1-dev
# apt-get install x11proto-print-dev
# apt-get install libmotif-dev
# apt-get install libxp-dev
# apt-get install libpaper-dev
# apt-get install libphonon-dev
# apt-get install libssl-dev

Création de la librairie FreeType

Aller dans le répertoire de la lib freetype

# cd /usr/local/src/Sankore-ThirdParty/freetype

Construire le Makefile

# qmake freetype.pro -spec linux-g++

Lancer la compilation de la librairie freetype

# make

Le fichier /usr/local/src/Sankore-ThirdParty/freetype/lib/linux/libfreetype.a est créé

Création de la librairie xpdf

Se positionner dans le répertoire xpdf-3.02

# cd /usr/local/src/Sankore-ThirdParty/xpdf/xpdf-3.02

Configurer la compilation

# ./configure --with-freetype2-library="../../freetype/lib/linux" --with-freetype2-includes="../../freetype/freetype-2.4.4/include"

Suite à un bug du configure, il faut modifier dans le Makefile de splash le lien vers les "include" de freetype

# vi /usr/local/src/Sankore-ThirdParty/xpdf/xpdf-3.02/splash/Makefile

Modifier la ligne 19

CXXFLAGS= -g -O2 -DHAVE_CONFIG_H -I.. -I${GOOSRCDIR} -I${FOFISRCDIR} -I${srcdir} -I../../freetype/freetype-2.4.4/include

en

CXXFLAGS= -g -O2 -DHAVE_CONFIG_H -I.. -I${GOOSRCDIR} -I${FOFISRCDIR} -I${srcdir} -I../../../freetype/freetype-2.4.4/include

Modifier fichier le xpdf/xpdf.pro au niveau des sources pour ajouter plusieurs fichiers T1

# vi /usr/local/src/Sankore-ThirdParty/xpdf/xpdf.pro

A la ligne 88, insérer

$$XPDF_DIR/splash/SplashT1Font.cc
$$XPDF_DIR/splash/SplashT1FontEngine.cc
$$XPDF_DIR/splash/SplashT1FontFile.cc

Créer le Makefile

# cd /usr/local/src/Sankore-ThirdParty/xpdf
# qmake xpdf.pro -spec linux-g++

Lancer la compilation

# make

Le fichier /usr/local/src/Sankore-ThirdParty/xpdf/lib/linux/libxpdf.a est créé

Compilation de Sankoré 3.1.1

Certaines librairies n'étant pas prises en compte (bug ?), ajouter dans Sankore-ThirdParty/libs.pri à la ligne 19

LIBS += "-%$$PWD/xpdf/lib/$$SUB_LIB" "-lxpdf" "-lpaper" "-lt1"

Le 21 juin 2011, des commits ont été réalisés, avec des directives de compilations qui empêchaient la compilation. Il est nécessaire pour chaque ligne suivante de modifier la directive comme ceci

Exemple : src/gui/UBFloatingPalette.cpp:30:#ifndef Q_WS_WIN

Il faut modifier dans le fichier src/gui/UBFloatingPalette.cpp, à la ligne 30 la directive #ifndef Q_WS_WIN par #ifdef Q_WS_WIN (retirer le n)

Liste des modifications à réaliser :

src/gui/UBFloatingPalette.cpp:30:#ifdef Q_WS_WIN

src/gui/UBDockPalette.cpp:38:#ifdef Q_WS_WIN

src/gui/UBRubberBand.cpp:21:#ifdef Q_WS_WIN

src/core/UBDisplayManager.cpp:118:#ifdef Q_WS_WIN

src/core/UBDisplayManager.cpp:134:#ifdef Q_WS_WIN

src/adaptors/voting/UBAbstractVotingSystem.cpp:10:#ifdef Q_WS_WIN

src/adaptors/voting/UBAbstractVotingSystem.cpp:43:#ifdef Q_WS_WIN

src/desktop/UBDesktopAnnotationController.cpp:64:#ifdef Q_WS_WIN

src/podcast/UBPodcastController.cpp:40:#ifdef Q_WS_WIN

src/podcast/UBPodcastController.cpp:286:#ifdef Q_WS_WIN

src/podcast/UBPodcastController.cpp:776:#ifdef Q_WS_WIN

Se placer dans le répertoire de Sankoré

# cd /usr/local/src/Sankore

Lancer la compilation

# ./release.linux.sh

Le résultat de la compilation fournit un répertoire et un fichier archive compressé .tar.gz à installer

Le répertoire qui peut être tout de suite utilisable

# ls -l /usr/local/src/Sankore/build/linux/release/Sankore-3.1.1

Le fichier archive compressé .tar.gz qui peut être déployé sur d'autres machines

# ls -l /usr/local/src/Sankore/install/linux/Sankore 3.1.tar.gz




Retour