mercredi, décembre 17, 2003

Compilation de la librairie ming (librairie flash) pour python

 


Ming est une librairie de génération de fichier flash.


[rédigé pour les versions suivantes : ming 0.2a et python2.2.1]
A.préalable
1.installer une plateforme GNU pour windows, voir article précédent
2.downloader la librairie ming (http://ming.sourceforge.net/)
3.la décompresser dans un repertoire de travail ex c:\ming


B.creation des librairies pour unix de python a partir des librairies windows
1.localiser le fichier python22.dll sur le syteme windows (en général dans \system32\)
2.copier la dll dans c:\ming\py_ext
3.lancer un mode console (ne pas oublier davoir régler le path pour la plateforme GNU)
4.se placer dans le repertoire c:\ming\py_ext
5.utiliser pexports pour créer le fichier .def







Code:
pexports python22.dll >python22.def

6.utiliser dlltool pour créer le fichier .a






Code:
dlltool --dllname python22.dll --def python22.def --output-lib libpython22.a



C.paramétrage de la compilation de ming
(les fichiers makefile sont tres mal fait, on les réorganise pour les utiliser dans le cas qui nous interresse)
1.modifier le fichier makefile dans c:\ming\src

    *enlever la ligne:





    Code:
    ranlib libming.a  # bsd requires this?

2.modifier le fichier makefile dans c:\ming\py_ext

    *modifier le parametre PYINCDIR:





    Code:
    PYINCDIR = c:\python22\include


    *dans la section mingc.pyd, remplacer par:






    Code:
    dllwrap --dllname mingc.pyd --driver-name gcc --def mingc.def -o mingc.pyd ming_wrap.o -s --entry _DllMain@12 --target=i386-mingw32 -L. -lpython22 -lming



D.compilation
1.en mode console se placer dans c:\ming
2.compiler la librairie static libming.a avec
make static
3.copier le fichier c:\ming\libming.a dans c:\py_ext
4.se placer dans c:\ming\py_ext
5.compiler la librairie dynamique pour python mingc.pyd avec
make mingc.pyd


E.deploiement et test
1.copier le fichier mingc.pyd de c:\ming\py_ext dans c:\python22\DLLs
2.lancer python en mode console et taper
import mingc
si aucun message d'erreur n'apparait, la librairie est alors installée

Aucun commentaire: