Archives du mot-clé Mac

Installer Scilab 5.5.1 sur Mac OS X 10.10 (Yosemite)

Vous avez essayé en vain de lancer Scilab après une mise à jour vers Mac OS X 10.10 ou bien sur une machine récente fournie avec Yosemite. Heureusement, Scilab Enterprises vient tout juste de publier une version spécifique : Scilab 5.5.1 – Mac OS X 10.10.

Installez donc cette version sans hésiter.

Au lancement de Scilab, vous obtiendrez peut être ce message d’erreur :

Pour afficher ce contenu web, installez l’environnement Java Runtime Environment.

Ou bien alors celui-ci :

L’installation de l’ancien moteur d’exécution Java SE 6 est nécessaire pour ouvrir « cette application Java ».

Dans les deux cas, la solution consiste à installer Java pour OS X 2014-001

Voila Scilab devrait fonctionner normalement sur votre Mac.

Note : n’installez pas une version plus récente de Java (7 ou 8), seule la version 6 est prise en charge par Scilab.

Compiler un MEX lié à un Framework avec MATLAB sur Mac OS X

Il est possible de compiler un fichier MEX en le liant à un framework sur Mac OS X. Je vais vous montrer comment en compilant un MEX utilisant les ressources de la bibliothèque SDL2. J’utiliserai MATLAB R2011b et R2014a sur Mac OS X 10.9.3.

Qu’est-ce qu’un framework ?

Un framework est un dossier qui contient des ressources partagées que l’on peut utiliser dans d’autres applications ou codes (lire What are Frameworks?). Dans notre cas, ce sont les bibliothèques partagées et les fichiers d’entêtes qui nous intéressent ici.

Avec MATLAB, l’intérêt est de pouvoir utiliser ces ressources via des fichiers MEX. La difficulté consiste à pourvoir lier ces ressources lors de la compilation avec la commande mex.

Nous prendrons ici l’exemple du framework de la SDL2 (Simple DirectMedia Layer)

Installation du framework de la SDL2

Téléchargez le fichier « SDL2-2.0.3.dmg » (http://www.libsdl.org/download-2.0.php). Une fois téléchargé, cliquez d’une part sur le fichier, ouvrez d’autre part une fenêtre du Finder et rendez-vous dans le dossier « Library > Frameworks ». Cliquez sur le dossier « SDL2.framework » et déplacez le, tout en maintenant le bouton de la souris, dans le dossier Frameworks du Finder :

Installation du framework de la SDL2 sur Mac

La fenêtre suivante apparait :

Mot de passe installation framework sur Mac

Cliquez sur « Authentifier » et entrez votre mot de passe utilisateur.

Voila l’installation du framework est terminée.

Fichier MEX exemple

Nous allons écrire un MEX qui permet d’afficher la version de la SDL et qui fait appel à la fonction SDL_GetVersion.

#include "mex.h"
#include "SDL_version.h"

void mexFunction(int nlhs, mxArray *plhs[],
        int nrhs, const mxArray *prhs[])
       
{
   
    SDL_version ver;
   
    if(nrhs!=0)
        mexErrMsgTxt("Too many input arguments.");
    if(nlhs!=0)
        mexErrMsgTxt("Too many output arguments.");
   
    SDL_GetVersion(&ver);
   
    mexPrintf("SDL version: %u.%u.%u\n", ver.major, ver.minor, ver.patch);

}

Enregistrez ce code dans un fichier getSdlVersion.c

Compilation du MEX

Avec les versions récentes de MATLAB, ici la R2014a :

mex getSdlVersion.c -I/Library/Frameworks/SDL2.framework/Headers LDFLAGS="$LDFLAGS -framework SDL2"

Si vous avez une version plus ancienne de MATLAB et que la commande ci-dessus ne fonctionne pas, essayé ceci :

mex getSdlVersion.c -I/Library/Frameworks/SDL2.framework/Headers /Library/Frameworks/SDL2.framework/SDL2

Note : il y a deux lignes de compilation différentes car Apple a remplacé au fil du temps le compilateur GCC par Clang. Tout dépend donc de la version de MATLAB et de Mac OS X.

Si la compilation réussi, vous obtiendrez un fichier getSdlVersion.mexmaci64 à utiliser comme ceci :

>> getSdlVersion
SDL version: 2.0.3

Conclusion

Vous devriez maintenant pouvoir compiler vos MEX sur Mac en les liant à un framework (voire plusieurs frameworks). Si vous rencontrez des difficultés, n’hésitez pas à venir poser vos questions sur le forum MATLAB.

Récupérer la désignation du CPU en ligne de commandes avec Windows, Linux et Mac OS X

Il y a quelques temps déjà, j’avais posté une série de trois billets sur le thème de l’identification de processeur avec MATLAB (1, 2 et 3) dans laquelle j’exposais plusieurs méthodes plus ou moins fiables et portables.

J’ai récemment appris une méthode permettant de récupérer le modèle du processeur avec Mac OS X et, de fil en aiguille, avec Windows. J’ai donc complété le deuxième billet de la série en conséquence.

Voici synthétisées ici, les trois lignes de commandes pour les trois systèmes d’exploitation que l’on trouve majoritairement sur nos machines.

L’information renvoyée est du type :

Intel(R) Core(TM) i5-3210M CPU @ 2.50GHz

Bien entendu, il est possible d’extraire d’autres informations à propos du CPU en utilisant des variantes de ces commandes.

Windows

Avec Windows, il suffit d’utiliser le système de gestion WMI :

for /f "tokens=2 delims==" %A in ('wmic cpu get name /value') do @(echo %A)

Testé avec Windows 7.

Linux

Avec Linux, il suffit d’analyser le contenu de /proc/cpuinfo :

grep -m 1 "model name" /proc/cpuinfo | cut -d: -f2

Testé avec Xubuntu 12.04.

Mac OS X

Avec Mac OS X, il suffit d’utiliser l’interface sysctl :

sysctl machdep.cpu | grep brand_string | cut -d: -f2

Testé avec Mac OS X 10.9