Envoyé par : guillaume
Date : 16/04/2007 15:13
Toujours dans l'optique de programmer un plugin vidéo, je suis face à un problème :
où puis-je trouver un exemple complet de la COMPILATION d'un plugin (écriture du configure.in ou du makefile.am par exemple) ?
Car les plugins fournis par mozilla/modules/plugin/samples sont intéressants mais ils ne fournissent QUE le makefile.in.
J'aimerais connaitre les règles à respecter dans l'écriture d'un tel makefile.in.
Pour ma part, j'ai généré un configure.in à l'aide d'autoscan, puis réalisé les opérations standards de compilation (aclocal, autoconf, autoheader, ./configure, make).
Tout se passe bien jusqu'au ./configure. Puis, l'appel à "make" (utilisant donc le makefile.in livré par mozilla/modules/plugin/samples ) me donne :
Makefile:27: ../../../../../../config/autoconf.mk: Aucun fichier ou >répertoire de ce type
Makefile:51: config/rules.mk: Aucun fichier ou répertoire de ce type
make: *** Pas de règle pour fabriquer la cible « config/rules.mk ». >Arrêt.
Quels sont ces fichiers ? Sont-ils necessaires à la compilation de la "shared library" contenant mon plugin et mon composant XPCOM ?
Merci pour vos réponses.
Envoyé par : Paul Rouget
Date : 16/04/2007 15:35
Utilise le processus de compilation de Firefox. Crée un répertoire foobar par exemple dans le répertoire extensions, ensuite, compile en ajoutant l'option '--enable-extensions=default,foobar' et dans ton répertoire foobar, mets ton Makefile.in
Envoyé par : guillaume
Date : 16/04/2007 16:26
J'ai du mal à saisir : il faut ajouter cette option lors de la compilation de mon plugin+composant XPCOM ?
L'option "enable..." est à ajouter à quel moment ? Lors de l'appel du make ? Du ./configure ?
Envoyé par : guillaume
Date : 17/04/2007 14:31
J'ai suivi vos indications. J'ai crée un dossier "simple" dans le dossier extensions de Xulrunner. Dans ce dossier, on trouve le makefile.in, les sources, le .mozconfig. J'ai bien ajouté l'option "--enable-extensions=default,simple".
Mais j'ai toujours le même message lors de l'appel de make :
>Makefile:27: ../../../../../../config/autoconf.mk: Aucun fichier ou >répertoire de ce type >Makefile:51: config/rules.mk: Aucun fichier ou répertoire de ce type >make: *** Pas de règle pour fabriquer la cible « config/rules.mk ». >Arrêt.
J'ai cherhcé et je ne dispose pas de ces fichiers dans ma machine. Sont-ils necessaires à la compilation ? (mozilla ou pas)
Si oui, où les trouver ?
Merci pour vos réponses
Envoyé par : Paul Rouget
Date : 17/04/2007 15:17
Adapte le Makefile.in pour que le DEPTH pointe au bon endroit. Certainement:
DEPTH = ../..
Envoyé par : guillaume
Date : 17/04/2007 17:29
Le problème, c'est que mon plugin doit fonctionner sous Xulrunner.
Or, l'appel à autoconf.mk et rules.mk implique que nous compilions dans le repertoire d'une version de Mozilla contenant un dossier "config", qui lui-même contient une arborescence de fichiers .mk utilisés entre eux pour la compilation (exemple : rules.mk a besoin de config.mk qui a besoin de insure.mk qui a besoin ...etc...)
J'ai donc téléchargé une version de Mozilla présentant cette arborescence : Mozilla v.1.5.0.7. Et j'ai essayé de compiler les exemples de plugins (présents dans /mozilla/modules/plugin/tools/sdk/samples), mais il subsiste toujours des problèmes liés aux dépendances entre tous ces fichiers .mk...
En bref, je trouve tout ce procédé fort complexe : il n'est vraiment pas possible de compiler un composant plugin+XPCOM "normalement" à l'aide d'un makefile.in ? Connaissez-vous un tutorial expliquant la compilation d'un plugin ? (developper.mozilla.org explique plutôt la compilation de mozilla, et non d'un plugin !) Le developpement de plugin est-il si peu pratiqué ?!
J'ai déjà developpé des composants XPCOM, et la compilation était fort simple : il suffisait de partir du template du makefile. Il n'y a pas de templates de makefile pour la compilation de plugin ?
Je suis vraiment perdu sur ce point : pouvez-vous m'aider ?
Envoyé par : Paul Rouget
Date : 17/04/2007 18:09
Regarde dans le répertoire extensions de XulRunner pour voir comment fonctionnent les autres extensions, particulièrement celles en C++. À mon avis, c'est vraiment la méthode la plus propre et la plus simple car le processus de build gère un paquet de trucs à ta place.
Je compile moi même des plugins dans un répertoire extension de xulrunner (celui de la branch 1_8, ton Mozilla v.1.5.0.7 est completement outdated). Je fais mon Makefile.in en suivant exactement l'architecture des Makefile.in présents dans les sources de xulrunner.
Ça ressemble à ça:
REQUIRES += xpcom \ caps \ plugin \ dom \ java \ layout \ gfx \ widget \ necko \ content \ string \ mimetype \ exthandler \ $(NULL) EXTRA_DSO_LDOPTS = \ -lXi -lXext -lX11 -lm -lXt `pkg-config --libs gtk+-2.0 gthread-2.0` \ $(MOZ_COMPONENT_LIBS) \ $(NULL) CXXFLAGS += `pkg-config --cflags gtk+-2.0`
Envoyé par : guillaume
Date : 18/04/2007 10:55
Merci beaucoup pour toutes ces réponses !
Donc, pour récapituler, pour compiler un composant plugin/XPCOM, il faut :
C'est bien ça ? (je n'avais pas saisi qu'il fallait re-compiler Xulrunner complètement afin de compiler mon plugin) Ai-je bien saisi l'idée ?
Merci encore pour ces reponses !
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.