Dans cette partie, nous allons expliquer comment créer des paquets d'installation pour MacOS X à l'aide de l'outil PackageMaker.
Pour pouvoir créer ces paquets, nous allons compiler et installer des outils et des bibliothèques nécessaires à la compilation, l'installation et l'exécution de la bibliothèque MLV.
Avant d'être mis en paquet, ces bibliothèques et ces outils doivent être installés dans différents répertoires :
Le repertoire fakeroot_to_compile_mlv-2.0.2 est un repertoire temporaire de construction. Le repertoire /usr est le repertoire d'installation de la bibliothèque. Dans notre cas, il est utilisé pour pouvoir configurer et tester en conditions réelles l'infrastructure MLV. Le repertoire $HOME/mlv-2.0.2_macos-10.10 contient exactement les même composantes que ceux qui sont installées dans /usr. Nous utiliserons ce dernier repertoire pour construire le paquet d'installation pour MacOS X.
Il est important de travailler avec les deux repertoires /usr et $HOME/mlv-2.0.2_macos-10.10. En effet, /usr fait partie du système d'exploitation et contient déjà d'autres bibliothèques. On ne peut donc pas distribuer /usr, d'où l'obligation de créer une copie de /usr qui ne contient que l'infrastucture de MLV.
Il est important de noter que nous allons modifier /usr. Pour ce faire, nous devrons utiliser les droits "administrateur". Il faudra donc être extrèmement vigilant car une mauvaise manipulation dans /usr peu détruire le système tout entier.
Commencez par créer les repetroires d'installation en tapant les commandes suivantes :
Commencez par installer l'environnement de programmation d'Apple. Pour cela, au choix,
Cet environnement contient entre autre gcc, et make.
Nous allons installer la bibliothèque MLV ainsi que ses dépendances dans un répertoire de votre dossier personnel.
Créez les répertoires suivants en tapant les commandes suivantes :
mkdir $HOME/fakeroot_to_compile_mlv-2.0.2 mkdir $HOME/fakeroot_to_compile_mlv-2.0.2/src mkdir $HOME/mlv-2.0.2_macos-10.10
Il est nécessaire de configurer le système d'exploitation, pour qu'il sache que de nouvelles bibliothèques sont installées dans le répertoire fakeroot. Pour cela, il suffit de définir quelques variables d'environnement dans un fichier qui est exécuté à chaque démarrage du terminal.
Ce fichier est $HOME/.bash_profile
Ajoutez, à la fin du fichier, les commandes suivantes:
export FAKEROOT="$HOME/fakeroot_to_compile_mlv-2.0.2" export SYSROOT="/usr" export LOCALSYSROOT="/usr/local/MLV" export MACOS_PACKAGE="$HOME/mlv-2.0.2_macos-10.10" export PATH="$FAKEROOT/bin:$LOCALSYSROOT/bin:$SYSROOT/bin:$PATH" export DYLD_LIBRARY_PATH="$FAKEROOT/lib:$LOCALSYSROOT/lib:$SYSROOT/lib:$DYLD_LIBRARY_PATH" export PKG_CONFIG_PATH="$FAKEROOT/lib/pkgconfig:$LOCALSYSROOT/lib/pkgconfig:$SYSROOT/lib/pkgconfig:$PKG_CONFIG_PATH" export LD_LIBRARY_PATH="$FAKEROOT/lib:$LOCALSYSROOT/lib:$SYSROOT/lib:$LD_LIBRARY_PATH" export ACLOCAL="aclocal -I $FAKEROOT/share/aclocal -I $LOCALSYSROOT/share/aclocal -I $SYSROOT/share/aclocal -I /usr/share/aclocal" export PKG_CONFIG="$SYSROOT/bin/pkg-config" export CPPFLAGS="-I$FAKEROOT/include -I$LOCALSYSROOT/include -I$SYSROOT/include" export LDFLAGS="-L$FAKEROOT/lib -L$LOCALSYSROOT/lib -L$SYSROOT/lib"
Si le fichier n'existe pas, créez le.
Vous devez maintenant redémarrer votre terminal pour prendre en compte les changements.
Vérifiez que les variables d'environnement ont bien été installées en tapant la commande:
export
qui devrait afficher toutes les variables d'environnement existantes.
Vous pouvez aussi les examiner une à une en tapant la commande:
echo $FAKEROOT echo $PATH etc ...
Nous allons maintenant installer différents programmes et bibliothèques qui sont nécessaires au fonctionnement de MLV.
Commencez par télécharger pkg-config-X.X.tar.gz en allant sur le site :
http://pkgconfig.freedesktop.org/releases/
et en le mettant dans le répertoire $FAKEROOT/src.
Il est important de PRENDRE LA DERNIÈRE VERSION DE PKG-CONFIG. En effet, pkg-config utilise une autre bibliothèque qui n'est jamais incluse dans les anciennes versions.
Désarchivez le fichier en tapant la ligne de commande suivante:
cd $FAKEROOT/src tar -xzf pkg-config-X.X.tar.gz
où X.X est le numéro de la version de la bibliothèque que vous avez téléchargé.
Nous allons maintenant compiler pkg-config :
cd ./pkg-config-X.X ./configure --with-internal-glib --prefix=$SYSROOT make
La deuxième ligne de commande configure le code source de pkg-config pour que le code source prenne en compte les caractéristiques de l'architecture de votre ordinateur. L'option –prefix permet de dire au code source que le résultat de la compilation doit être installé dans le répertoire $SYSROOT, car c'est un outil qui sera necessaire à la compilation de MLV, mais aussi à l'utilisation de MLV. La 3ème commande compile le programme.
Installez la bibliothèque. Pour cela, tapez la commande :
sudo make install
Comme vous modifiez le sytème (à cause du –prefix=$SYSROOT), l'ordinateur vous demande un mot de passe. Tapez le mot de passe administrateur de l'ordinateur (ne vous inquiétez pas si le mot de passe ne s'affiche pas).
Installez ensuite pkg-config dans le répertoire destiné au paquet d'installation de MLV en tapant :
make install DESTDIR=$MACOS_PACKAGE
Voilà, pkg-config est installé.
M4 est un outil d'aide à la compilation.
L'installation de M4 est identique à celle de pkg-config. Commencez par télécharger m4-X.X.X.tar.gz sur le site : http://ftp.gnu.org/gnu/m4/
Puis tapez les commandes suivantes:
cd $FAKEROOT/src tar -xf m4-X.X.X.tar.gz cd m4.X.X.X ./configure --prefix=$FAKEROOT make make install
Ici, m4 est nécessaire pour compiler MLV, mais pas pour son utilisation. Les commandes précédentes l'ont installée uniquement dans le repertoire $FAKEROOT.
Autoconf est un outil d'aide à la compilation.
Commencez par télécharger autoconf-X.X.tar.gz sur le site : http://ftp.gnu.org/gnu/autoconf/
Puis tapez les commandes suivantes:
cd $FAKEROOT/src tar -xzf autoconf-X.X.tar.gz cd autoconf-X.X ./configure --prefix=$FAKEROOT make make install
Autoconf-archives est une bibliothèque de script pour autoconf.
Commencez par télécharger autoconf-archive-X.X.X.tar.gz sur le site : http://ftp.gnu.org/gnu/autoconf-archive/
Puis tapez les commandes suivantes:
cd $FAKEROOT/src tar -xzf autoconf-archive-X.X.X.tar.gz cd autoconf-archive-X.X.X ./configure --prefix=$FAKEROOT make make install
Automake est un outil d'aide à la compilation.
Commencez par télécharger automake-X.X.tar.gz sur le site : http://ftp.gnu.org/gnu/automake/
Puis tapez les commandes suivantes:
cd $FAKEROOT/src tar -xzf automake-X.X.tar.gz cd automake-X.X ./configure --prefix=$FAKEROOT make make install
Libtool est un outil d'aide à la compilation.
L'installation de libtool est identique à celle de pkg-config. Commencez par télécharger libtool-X-X.tar.gz sur le site : http://ftp.gnu.org/gnu/libtool/.
Puis tapez les commandes suivantes:
cd $FAKEROOT/src tar -xf libtool-X-X.tar.gz cd libtool-X-X ./configure --prefix=$FAKEROOT make make install
Il n'est pas nécessaire d'installer cette bibliothèque. En effet, elle est déjà présente dans l'installation de base de MacOS X.
Commencez par télécharger libffi-X.X.tar.gz en allant sur le site : http://sourceware.org/libffi/
Puis tapez les lignes de commandes suivantes:
cd $FAKEROOT/src tar -xzf libffi-X.X.tar.gz cd libffi-X.X ./configure --prefix=$LOCALSYSROOT cd x86_64-apple-darwinX.X.X make sudo make install make install DESTDIR=$MACOS_PACKAGE
Commencez par télécharger gettext-X.tar.gz en allant sur le site : http://www.gnu.org/software/gettext/
cd $FAKEROOT/src tar -xzf gettext-X.X.X.X.tar.gz
Ensuite, compilez et installez la bibliothèque en tapant les commandes suivantes:
cd gettext-X.X.X.X ./configure --prefix=$LOCALSYSROOT make sudo make install make install DESTDIR=$MACOS_PACKAGE
Téléchargez la bibliothèque sur le site http://ftp.gtk.org/pub/glib/
Désarchivez ensuite la bibliothèque en tapant les commandes suivantes:
cd $FAKEROOT/src tar -xzf glib-2.X.X.tar.gz cd glib-2.X.X ./configure --prefix=$LOCALSYSROOT make sudo make install make install DESTDIR=$MACOS_PACKAGE
Téléchargez le paquet d'installation pour MacOSX de la bibliothèque sur le site http://www.libsdl.org/download-1.2.php
Ce paquet a pour nom : SDL-1.2.X.dmg (Intel10.5+)
Puis, installez le paquet en tapant les commandes suivantes :
mkdir -p $MACOS_PACKAGE/Library/Frameworks hdiutil attach SDL-1.2.X.dmg sudo cp -r /Volumes/SDL/SDL.framework /Library/Frameworks/ cp -r /Volumes/SDL/SDL.framework $MACOS_PACKAGE/Library/Frameworks/ hdiutil detach /Volumes/SDL
Téléchargez le paquet d'installation pour MacOSX de la bibliothèque sur le site http://www.libsdl.org/projects/SDL_image/release-1.2.html
Ce paquet a pour nom : SDL_image-1.2.X.dmg (Intel10.5+)
Puis, installez le paquet en tapant les commandes suivantes :
hdiutil attach SDL_image-1.2.X.dmg sudo cp -r /Volumes/SDL_image/SDL_image.framework /Library/Frameworks/ cp -r /Volumes/SDL_image/SDL_image.framework $MACOS_PACKAGE/Library/Frameworks/ hdiutil detach /Volumes/SDL_image
Téléchargez le paquet d'installation pour MacOSX de la bibliothèque sur le site http://www.libsdl.org/projects/SDL_mixer/release-1.2.html
Ce paquet a pour nom : SDL_mixer-1.2.X.dmg (Intel10.5+)
Puis, installez le paquet en tapant les commandes suivantes :
hdiutil attach SDL_mixer-1.2.X.dmg sudo cp -r /Volumes/SDL_mixer/SDL_mixer.framework /Library/Frameworks/ cp -r /Volumes/SDL_mixer/SDL_mixer.framework $MACOS_PACKAGE/Library/Frameworks/ hdiutil detach /Volumes/SDL_mixer
Téléchargez le paquet d'installation pour MacOSX de la bibliothèque sur le site http://www.libsdl.org/projects/SDL_ttf/release-1.2.html
Ce paquet a pour nom : SDL_ttf-X.X.X.dmg (Intel10.5+)
Puis, installez le paquet en tapant les commandes suivantes :
hdiutil attach SDL_ttf-X.X.X.dmg sudo cp -r /Volumes/SDL_ttf/SDL_ttf.framework /Library/Frameworks/ cp -r /Volumes/SDL_ttf/SDL_ttf.framework $MACOS_PACKAGE/Library/Frameworks/ hdiutil detach /Volumes/SDL_ttf
Téléchargez le code source de la bibliothèque sur le site : http://www.ferzkopp.net/joomla/content/view/19/14/
cd $FAKEROOT/src tar -xzf SDL_gfx-X.X.tar.gz
ATTENTION ! Il est important de télécharger la verions de SDL_gfx qui a été prévu pour la version 1.2 de SDL (il ne faut surtout pas prendre SDL2_gfx qui est prévue pour la version 2.0 de SDL ) !
Modifiez le configure.in en remplacant les lignes
dnl Check for SDL AM_PATH_SDL($SDL_VERSION, :, AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!]) ) CFLAGS="$CFLAGS $SDL_CFLAGS" # Remove dependencies from 'sdl-config' not meant for us libraries: SDL_LIBS=$(echo "$SDL_LIBS" |sed -e 's/-lmingw32//' -e 's/-lSDLmain//') LIBS="$LIBS $SDL_LIBS"
par les lignes
SDL_CFLAGS="-I/Library/Frameworks/SDL.framework/Headers -framework SDL" SDL_LIBS="-framework SDL" CFLAGS="$CFLAGS $SDL_CFLAGS" LIBS="$LIBS $SDL_LIBS -framework SDL"
Reconfigurez la bibliothèque en exécutant la commande:
cd SDL_gfx-X.X autoreconf --install
Finissez la compilation et l'installation de la bibliothèque en tapant les commandes suivantes:
./configure --prefix=$LOCALSYSROOT --without-x make sudo make install make install DESTDIR=$MACOS_PACKAGE
Téléchargez le code source de Cmake, contenu dans le fichier cmake-X.X.X.tar.gz situé sur le site : http://www.cmake.org/download/
Installez le paquet en tapant les commandes suivantes:
cd $FAKEROOT/src tar -xzf cmake-X.X.X.src.tar.gz cd cmake-X.X.X ./configure --prefix=$FAKEROOT make make install
Téléchargez le code source de Doxygen, contenu dans le fichier doxygen-X.X.X.src.tar.gz situé sur le site : http://www.stack.nl/~dimitri/doxygen/download.html#latestsrc
Installez le paquet en tapant les commandes suivantes:
cd $FAKEROOT/src tar -xzf doxygen-X.X.X.src.tar.gz cd doxygen-X.X.X cmake -DCMAKE_INSTALL_PREFIX:PATH=$FAKEROOT -G "Unix Makefiles" make make install
Commencez par télécharger le code source de la bibliothèque MLV. Téléchargez la bibliothèque située à l'adresse : http://download.savannah.gnu.org/releases/mlv/mlv-2.0.2/mlv-2.0.2.tar.gz
Installez la bibliothèque en tapant les commandes suivantes:
cd $FAKEROOT/src tar -xzf mlv-2.0.2.tar.gz cd mlv-2.0.2 ./configure --prefix=$SYSROOT libxml_LIBS=-lxml2 libxml_CFLAGS=-I/usr/include/libxml2 make sudo make install make install DESTDIR=$MACOS_PACKAGE
Installer PackageMaker en allant sur le site: https://developer.apple.com/downloads/index.action
Installer PackageMaker.
Executez PackageMaker.
Dans le champs Organisation, remplissez:
multimedia.library
Et choisissez la cible :
Mac OS X v10.5 Leopard
Cliquez sur "Untitled", puis sur Configuration.
Modifiez le titre de sorte qu'il devienne: "mlv-2.0.2_macos-10.10"
Dans "Install Destination", décochez l'option "Volume selected by user" et remplacez le par "System volume".
Pour la description, mettez:
The MLV library is a simplified multimedia library. This library has been designed for beginner students in C, and it allows to add graphical and audio effects on the student program. The library is useful to: - draw figures, display text and dialog boxes, - display images, - play sounds and musics, - catch mouse and keyboard events, - get informations from dialog boxes. These tools are simplified interfaces of the SDL library. If you are not a C beginner, better use the SDL librairy (SDL, SDL_gfx, SDL_sound, SDL_ttf).
Ensuite, ajouter le dossier $MACOS_PACKAGE/usr (à l'aide de l'icône en forme de plus).
Réalisez ensuite les opérations suivantes:
This package installs the MLV library. This package installs files in /usr and /usr/local. He can potentially break the system.
Ajoutez maintenant le dossier $MACOS_PACKAGE/LIBRARY.
Réalisez ensuite les opérations suivantes:
This package installs the SDL Framework. If you have yet installed the SDL Framework, you are not obliged to install this component. This package installs files in /Library/Framework He can potentially break the system.
Une fois fait, cliquez sur le bouton Build et enregistrez le paquet dans le dossier de votre choix.
Le paquet est prêt !
Commencer par vérifier que votre paquet d'installation est correcte en copiant le paquet dans un repertoire de test. Décompressez le paquet à l'aide de la commande :
tar -xzf mlv-2.0.2_macos-10.10.pkg tar -xzf usr.pkg/Payload tar -xzf library.pkg/Payload
Normalement, vous devriez avoir deux répertoires : Library et usr. Il doivent au moins contenir les dossiers et fichiers suivants :
Library `-- Frameworks |-- SDL.framework |-- SDL_image.framework |-- SDL_mixer.framework `-- SDL_ttf.framework usr |-- bin | `-- pkg-config |-- include | `-- MLV |-- lib | |-- libMLV.0.dylib | |-- libMLV.a | |-- libMLV.dylib | |-- libMLV.la | |-- libMLVMain.0.dylib | |-- libMLVMain.a | |-- libMLVMain.dylib | |-- libMLVMain.la | `-- pkgconfig |-- local | `-- MLV `-- share |-- aclocal |-- doc |-- man `-- MLV
Si tel est le cas, c'est que le paquet a correctement été généré.
Commencez par désinstaller l'infrastructure de compilation du paquet :
cd $FAKEROOT/src/pkg-config-X.X && sudo make uninstall cd $FAKEROOT/src/libffi-X.X/x86_64-apple-darwinX.X.X && sudo make uninstall cd $FAKEROOT/src/gettext-X.X.X.X && sudo make uninstall cd $FAKEROOT/src/glib-2.X.X && sudo make uninstall sudo rm -rf /Library/Frameworks/SDL_ttf.framework sudo rm -rf /Library/Frameworks/SDL_mixer.framework sudo rm -rf /Library/Frameworks/SDL_image.framework sudo rm -rf /Library/Frameworks/SDL.framework cd $FAKEROOT/src/SDL_gfx-X.X && sudo make uninstall cd $FAKEROOT/src/mlv-2.0.2 && sudo make uninstall
Supprimez les lignes qui ont été ajoutées dans le fichier .bash_profile au debut du document.
Voilà, on peut maintenant tester l'installation du paquet.
Pour installer le paquet, il vous suffit de cliquer sur le fichier et de suivre les instructions.
Testez maintenant la bibliothèque en tapant les commandes suivantes:
cp -r /usr/share/doc/mlv/examples /tmp cd /tmp/examples/beginner make
Si la compilation se fait sans erreur, c'est que l'installation s'est correctement déroulée.
Vous pouvez maitnenant vérifier que chaque programme s'exécute correctement. Vérifiez aussi tous les autres exemples.
Il n'y a pas d'outil de désinstallation sous mac. Pour désinstaller un paquet, il faut supprimer les fichiers à la main en tapant les commandes:
sudo rm -rf /Library/Frameworks/SDL.framework sudo rm -rf /Library/Frameworks/SDL_image.framework sudo rm -rf /Library/Frameworks/SDL_mixer.framework sudo rm -rf /Library/Frameworks/SDL_ttf.framework sudo rm -rf /usr/include/MLV sudo rm -rf /usr/lib/libMLV* sudo rm -rf /usr/lib/pkgconfig/MLV.pc sudo rm -rf /usr/local/MLV sudo rm -rf /usr/share/MLV sudo rm -rf /usr/share/doc/mlv sudo rm -rf /usr/share/man/man3/MLV_*.h.3 sudo rm -rf /usr/bin/pkg-config sudo rm -rf /usr/bin/x86_64-apple-darwin13.0.0-pkg-config sudo rm -rf /usr/share/aclocal/pkg.m4 sudo rm -rf /usr/share/doc/pkg-config sudo rm -rf /usr/share/man/man1/pkg-config.1
Puis, il faut juste dire au système d'oublier l'existence du paquet en question en tapant la commande:
sudo pkgutil --forget multimedia.library.mlv.mlv_infrastructure.pkg sudo pkgutil --forget multimedia.library.mlv.sdl_framework.pkg