During a conversation on the #wiiflow channel, a member mentioned having trouble compiling WiiFlow on Mac OS X, which intrigued me, so I set out to deploy this OS in a virtual machine to see what's going on.
Not being particularly keen on installing Xcode, I found a way to get access to the compilation and versioning tools.
Once downloaded and installed, let's get to the serious stuff.
Setting up the environment:
The whole procedure will be done from a terminal.
We start by making sure we're in our user directory:
Then we create the development directory and move into it:
Downloading and extracting libogc and devkitPPC:
Code: Select all
curl -O https://open-wiiflow-mod.googlecode.com/files/libogc_svn_r4902.zip
curl -O https://freefr.dl.sourceforge.net/project/devkitpro/devkitPPC/devkitPPC_r26-osx.tar.bz2
unzip libogc_svn_r4902.zip -d devkitpro
tar -xjf devkitPPC_r26-osx.tar.bz2 -C devkitpro
Creating and saving the environment variables:
Code: Select all
echo 'export PATH=/opt/subversion/bin:$PATH
export DEVKITPRO=/Users/$USER/WiiFlow/devkitpro
export DEVKITPPC=$DEVKITPRO/devkitPPC' >> ~/.profile
. ~/.profile
Creating a working copy of the WiiFlow sources
Code: Select all
svn co https://open-wiiflow-mod.googlecode.com/svn/trunk/ wiiflow-src
Compiling:
We start by moving into the directory of our working copy:
Since Mac OS X doesn't like
-u, we'll need to edit two files so that the compilation goes well.
Code: Select all
sed -i -e 's/@mv -u/@mv/' Makefile
sed -i -e 's/date +%Y%m%d%H%M -u/date -u +%Y%m%d%H%M/' scripts/svnrev.sh
All that's left is to run the compilation:
Going further:
Miscellaneous.
- Cleaning up between two compilations:
- Speeding up compilation by running several processes in parallel with a multi-core processor, here a quad-core:
- Updating the working copy:
- Reverting the changes made to the working copy's files:
- Updating the working copy to revision n:
And finally, a script to place at the root of the working copy:
Code: Select all
#!/bin/bash
make clean
svn revert -R . && svn up
sed -i -e 's/@mv -u/@mv/' Makefile
sed -i -e 's/date +%Y%m%d%H%M -u/date -u +%Y%m%d%H%M/' scripts/svnrev.sh
d1=`date +%s`
make -j5
echo -e "\033[00;31m compilé en $((`date +%s`-$d1))s\033[00m"
Au détour d'une conversation sur le chan #wiiflow, un membre faisait part de ses difficultés à compiler WiiFlow sur Mac OS X, cela m'a intrigué et je me suis donc mis en quête de déployer cet OS dans une machine virtuelle afin de voir ce qu'il en est.
N'étant guère désireux d'installer Xcode, je me suis donc dégoté de quoi avoir accès aux outils de compilation et de versioning.
Une fois téléchargé et installé, passons aux choses sérieuses.
Préparation de l'environnement :
Toute la procédure se fera à partir d'un terminal.
On commence par s'assurer que l'on est bien dans son répertoire utilisateur :
On créé ensuite le répertoire de développement et on se positionne dedans :
Téléchargement et décompression de libogc et devkitPPC :
Code: Select all
curl -O https://open-wiiflow-mod.googlecode.com/files/libogc_svn_r4902.zip
curl -O https://freefr.dl.sourceforge.net/project/devkitpro/devkitPPC/devkitPPC_r26-osx.tar.bz2
unzip libogc_svn_r4902.zip -d devkitpro
tar -xjf devkitPPC_r26-osx.tar.bz2 -C devkitpro
Création et enregistrement des variables d'environnement :
Code: Select all
echo 'export PATH=/opt/subversion/bin:$PATH
export DEVKITPRO=/Users/$USER/WiiFlow/devkitpro
export DEVKITPPC=$DEVKITPRO/devkitPPC' >> ~/.profile
. ~/.profile
Création d'une copie de travail des sources de WiiFlow
Code: Select all
svn co https://open-wiiflow-mod.googlecode.com/svn/trunk/ wiiflow-src
Compilation :
On commence par se positionner dans le répertoire de notre copie de travail :
Mac OS X n'aimant pas les
-u, on va devoir modifier deux fichiers afin que la compilation se déroule bien.
Code: Select all
sed -i -e 's/@mv -u/@mv/' Makefile
sed -i -e 's/date +%Y%m%d%H%M -u/date -u +%Y%m%d%H%M/' scripts/svnrev.sh
Reste plus qu'à lancer la compilation :
Pour aller plus loin :
En Vrac.
- Faire le ménage entre deux compilations :
- Accélérer la compilation en lançant plusieurs processus en parallèle avec un processeur multi-core, ici un quad-core :
- Mettre à jour la copie de travail :
- Annuler les modifications apportées aux fichiers de la copie de travail :
- Mettre à jour la copie de travail à la révision n :
Et pour finir, un script à placer à la racine de la copie de travail :
Code: Select all
#!/bin/bash
make clean
svn revert -R . && svn up
sed -i -e 's/@mv -u/@mv/' Makefile
sed -i -e 's/date +%Y%m%d%H%M -u/date -u +%Y%m%d%H%M/' scripts/svnrev.sh
d1=`date +%s`
make -j5
echo -e "\033[00;31m compilé en $((`date +%s`-$d1))s\033[00m"