Compiler Blender sur une Kubuntu 6.06 LTS
By olivS, lundi 28 mai 2007 à 10:42 :: Compilation de programmes :: #91 :: rss :: PDF
Ce didacticiel réunit des informations de base sur la compilation par vous-même de Blender à partir des sources SVN (ex-CVS). Il est grossièrement inspiré de deux didacticiels en ligne :
http://tuxicoman.blogspot.com/2007/05/compiler-blender.html et http://doc.ubuntu-fr.org/blender_compilation?s=compilation%20blender.
Des instructions particulières de compilation par D.J. Capelis furent également très utiles. Veuillez noter que ffmpeg semble compiler sans souci sur une Mandriva, aussi la partie relative à Make ne sera peut-être utile qu'aux Ubunteros.
Fichier(s) attaché(s) :
Réunir les sources
Tout d'abord, avant de compiler quoi que ce soit, vous devrez vraiment avoir quelque chose à compiler. Les sources de Blender sont disponibles grâce à SVN. Dans ce didacticiel, nous verrons comment compiler Blender à partir des sources SVN ; les sources SVN sont mises à jour régulièrement, pratiquement sur une base quotidienne. Parfois, quelques fonctionnalités sont cassées, parfois non. Les compilations SVN devraient être considérées comme des logiciels Beta, réservées aux tests plutôt qu'à la production.
Besoin de quelques notions de base avant de démarrer?
Rappelez-vous qu'en toute occasion Wikipedia est votre ami.
Scons : http://fr.wikipedia.org/wiki/SCons
Make : http://fr.wikipedia.org/wiki/Make
SVN (Subversion) : http://fr.wikipedia.org/wiki/Subversion_%28logiciel%29
Crontab : http://fr.wikipedia.org/wiki/Crontab
Patch : http://fr.wikipedia.org/wiki/Patch_%28informatique%29
Récupérer les sources
Vous devrez installer le paquet subversion avant de continuer, en utilisant Synaptic, Adept ou n'importe quel Gestionnaire de Paquets que vous utilisez habituellement.
Ensuite vous créez dans votre /home un répertoire dans lequel les sources seront placées. Par exemple :
$ mkdir sources
$ mkdir svn-blender
$ cd ~/sources/svn-blender
Subversion va récupérer les sources SVN de Blender grâce à cette ligne, et les stocker dans le répertoire courant :
$ svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/blender
Et si vous souhaitiez compiler une version optimisée de la version officielle de Blender?
Le code source est disponible à partir de cette page : http://www.blender.org/download/source-code/
Vous pouvez les télécharger et exécuter Scons et/ou Make à partir du répertoire où vous les avez mis, tout comme dans ce didacticiel. Pensez à optimiser votre compilation en utilisant lesCCFLAGS,CXXFLAGS, etCPPFLAGSdans le fichieruser-config.py, et vous devriez obtenir de notables améliorations de performance.
Appliquer des patches au code source
Avant de procéder à la compilation, vous souhaiterez peut-être ajouter à Blender quelques fonctionnalités si expérimentales qu'elles ne figurent pas encore dans le SVN! Quelques exemples de tels patches, parmi les plus populaires au moment de l'écriture, sont :
- Le patch pour particules de jhkarh : http://wiki.blender.org/index.php/BlenderDev/Particles_Rewrite
- Le patch pour les caustiques de RCRuiz : http://blenderartists.org/forum/showthread.php?t=94998
Avant toute chose, vous devriez installer le paquet patch en utilisant Synaptic, Adept ou n'importe quel Gestionnaire de Paquets que vous utilisez habituellement. Ensuite, pour appliquer un patch, assurez-vous d'être dans le répertoire racine des sources de Blender :
$ cd ~/sources/svn-blender
puis utilisez la commande suivante, avec nom_du_patch étant le nom du fichier contenant le patch :
$ patch -p0 < nom_du_patch
Si vous avez besoin de restaurer les sources d'avant le patch, vous pouvez utiliser la commande suivante :
$ patch -p0 -R < nom_du_patch
Compiler Blender
Si vous n'avez jamais compilé Blender précédemment, le mieux pour vous est probablement d'essayer sans le support pour ffmpeg, dans un premier temps, en utilisant Scons. Si vous y parvenez, le petit pas supplémentaire pour obtenir le support de ffmpeg grâce à Make ne sera pas très douloureux. Si vous êtes déjà à l'aise avec toutes ces histoires de compilation, vous pouvez commencer avec Make puis poursuivre avec Scons dès que le support ffmpeg a été compilé.
utiliser Scons
Ce didacticiel est orienté pour Scons. Vous devriez installer le paquet scons (ainsi que le paquet build-essential) avant de continuer, en utilisant Synaptic, Adept ou n'importe quel Gestionnaire de Paquets que vous utilisez habituellement. Vous aurez également besoin d'un fichier de configuration pour ordonner à Scons les options à compiler, avec les optimisations nécessaires. Le fichier user-config.py suivant est basé sur celui fourni sur http://tuxicoman.blogspot.com/2007/05/compiler-blender.html, mais par défaut désactive la fonctionnalité ffmpeg. J'ai seulement reproduit le premier bloc de lignes, les reste étant conforme à l'origine :
WITH_BF_FFMPEG = 'false' # -DWITH_FFMPEG
BF_FFMPEG = '/usr'
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH='${BF_FFMPEG}/lib'
BF_FFMPEG_LIB = 'avformat avcodec avutil xvidcore ogg vorbis'
WITH_BF_OPENAL = 'true'
WITH_BF_GAMEENGINE='true'
WITH_BF_VERSE='true'
BF_PYTHON_VERSION = '2.4'
Quelques commentaires :
WITH_BF_FFMPEG = 'false': ffmpeg ne peut pour l'instant pas être compilée en utilisant Scons. Nous verrons plus tard comment combiner l'usage de Scons et de Make pour atteindre nos objectifs.BF_PYTHON_VERSION = '2.4': Si vous avez une distributions récente, vous devriez certainement spécifier'2.5'ici. Mais ma Kubuntu 6.06 LTS est toujours basée sur la version 2.4 de Python.CCFLAGS,CXXFLAGS, etCPPFLAGS: ces flags prennent en compte le type de votre processeur pour l'optimisation de votre compilation. Vous pouvez gagner en performance et en vitesse de calcul lors du rendu avec une compilation bien optimisée.
Mise à jour du 30-Sept-2007:
Il est désormais possible de compiler le support de ffmpeg grâce à Scons. Afin d'y parvenir, commenez par supprimer ou renommer le fichierconfig.makdansextern/ffmpeget ensuite modifier votreuser-config.pycomme suit:
WITH_BF_FFMPEG = 'true'
BF_FFMPEG = "#extern/ffmpeg"
BF_FFMPEG_INC = '${BF_FFMPEG}/include'
BF_FFMPEG_LIBPATH = '${BF_FFMPEG}/lib'
BF_FFMPEG_LIB = ''
ffmpeg devrait alors tranquillement être compilé avec Scons. Suivez ce lien pour plus d'informations.
la compilation est démarrée grâce à cette simple ligne :
$ scons
Les ordinateurs à coeurs multiples sont désormais courants. Si vous avez un tel ordinateur, vous accélèrerez le processus de compilation en disant à Scons le nombre de coeurs disponibles. Par exemple, pour un ordinateur à double-coeur :
$ scons -j2
il est très vraisemblable que la compilation s'arrêtera bientôt sur un message d'erreur. C'est dû au fait que Blender dépend de pas mal de librairies de développement. Il vous faudra probablement installé quelques paquets supplémentaires, et recommencer la compilation à quelques reprises. Les principales librairies de développement qui devraient être installées sont :
- python2.4-dev (ou python2.5-dev sur les distributions récentes)
- libjpeg62-dev
- libpng12-dev
- zlib1g-dev
- libopenal-dev
- libalut-dev
- libsdl1.2-dev
- libtiff4-dev
- libopenexr-dev
- libxi-dev
- libfreetype6-dev
- libxvidcore4-dev (en fonctions des librairies ffmpeg spécifiées dans
user-config.py) - libogg-dev (en fonctions des librairies ffmpeg spécifiées dans
user-config.py) - libvorbis-dev (en fonctions des librairies ffmpeg spécifiées dans
user-config.py) - ftgl-dev
- libsmpeg-dev
plus peut-être quelques autres.
Vous vous sentez perdu? Vous avez besoin d'aide?
Ne vous inquiétez pas, vous n'êtes pas seul, il y a plein de personnes sympathiques prêtes à vous aider :
- sur IRC :
irc.freenode.netserver,#blendercoderschannel- sur la Toile : http://www.blender.org/forum/viewforum.php?f=5
[Périmé] Utiliser Make pour compiler ffmpeg
Ainsi que nous l'avons dit plus tôt, vous ne pouvez pas, pour l'instant, compiler le support ffmpeg pour Blender avec seulement Scons. Vous devrez vous reposer sur Make pour cette tâche :
$ cd ~/sources/svn-blender
$ make
devrait faire l'affaire. Vous pouvez interrompre la compilation, en utilisant [Ctrl]+[C] dès que make en finit avec ffmpeg. Pour vous en assurer, soit vous attendez patiemment que la compilation se termine naturellement, soit vous scrutez en temps réel les rapports de compilation, à la recherche d'une ligne qui ressemblerait à :
Install /home/olivier/compil/blender/obj/linux-glibc2.3.6-i386/extern/ffmpeg/libavutil/libavutil.a
A ce moment, vous sauvrez que ffmpeg a été correctement compilé, et vous trouverez le nouveau répertoire suivant :
/home/olivier/compil/lib/linux-glibc2.3.6-i386/ffmpeg
en même temps que deux autres répertoire, include/ et lib/.
Maintenant, vous pouvez recommencer la compilation de Blender en utilisant Scons, et tout devrait être compilé comme il faut. Au cours de cette dernière étape, n'oubliez pas de modifier votre fichier user-config.py :
WITH_BF_FFMPEG = 'true'
BF_FFMPEG = '/home/olivier/compil/lib/linux-glibc2.3.6-i386/ffmpeg' (cette ligne doit correspondre exactement au répertoire ffmpeg créé par make)
Et maintenant?
Si tout s'est passé comme prévu, vous devriez trouver un nouveau répertoire nommé install... Les binaires nouvellement complés de blender peuvent y être trouvés, accompagné des fichiers standards qui sont livrés avec chaque version officielle :
$ cd ~/sources/svn-blender/install/linux2/blender
Evidemment, vous pouvez maintenant profiter des toutes dernières versions de Blender. Mais il y a quelques autres choses que vous pouvez faire :
partagez vos compilations et optimisations!
Vous pouvez partager vos binaires avec les autres, si vous le souhaitez. Il y a différents endroits où vous pouvez les partager. La plupart est répertoriée dans l'article suivant, sur Blendernation : Blender Downloads.
Restez à jour!
Maintenant que vous avez compilé votre propre binaire une fois, il est très facile de le faire et refaire, sur une base régulière. Intéressé par une compilation hebdomadaire de Blender? Vous avez juste à lancer, une fois par semaine, la commande suivante :
$ cd ~/sources/svn-blender && svn up && scons
et vous pouvez même utiliser Crontab pour automatiser la chose.
)







Comments
1. On vendredi 14 septembre 2007 à 21:47, by olivS
2. On dimanche 30 septembre 2007 à 21:47, by olivS
3. On mardi 23 décembre 2008 à 16:32, by laurent
Add a comment