J'ai vu ton autre sujet, viewtopic.php?f=13&t=16619, je pense que tu n'utilises pas les headers fournis par ivy-c (dans /usr/include/Ivy/ ou quelque chose du genre).
«The following statement is not true. The previous statement is true.»
FoolEcho a écrit :J'ai vu ton autre sujet, viewtopic.php?f=13&t=16619, je pense que tu n'utilises pas les headers fournis par ivy-c (dans /usr/include/Ivy/ ou quelque chose du genre).
euh je ne comprend pas tu peux détailler ?
merci pour ta réponse
mon objectif est de pouvoir créer un paquet archlinux pour le programme de pilotage de drone paparazzi
Que tu as besoin d'indiquer à make d'aller chercher les headers de ton paquet ivy-c (ta trace montre un -I /opt/local/include/, mais ce serait plutôt -I /usr/include/Ivy/, ivy ou ivy-c... ou au moyen de pkgconfig selon ce que t'as fourni ton précédent paquet ivy-c). Tu n'as pas indiqué plus d'éléments de ton PKGBUILD ici donc je ne peux pas être beaucoup plus précis.
«The following statement is not true. The previous statement is true.»
sed -i 's|GLIBINC=|GLIBINC=-I/usr/include/Ivy -I/usr/lib/ocaml |' Makefile
Mais après essai, il doit manquer au moins ivy-glib et ivy-tcl (au passage il manque ocaml dans les dépendances de ton PKGBUILD)... à supposer que ton lien direct ne soit pas trop vieux...
Et le passage au svn pose problème à cause du certificat du serveur (auto-signé, du coup ça fait hurler curl et il n'y a pas vraiment moyen de contourner puisque c'est à la charge de l'utilisateur...)...
==> Starting build()...
Package ivy-c was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-c.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-c' found
Package ivy-glib was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-glib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-glib' found
Package ivy-tcl was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-tcl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-tcl' found
ocamldep *.mli *.ml > .depend
Package ivy-c was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-c.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-c' found
Package ivy-glib was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-glib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-glib' found
Package ivy-tcl was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-tcl.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-tcl' found
ocamlc -c ivy.mli
ocamlc -c ivy.ml
File "ivy.ml", line 58, characters 10-23:
Warning 3: deprecated: String.create
Use Bytes.create instead.
File "ivy.ml", line 61, characters 4-34:
Warning 3: deprecated: String.set
Use Bytes.set instead.
File "ivy.ml", line 62, characters 4-39:
Warning 3: deprecated: String.set
Use Bytes.set instead.
File "ivy.ml", line 68, characters 10-23:
Warning 3: deprecated: String.create
Use Bytes.create instead.
File "ivy.ml", line 70, characters 4-69:
Warning 3: deprecated: String.set
Use Bytes.set instead.
ocamlc -c ivyLoop.mli
ocamlc -c ivyLoop.ml
Package ivy-glib was not found in the pkg-config search path.
Perhaps you should add the directory containing `ivy-glib.pc'
to the PKG_CONFIG_PATH environment variable
No package 'ivy-glib' found
cc -Wall -c -fPIC -I /usr/lib/ocaml -I/usr/include/tcl -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include civy.c
civy.c:86:35: error: unknown type name 'IVY_HANDLE'
void cb_write_channel(Channel ch, IVY_HANDLE fd, void *closure)
^
civy.c:90:34: error: unknown type name 'IVY_HANDLE'
void cb_read_channel(Channel ch, IVY_HANDLE fd, void *closure)
^
Makefile:165: recipe for target 'civy.o' failed
make: *** [civy.o] Error 1
effectivement manque ivy-glib et ivy-tcl mais je ne vois pas comment obtenir ces librairies ....
pkgname=ivy-ocaml-svn
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'tk' 'ivy-c-svn' 'ocaml-findlib')
makedepends=('cmake' 'subversion')
source=()
_DESTDIR=$(ocamlfind printconf destdir)
_LDCONF=$(ocamlfind printconf ldconf)
_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk'
prepare() {
cd "${srcdir}"
svn co $_svntrunk
cd "${srcdir}/trunk"
sed \
-e "s|ocamlfind remove|ocamlfind remove -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
-e "s|ocamlfind install|ocamlfind install -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
-i Makefile
}
build() {
cd "${srcdir}/trunk"
make -j1
}
package() {
mkdir -p $pkgdir$_DESTDIR
touch $pkgdir$_DESTDIR/ld.conf
cd "${srcdir}/trunk"
make DESTDIR="${pkgdir}/usr" install
rm $pkgdir$_DESTDIR/ld.conf
}
Il faudra s'occuper du numéro de version aussi vu que leur histoire de certificat oblige à contourner la manière propre d'user du PKGBUILD...
Tu peux t'inspirer de ce PKGBUILD pour ce qui manque: https://aur.archlinux.org/packages/apron-ocaml-svn/ (c'est d'ailleurs lui qui m'a permis de résoudre ce qui coinçait vu que je ne suis pas un as du caml et de la compilation autour ).
EDIT: ... note que j'ai dû passer un -j1 au make sans quoi la compilation foirait chez moi...
«The following statement is not true. The previous statement is true.»
DOWNLOAD: google maps version code
Updated google maps version to 167
-----------------------------------------------
make -C sw/lib/ocaml
make[1]: pkg-config : commande introuvable
OC http.ml
File "http.ml", line 5, characters 5-16:
Error: Unbound module Http_client
Makefile:129 : la recette pour la cible « http.cmo » a échouée
make[1]: *** [http.cmo] Erreur 2
Makefile:139 : la recette pour la cible « libpprz » a échouée
make: *** [libpprz] Erreur 2
FoolEcho a écrit :Voilà une mouture qui compile... À toi de voir si ça te sert:
pkgname=ivy-ocaml-svn
pkgver=0
pkgrel=1
pkgdesc="ivy-ocaml Library"
arch=('i686' 'x86_64')
url="http://www.eei.cena.fr/products/ivy/download/source.html"
license=('GPL3')
depends=('tcl' 'tk' 'ivy-c-svn' 'ocaml-findlib')
makedepends=('cmake' 'subversion')
source=()
_DESTDIR=$(ocamlfind printconf destdir)
_LDCONF=$(ocamlfind printconf ldconf)
_svntrunk='https://svn.tls.cena.fr/svn/ivy/ivy-ocaml/trunk'
prepare() {
cd "${srcdir}"
svn co $_svntrunk
cd "${srcdir}/trunk"
sed \
-e "s|ocamlfind remove|ocamlfind remove -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
-e "s|ocamlfind install|ocamlfind install -destdir $pkgdir/$_DESTDIR -ldconf $pkgdir$_LDCONF|g" \
-i Makefile
}
build() {
cd "${srcdir}/trunk"
make -j1
}
package() {
mkdir -p $pkgdir$_DESTDIR
touch $pkgdir$_DESTDIR/ld.conf
cd "${srcdir}/trunk"
make DESTDIR="${pkgdir}/usr" install
rm $pkgdir$_DESTDIR/ld.conf
}
Il faudra s'occuper du numéro de version aussi vu que leur histoire de certificat oblige à contourner la manière propre d'user du PKGBUILD...
Tu peux t'inspirer de ce PKGBUILD pour ce qui manque: https://aur.archlinux.org/packages/apron-ocaml-svn/ (c'est d'ailleurs lui qui m'a permis de résoudre ce qui coinçait vu que je ne suis pas un as du caml et de la compilation autour ).
EDIT: ... note que j'ai dû passer un -j1 au make sans quoi la compilation foirait chez moi...
Dernière modification par gael le mar. 17 mars 2015, 15:29, modifié 3 fois.
make
------------------------------------------------------------
Building Paparazzi version v5.5_devel-348-g9216228
------------------------------------------------------------
make -C data/maps
-----------------------------------------------
DOWNLOAD: google maps version code
Updated google maps version to 167
-----------------------------------------------
make -C sw/lib/ocaml
OC http.ml
File "http.ml", line 5, characters 5-16:
Error: Unbound module Http_client
Makefile:129 : la recette pour la cible « http.cmo » a échouée
make[1]: *** [http.cmo] Erreur 2
Makefile:139 : la recette pour la cible « libpprz » a échouée
make: *** [libpprz] Erreur 2
J'imagine qu'il s'agit du même type d'erreur qui t'empêchait de compiler ivy-ocaml... à savoir que le Makefile en l'état ne sait pas où trouver les modules manquants.