Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » [GNU/Linux] P7, pour des transferts à repasser
Cakeisalie5 Hors ligne Membre de CreativeCalc Points: 1869 Défis: 10 Message

[GNU/Linux] P7, pour des transferts à repasser

Posté le 22/08/2016 12:13

Ces utilitaires ne sont actuellement disponibles que sur GNU/Linux !
La cross-compilation vers MS-Windows est en cours de préparation ; seulement, il y a pas mal de détails à régler,
notamment la manière de gérer les appareils série. Donc c'est pas pour tout de suite.


Le projet P7 est constitué d'utilitaires de communication destinés à être utilisés avec des calculatrices CASIO fx (Graph). Ces utilitaires permettent d'interagir avec les systèmes de fichiers présents sur la calculatrice (envoi et réception de fichiers, inventaire des fichiers présents sur la calculatrice, copie, suppression, ...), d'afficher l'écran en temps réel, et de sauvegarder/remplacer les composants du système présents sur la machine.

Pour ne pas utiliser les commandes en root (administrateur), n'oubliez pas de faire :
sudo usermod -a -G uucp <votre nom d'utilisateur>
Puis déconnectez-vous/reconnectez-vous (pas besoin de redémarrer votre ordinateur).

Découvrez comment construire, installer et utiliser ces utilitaires ici.
Des notes ici. - Des sources là.
Ceci est un topic pour les annonces, les retours divers (problèmes rencontrés, ...) et les demandes de fonctionnalités.


Pour les réponses, notez que le topic était originellement consacré à l'utilitaire P7, et non au projet, qui n'existait pas à l'époque.


Précédente 1, 2, 3 ··· 7, 8, 9, 10, 11 Suivante
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 18/02/2022 19:06 | #


Et là pour le code. https://gitea.planet-casio.com/cake
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 18/02/2022 19:40 | #


Ah d'acc merci !

Il y a juste la page github https://github.com/cakeisalie5/p7-packaging (référencée depuis ici : https://p7.planet-casio.com/) qui n'existe plus, et j'ai ce qu'il faut grâce à vos messages, merci

Ajouté le 19/02/2022 à 22:36 :
Bon, dans un premier temps je vais essayer d'installer ça correctement sur un environnement Linux "normal", déjà que Termux ne supporte pas les stockages USB externes (je sais pas ce que ça donnera avec libp7 haha).

Lors du make de libp7, libusb.h est introuvable (bien que j'ai le package libusb-1.0-0). J'installe donc libusb-1.0-0-dev, et change dans le fichier src/stream/libusb.c l'import "include <libusb.h>" en "include <libusb-1.0/libusb.h>" (eh oui, l'entête se trouve bien maintenant à '/usr/include/libusb-1.0/libusb.h').

Et là, patratra : aucun appel aux fonctions de libusb ne fonctionne : "référence indéfinie vers « libusb_close »" etc. En checkant l'entête, les fonctions sont bien déclarées (mais quid de définies ?) :
void LIBUSB_CALL libusb_close(libusb_device_handle *dev_handle);


Bref,que faire ?
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 19/02/2022 22:40 | #


Tu ne devrais pas avoir à ajouter le libusb-1.0/ dans les chemins d'include, à la place libusb te fournit les flags qui permettent d'accéder directement aux headers :

% pkg-config --cflags --libs libusb-1.0
-I/usr/include/libusb-1.0 -lusb-1.0

Comme tu peux le voir il y a aussi -lusb-1.0 là-dedans, ce qui est probablement la réponse à ton "référence indéfinie".

Si ma mémoire est bonne libp7 doit déjà utiliser pkg-config pour obtenir ces flags :

https://gitea.planet-casio.com/cake/libp7/src/branch/master/Makefile.vars#L34
https://gitea.planet-casio.com/cake/libp7/src/branch/master/Makefile.vars#L91
https://gitea.planet-casio.com/cake/libp7/src/branch/master/Makefile.vars#L104

Commence par là, ie. déterminer si oui ou non ils sont bien sur la ligne de commande.
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 19/02/2022 23:42 | #


Ah oui d'accord, j'ai réussi à paramétrer pkg-config comme il faut (me semble-t-il), et plus de problème avec libusb \o/

Le make prend pas mal de temps, surtout pour les commandes a2x (du package asciidoc). D'ailleurs plusieurs fois il s'arrête avec une erreur 1, et j'ai découvert qu'en relançant simplement (sans clean), la même commande a2x fonctionne cette fois-ci.
Mais là, j'ai fait ça 3 fois pour la même commande a2x (make: *** [Makefile:225 : man/man3/p7_createdir.3] Erreur 1). Le debug n'affiche rien de plus révélant.

Sûrement que je passe à côté d'un truc, encore une fois ?

Déso, c'est rare que je fasse des make, je ne m'y connais pas trop dès qu'il s'agit d'erreurs :sweat_smile:

Ajouté le 20/02/2022 à 00:50 :
J'ai continué, et après 5 tentatives de a2x sur ce fichier là le make est finalement passé au suivant. Mais bon ça ne fait que reporter le problème (et je pense que ce problème n'est pas voulu quand même...). En tout cas le make bloque maintenant sur une autre instruction a2x, et il se fait tard donc bonne nuit

Ajouté le 20/02/2022 à 00:54 :
Ah ! Bonne nouvelle ! Le make de libp7 vient tout juste de finir !
Et ça m'a l'air de fonctionner (j'ai fait make install, et libp7-config --help me renvoie ce à quoi on pourrait s'attendre).
Un problème sans solution est un problème mal posé — Albert Einstein
Cakeisalie5 Hors ligne Membre de CreativeCalc Points: 1869 Défis: 10 Message

Citer : Posté le 20/02/2022 00:57 | #


a2x c'est de la production de manpages, ça se désactive avec l'option --no-manpages quand t'appelles le ./configure

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !
Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 20/02/2022 00:59 | #


Oui d'accord, mais rater plusieurs fois la création d'une page puis la réussir sans avoir rien changé me paraît bizarre

Ajouté le 20/02/2022 à 11:16 :
Nous voilà donc au moment de compiler p7 : impossible de trouver libp7.h, alors que j'ai
$ pkg-config --cflags --libs libp7
-I/usr/include/x86_64-linux-gnu/libp7-3.0 -lp7
$ libp7-config --cflags --libs
-I/usr/include/x86_64-linux-gnu/libp7-3.0
-L/usr/lib/x86_64-linux-gnu -lp7

Et l'en-tête est bien là : '/usr/include/x86_64-linux-gnu/libp7-3.0/libp7.h'
J'ai cru comprendre que c'était une mauvaise idée de mettre un chemin dans les include, donc qu dois-je faire ?
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 20/02/2022 20:13 | #


La première chose comme précédemment serait d'inspecter les commandes de compilation pour s'assurer que ces flags en sont bien absents, puis regarder ce qui se passe durant la configuration pour comprendre pourquoi ils ne sont pas inclus.
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 26/02/2022 23:22 | #


En fait la première fois le problème s'était simplement réglé simplement en installant pkg-config (je ne savais pas qu'il le fallait).

Je pense que les inclusions des sources nécessaires à la compilation se trouvent
https://gitea.planet-casio.com/cake/p7utils/src/branch/master/Makefile.vars#L122
mais je n'y connais vraiment pas grand chose, et ne sais donc pas exactement comment ça fonctionne (et encore moins ce que je peux modifier)...

Si quelqu'un voudrait bien m'aider, une fois encore
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 27/02/2022 10:19 | #


Essaie avec make MAKE_FULL_LOG=1 histoire de voir les commandes déjà. Oui tu as raison c'est bien là, mais du coup il faut regarder comment LIBS_$1 (qui dont contenir "libp7") est définie, ce qui est ici et renvoie ici, et là oups.

En fait Cake à une époque a commencé à remplacer certains de ses outils par la libcasio, mais ça n'a jamais fini AFAIK. Remplace le dernier par libp7 et réessaie.
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 27/02/2022 11:51 | #


Tout ça me laisse assez perplexe, la version ici : https://gitea.planet-casio.com/cake/p7utils/src/branch/master/
possède des include <libcasio.h> , donc si le remplacement par libcasio n'a jamais été fini je pense pas que ça marcherait (j'ai tout de même essayé d'installer libcasio, sans succès de nouveau). Changer les libcasio par libp7 a un peu changer l'output du make, mais toujours bloqué...

J'utilise ceux envoyés par Breizh : https://p7.planet-casio.com/pub/p7utils-3.0.tar.gz https://p7.planet-casio.com/pub/libp7-3.0.tar.gz
libp7-3.0 c'est installé comme il faut, p7utils-3.0 pas (c'est là où j'ai l'erreur avec le link de libp7). J'ai mis dans le config make-full-log, et j'obtiens ça
gcc -c -o obj/p7screen/main.o src/p7screen/main.c -Wall -Wextra -Wno-unused-macros -Wno-vla -Wshadow -Wwrite-strings -Wredundant-decls -Wformat -Wformat-nonliteral -Wformat-security -Wimplicit-function-declaration -Wdate-time -Wmissing-prototypes -Wreturn-type -Wpointer-arith -Wstack-protector -Wno-unused-parameter -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8"   -D BIN="p7screen"
src/p7screen/main.c:12:10: fatal error: libp7.h: Aucun fichier ou dossier de ce type

Dans la ligne de commande gcc je ne vois aucune info à propos d'un possible libp7, donc ça semble logique de voir l'erreur s'afficher.

Il me manquait encore libg1m, nécessaire pour l'exécution du programme p7utils (pas pour le make), je me suis dit que j'allais l'installer mais, encore une erreur...

Bref je pense pas que ce soit pour moi, p7utils... Désolé de t'avoir embêté avec ça.
Ah oui et fun fact: j'ai trouvé aussi libp7 sur https://gitea.planet-casio.com/Lephenixnoir/libp7, je ne m'y attendais pas
Entre les nombreuses erreurs de compilations et les dépendances qui redirigent vers des pages qui n'existent plus, je pense que je vais passer mon tour cette fois-ci...
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 27/02/2022 12:26 | #


Ok je ne me souvenais pas que tu utilisais ces archives-là. Comme tu as pu le voir il en existe pas mal de versions, et mon dépôt est juste un fork où j'ai remplacé le système de build que Cake trouvait trop chaotique par un CMake simple dans l'espoir de le motiver à reprendre un peu de service (sans succès, malheureusement).

Bref, je te montre la procédure en entier et comme ça on va peut-être éclairer un peu la question. J'ai déjà p7 installé sur mon ordinateur, donc je vais installer dans /usr/local pour ne pas gêner. Je soupçonne que sur Android tu devras aussi choisir un dossier d'installation autre que /usr donc ce sera pas plus mal de te montrer comment.

Après avoir extrait l'archive et vérifié que toutes les dépendances pour libp7 sont présentes, je configure. Le "préfixe" représente le dossier d'installation final (puisqu'il apparaît en préfixe du chemin de tous les fichiers installés).

libp7-3.0 % ./configure --make-full-log --prefix=/usr/local
Configuration loaded, you can make now.

Ensuite, je compile normalement :

libp7-3.0 % make
mkdir -p obj/core
gcc -c -o obj/core/devices.o src/core/devices.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/core/_init.o src/core/_init.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/core/init.o src/core/init.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/core/log.o src/core/log.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/core/stream.o src/core/stream.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/core/strerror.o src/core/strerror.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/core/version.o src/core/version.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
mkdir -p obj/packet
gcc -c -o obj/packet/ack.o src/packet/ack.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/packet/command.o src/packet/command.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/packet/data.o src/packet/data.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/packet/recv.o src/packet/recv.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/packet/send.o src/packet/send.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/packet/special.o src/packet/special.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
mkdir -p obj/protocol
gcc -c -o obj/protocol/backup.o src/protocol/backup.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/copy.o src/protocol/copy.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/createdir.o src/protocol/createdir.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/delete.o src/protocol/delete.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/getfreemem.o src/protocol/getfreemem.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/getscreen.o src/protocol/getscreen.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/list.o src/protocol/list.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/optimize.o src/protocol/optimize.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/request.o src/protocol/request.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/reset.o src/protocol/reset.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/send.o src/protocol/send.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/sendexe.o src/protocol/sendexe.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/protocol/server.o src/protocol/server.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
mkdir -p obj/stream
gcc -c -o obj/stream/file.o src/stream/file.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/stream/libusb.o src/stream/libusb.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/stream/streams.o src/stream/streams.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/stream/tty_usb.o src/stream/tty_usb.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/stream/windows.o src/stream/windows.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
mkdir -p obj/utils
gcc -c -o obj/utils/ascii.o src/utils/ascii.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/utils/checksum.o src/utils/checksum.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/utils/escape.o src/utils/escape.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/utils/filebuffer.o src/utils/filebuffer.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -c -o obj/utils/validate.o src/utils/validate.c -I ./include -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -fPIC -O2  -D LOGLEVEL="ll_none" -D INIT_TRIES="5" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D LICENSE="GPLv2" -D VERSION="3.0" -I/usr/include/libusb-1.0
gcc -o libp7.so.3 obj/core/devices.o obj/core/_init.o obj/core/init.o obj/core/log.o obj/core/stream.o obj/core/strerror.o obj/core/version.o obj/packet/ack.o obj/packet/command.o obj/packet/data.o obj/packet/recv.o obj/packet/send.o obj/packet/special.o obj/protocol/backup.o obj/protocol/copy.o obj/protocol/createdir.o obj/protocol/delete.o obj/protocol/getfreemem.o obj/protocol/getscreen.o obj/protocol/list.o obj/protocol/optimize.o obj/protocol/request.o obj/protocol/reset.o obj/protocol/send.o obj/protocol/sendexe.o obj/protocol/server.o obj/stream/file.o obj/stream/libusb.o obj/stream/streams.o obj/stream/tty_usb.o obj/stream/windows.o obj/utils/ascii.o obj/utils/checksum.o obj/utils/escape.o obj/utils/filebuffer.o obj/utils/validate.o -shared -lusb-1.0  -Wl,-soname,libp7.so.3 -e __libp7_version -Wl,-z,relro -Wl,-z,combreloc -Wl,-z,defs
mkdir -p man/man1
a2x -f manpage -D man/man1 doc/libp7-config.1.txt 2>/dev/null
mkdir -p man/man3
a2x -f manpage -D man/man3 doc/p7_list.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_error.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_copy.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_strerror.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_getscreen.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_finit.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_sinit.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_reqfile.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_sendfile.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_backup_bootfile.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_delete.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_getfreemem.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_optimize.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/libp7.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_createdir.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_sendexe.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_buffer.3.txt 2>/dev/null
a2x -f manpage -D man/man3 doc/p7_reset.3.txt 2>/dev/null

Puis, bien sûr, il faut installer tous ces fichiers dans /usr/local :

libp7-3.0 % sudo make install
[sudo] password for el:
install -m 755 -d "/usr/local/bin"
tools/write-config --name=p7 --version=3.0 --maintainer="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" --incdir="/usr/local/include/libp7-3.0" --libdir="/usr/local/lib" >"/usr/local/bin/libp7-config" && chmod 755 "/usr/local/bin/libp7-config"
install -m 755 -d "/usr/local/lib/pkgconfig"
tools/write-pkg-config --name=p7 --version=3.0 --description="Library for communicating with CASIO calculators" --incdir="/usr/local/include/libp7-3.0" --libdir="/usr/local/lib" >"/usr/local/lib/pkgconfig/libp7.pc" && chmod 644 "/usr/local/lib/pkgconfig/libp7.pc"
install -m 755 -d "/usr/local/lib"
install -m 755 -t "/usr/local/lib"  libp7.so.3
ln -sf libp7.so.3 "/usr/local/lib/libp7.so"
install -m 755 -d  "/usr/local/include/libp7-3.0/./"  "/usr/local/include/libp7-3.0/libp7/"
install -m 644 ./include/libp7/packetio.h "/usr/local/include/libp7-3.0/libp7/packetio.h"
install -m 644 ./include/libp7/buffer.h "/usr/local/include/libp7-3.0/libp7/buffer.h"
install -m 644 ./include/libp7/server.h "/usr/local/include/libp7-3.0/libp7/server.h"
install -m 644 ./include/libp7/config.h "/usr/local/include/libp7-3.0/libp7/config.h"
install -m 644 ./include/libp7/stream.h "/usr/local/include/libp7-3.0/libp7/stream.h"
install -m 644 ./include/libp7.h "/usr/local/include/libp7-3.0/libp7.h"
install -m 755 -d "/usr/local/share/man/man1"
install -m 644 -t "/usr/local/share/man/man1" ./man/man1/libp7-config.1
gzip -f "/usr/local/share/man/man1/libp7-config.1"
install -m 755 -d "/usr/local/share/man/man3"
install -m 644 -t "/usr/local/share/man/man3" ./man/man3/p7_list.3 ./man/man3/p7_error.3 ./man/man3/p7_copy.3 ./man/man3/p7_strerror.3 ./man/man3/p7_getscreen.3 ./man/man3/p7_finit.3 ./man/man3/p7_sinit.3 ./man/man3/p7_reqfile.3 ./man/man3/p7_sendfile.3 ./man/man3/p7_backup_bootfile.3 ./man/man3/p7_delete.3 ./man/man3/p7_request.3 ./man/man3/p7_backup_rom.3 ./man/man3/p7_init.3 ./man/man3/p7_backup_boot.3 ./man/man3/p7_backup_casiowin_entry.3 ./man/man3/p7_send.3 ./man/man3/p7_exit.3 ./man/man3/p7_getfreemem.3 ./man/man3/p7_optimize.3 ./man/man3/libp7.3 ./man/man3/p7_createdir.3 ./man/man3/p7_sendexe.3 ./man/man3/p7_cominit.3 ./man/man3/p7_buffer.3 ./man/man3/p7_reset.3 ./man/man3/p7_backup_romfile.3
gzip -f "/usr/local/share/man/man3/p7_list.3" "/usr/local/share/man/man3/p7_error.3" "/usr/local/share/man/man3/p7_copy.3" "/usr/local/share/man/man3/p7_strerror.3" "/usr/local/share/man/man3/p7_getscreen.3" "/usr/local/share/man/man3/p7_finit.3" "/usr/local/share/man/man3/p7_sinit.3" "/usr/local/share/man/man3/p7_reqfile.3" "/usr/local/share/man/man3/p7_sendfile.3" "/usr/local/share/man/man3/p7_backup_bootfile.3" "/usr/local/share/man/man3/p7_delete.3" "/usr/local/share/man/man3/p7_request.3" "/usr/local/share/man/man3/p7_backup_rom.3" "/usr/local/share/man/man3/p7_init.3" "/usr/local/share/man/man3/p7_backup_boot.3" "/usr/local/share/man/man3/p7_backup_casiowin_entry.3" "/usr/local/share/man/man3/p7_send.3" "/usr/local/share/man/man3/p7_exit.3" "/usr/local/share/man/man3/p7_getfreemem.3" "/usr/local/share/man/man3/p7_optimize.3" "/usr/local/share/man/man3/libp7.3" "/usr/local/share/man/man3/p7_createdir.3" "/usr/local/share/man/man3/p7_sendexe.3" "/usr/local/share/man/man3/p7_cominit.3" "/usr/local/share/man/man3/p7_buffer.3" "/usr/local/share/man/man3/p7_reset.3" "/usr/local/share/man/man3/p7_backup_romfile.3"

C'est difficile à voir avant l'installation, mais c'est important parce que d'une part pkg-config va chercher un certain fichier libp7.pc dans un nombre limité de répertoires et donc il faut l'installer au bon endroit (au lieu de le laisser dans le dossier source), et d'un autre côté ce libp7.pc donne comme dossier d'include exactement /usr/local/include/libp7-3.0 en se basant sur ce qu'on a annoncé dans --prefix.

Voilà, pour ta culture, ce que le fichier libp7.pc dit exactement. Comme tu peux le voir il est essentiel que les en-têtes soient bien là :

% cat /usr/local/lib/pkgconfig/libp7.pc
includedir=/usr/local/include/libp7-3.0
libdir=/usr/local/lib

Name: libp7
Description: Library for communicating with CASIO calculators
Version: 3.0
Libs: -L${libdir} -lp7
Cflags: -I${includedir}

Note, et je soupçonne que c'est là que tu as ton problème précédent, que si tu demandes à pkg-config une lib qui n'existe pas, il affiche juste un message d'erreur sur stderr, que le Makefile de Cake ignore ; autrement dit ça passera inaperçu et tu n'auras juste pas de flags.

# Exemple quand ça marche :
% pkg-config libp7 --cflags
-I/usr/local/include/libp7-3.0

# Exemple quand ça marche pas (2>/dev/null ignore l'erreur) :
% pkg-config truc-qui-existe-pas --cflags 2>/dev/null
# Rien ! Ça passe inaperçu !

Une fois que c'est installé, on peut faire pareil avec p7utils :

p7utils-3.0 % ./configure --make-full-log --prefix=/usr/local
Configuration loaded, you can make now.

De même, on compile, sans problème puisque libp7.pc est bien installé :

p7utils-3.0 % PKG_CONFIG_PATH=/usr/local/lib/pkgconfig make
mkdir -p obj/p7
gcc -c -o obj/p7/args.o src/p7/args.c -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8"  -I/usr/local/include/libp7-3.0  -D BIN="p7"
gcc -c -o obj/p7/dump.o src/p7/dump.c -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8"  -I/usr/local/include/libp7-3.0  -D BIN="p7"
gcc -c -o obj/p7/main.o src/p7/main.c -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8"  -I/usr/local/include/libp7-3.0  -D BIN="p7"
src/p7/main.c: In function ‘sendfile_display’:
src/p7/main.c:134:28: warning: ‘%02u’ directive writing between 2 and 8 bytes into a region of size 7 [-Wformat-overflow=]
  134 |         sprintf(&buf[43], "%02u.%02u", percent / 100, percent % 100);
      |                            ^~~~
src/p7/main.c:134:27: note: directive argument in the range [0, 42949672]
  134 |         sprintf(&buf[43], "%02u.%02u", percent / 100, percent % 100);
      |                           ^~~~~~~~~~~
src/p7/main.c:134:27: note: directive argument in the range [0, 99]
src/p7/main.c:134:9: note: ‘sprintf’ output between 6 and 12 bytes into a destination of size 7
  134 |         sprintf(&buf[43], "%02u.%02u", percent / 100, percent % 100);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -o p7 obj/p7/args.o obj/p7/dump.o obj/p7/main.o -Wl,-z,relro -L/usr/local/lib -lp7
mkdir -p obj/p7screen
gcc -c -o obj/p7screen/args.o src/p7screen/args.c -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8"  -I/usr/local/include/libp7-3.0 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT  -D BIN="p7screen"
gcc -c -o obj/p7screen/main.o src/p7screen/main.c -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8"  -I/usr/local/include/libp7-3.0 -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT  -D BIN="p7screen"
gcc -o p7screen obj/p7screen/args.o obj/p7screen/main.o -Wl,-z,relro -L/usr/local/lib -lp7 -lSDL -lpthread

Le PKG_CONFIG_PATH=/usr/local/lib/pkgconfig indique à pkg-config où chercher libp7.pc. Pour moi c'est nécessaire parce que sinon il va chercher l'original dans /usr, pas celui que je viens d'installer. Il n'est pas nécessaire pour toi puisque pkg-config p7 --cflags marche déjà très bien de ton côté, tu peux juste taper make.

Et enfin on installe de la même façon :

p7utils-3.0 % sudo make install
[sudo] password for el:
install -m 755 -d "/usr/local/share/man/man1"
install -m 644 -t "/usr/local/share/man/man1" ./man/man1/p7.1
gzip -f "/usr/local/share/man/man1/p7.1"
install -m 755 -d "/usr/local/bin"
install -m 755 -t "/usr/local/bin" p7
install -m 755 -d "/usr/local/share/man/man1"
install -m 644 -t "/usr/local/share/man/man1" ./man/man1/p7screen.1
gzip -f "/usr/local/share/man/man1/p7screen.1"
install -m 755 -d "/usr/local/bin"
install -m 755 -t "/usr/local/bin" p7screen

Ça te paraît plus clair ?
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 27/02/2022 16:14 | #


Avant que tu ne lises tout, sache que j'ai finalement réussi à installer p7utils, un ***grand*** merci à toi

-----------------------------------------------------------------------
Oui d'accord, je dois dire alors que c'est à peu près ce que je faisais déjà haha

Donc je me suis dis que j'allais faire exactement la même chose que toi, histoire de ne pas créer plus de soucis (make-full-log & --prefix=/usr/local). J'ai réinstallé libp7, sans problème (j'ai dû relancer le make plusieurs fois car j'obtenais quelques Erreur 1 sur les commandes a2x).

Vient au tour de p7utils, j'arrive à la même étape qu'avant et j'obtiens exactement la même erreur que dans mon précédant message.
D'ailleurs je trouve bizarre le fait qu'il y ait 3 espaces, au lieu des includes nécessaires (libp7 et SDL).

Je recherche les potentielles erreurs, et finalement j'en trouve une : j'avais le package libsdl2-dev et non libsdl1.2-dev, donc j'ai SDL2.h et non SDL.h.
Alors peut-être que refaire le config puis make aurait marché maintenant ce problème réglé, mais j'ai exécuté plutôt le code qui bloquait directement (sans passer par le make) :
$ gcc -c -o obj/p7screen/main.o src/p7screen/main.c -Wall -Wextra -Wno-unused-macros -Wno-vla -std=gnu11 -O2 -D NAME="p7utils" -D VERSION="3.0" -D MAINTAINER="Thomas \"Cakeisalie5\" Touhey <thomas@touhey.fr>" -D DEFAULT_STORAGE="fls0" -D DEFAULT_ZOOM="8" -I/usr/local/include/x86_64-linux-gnu/libp7-3.0 -I/usr/include/SDL -D BIN="p7screen"

Cette fois-ci, ça marche ! Je continue avec make et finalement la compilation se termine. J'installe et teste p7. \o/

Ceci m'amène à plusieurs questions :
- J'ai cru lire quelque part que libg1m était nécessaire, mais pour quel type de manipulation de p7 ?
- J'aimerais désinstaller les fichiers de développements installés (~100 Mo), est-ce bien ceux-ci : sdl, asciidoc, peut-être binutils ?
- Maintenant que p7utils a correctement été compilé+installé, est-il nécessaire de garder libp7 ?
- Si, pour une raison quelconque, je voudrais désinstaller correctement p7, vaut-il mieux garder l'archive complète (pour faire make uninstall) ?
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 27/02/2022 16:21 | #


D'ailleurs je trouve bizarre le fait qu'il y ait 3 espaces, au lieu des includes nécessaires (libp7 et SDL).

Imagine que tu as comme code CFLAGS=$(x) $(y) $(z), si $(y) est vide tu as deux espaces d'affilée. C'est parfois le signe qu'un truc a pas marché, et c'est une excellente remarque à se faire dans ce contexte.

Je recherche les potentielles erreurs, et finalement j'en trouve une : j'avais le package libsdl2-dev et non libsdl1.2-dev, donc j'ai SDL2.h et non SDL.h.

La SDL est utilisée pour p7screen. La SDL 1.2 et la SDL 2 sont deux versions différentes vraiment incompatibles (ce qui est suggéré par la différence de nombre majeur) ; pour un résultat viable dans le temps assure-toi d'installer la version qui va bien (tu peux avoir les deux en même temps).

- J'ai cru lire quelque part que libg1m était nécessaire, mais pour quel type de manipulation de p7 ?

Demande à Cake pour ça, la structure de ces projets (à la fois dans l'espace et dans le temps) m'échappe un peu trop.

- J'aimerais désinstaller les fichiers de développements installés (~100 Mo), est-ce bien ceux-ci : sdl, asciidoc, peut-être binutils ?

AsciiDoc tu peux t'en défaire oui, tu pouvais aussi modifier la commande make pour ignorer entièrement les manpages depuis le début d'ailleurs (ce qui coupe les commandes a2x qui échouent). La SDL tu as besoin de la garder pour p7screen et puis c'est assez léger. binutils c'est en-dessous de GCC, si tu l'enlèves tu ne pourras plus rien compiler. Je conseille, si tu le peux, de le garder jusqu'à ce que tu sois bien convaincu que ça marche.

- Maintenant que p7utils a correctement été compilé+installé, est-il nécessaire de garder libp7 ?

Non parce qu'elle est linkée statiquement, mais c'est tellement léger que tu regretteras juste de l'avoir enlevée si jamais tu as besoin de recompiler p7utils pour affiner ton système.

- Si, pour une raison quelconque, je voudrais désinstaller correctement p7, vaut-il mieux garder l'archive complète (pour faire make uninstall) ?

Oui il vaut mieux garder le dossier où tu as tout compilé. En principe l'archive en elle-même ne suffit pas toujours, parce que selon tes options de configuration (./configure) le dossier d'installation pourrait contenir des fichiers différents. Là aussi, mon conseil c'est de tout laisser en plan pour l'instant, ça ne pèse pas lourd. Tu peux supprimer les dossiers man/ et obj/ dans libp7 et p7utils éventuellement, c'est parmi les plus lourds (et il suffira de make si tu veux les re-générer).
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 27/02/2022 22:30 | #


Merci

Juste pour une petite note : on peut enlever les fichiers de développements SDL sans souci (libsdl1.2-dev); et il faut garder libp7, ou p7 ne sera pas content x)

Finalement, pour Android (avec Termux) ça va attendre un petit peu car gcc a quelques problèmes pour compiler des programmes c (même Hello World); pour le moment seul clang fonctionne.

Je tiendrai au courant des avancées

Ajouté le 01/03/2022 à 15:34 :
Ah oui, un détail qui m'intriguait : quelle raison pousse à utiliser -O2 au lieu de -O3 ?
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 01/03/2022 15:41 | #


Y'a pas d'obligation particulière ; -O3 est assez agressif et n'hésite pas à transformer le programmes de façons qui augmentent beaucoup la quantité de code. Ça peut valoir la peine de l'utiliser quand même, selon les cas. Bon sur un PC on s'en fout un peu, sur la calto ça se voit un peu plus.
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 23/03/2022 09:52 | #


Voilà, j'ai réussi à installer libp7 sur Termux

Maintenant il faudrait pouvoir passer l'installation de p7screen, car dans tous les cas pour avoir SDL sur Termux il faudrait l'add-in x11 et pour le configurer c'est inutilement compliqué.

Donc je bloque sur l'installation p7utils car il essaie de trouver les fichiers de SDL pour p7screen.
J'ai pas l'impression qu'un argument du configure puisse faire ça...
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 23/03/2022 10:21 | #


Tu dois pouvoir faire make DISABLE_p7screen=1 et pareil à l'installation.
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 23/03/2022 10:27 | #


Parfait ça marche comme il faut, merci

Je testerai ce soir avec ma calto si ça marche

Ajouté le 24/03/2022 à 11:48 :
Grandes nouvelles !

Je suis arrivé à connecter et utiliser tout le potentiel de libp7 & p7utils sur mon smartphone Android ! Je suppose que ceci peut bien mériter un petit @RDP , non ?

Bon tout d'abord, ce qu'il vous faut a priori sur votre Android pour pouvoir faire pareil : Termux, Termux:API, ajouter l'un ou l'autre repo + package dans Termux, et, apparemment, il FAUT un smartphone rooté (pour ma part j'utilise Magisk).


Alors d'abord l'installation de tout ce qu'il faut : Termux et Termux:API des dépôts F-Droid (scrollez plus bas dans la page, pas besoin de télécharger F-droid ); ceux de Google Play ne sont plus à jour, TL;DR Google fait encore chier.

Pour laisser Termux accéder aux fichiers du smartphone, exécutez termux-setup-storage (et accepter les pop-ups s'il y en a). Vous pourrez trouver votre espace interne partagé dans le chemin ~/storage/shared/.
Bref, ajoutez le package tsu (pour un accès root) : pkg in root-repo puis pkg in tsu. Si jamais vous avez une erreur ("could not etablish connection" ou un truc comme ça), changez de repositories en utilisant termux-change-repo (sait-on jamais), puis refaites l'installation de root-repo et tsu.

Ajoutez aussi le package termux-api pour avoir accès aux options supplémentaires de l'extension Termux:API.

Maintenant, au tour de l'installation de gcc (clang est déjà installé et fonctionnel normalement). Il faut ajouter un ppa supplémentaire, en utilisant la commande présente ici :
curl -LO https://its-pointless.github.io/setup-pointless-repo.sh
bash setup-pointless-repo.sh

Puis installez pkg in gcc-11. Pour utiliser l'alias gcc (et non plus gcc-11, car c'est long à écrire quand même - utile aussi pour les makefile bien évidemment), faites setupgcc-11.
Encore une étape pour gcc et nous seront enfin quittes : setup-patchforgcc qui va régler quelques soucis possibles (que j'ai eus) avec gcc. Dans la majorité des compilations avec gcc (tout du moins pour libp7 et p7utils), il vous faudra aussi utiliser le tag -D__BIONIC_VERSIONER, à devoir ajouter dans les C-FLAGS des MakeFile.vars.

Après ces dernières étapes et changements du makefile, place à l'installation de libp7 ! (Je vous laisse gérer comme des grands les dépendances libusb-dev, asciidoc au besoin, ... )
Pour libp7, c'est assez simple : ./configure --prefix=$PREFIX puis make et enfin make install.
Quasi pareil pour p7utils : ./configure --prefix=$PREFIX puis make DISABLE_p7screen=1 et enfin make install. (Si jamais vous vouliez p7screen, il vous faudrait installer Termux:X11 et configurer tout en tas de choses. Pour ceux qui s'y connaissent vraiment.)

Et voilà, tout est dans la poche ! Connectez la calto à votre smartphone par USB, et vous remarquerez que les commandes p7 ne détecteront la calto que si vous les exécutez en super-utilisateur, par exemple sudo p7 ls.

J'adore la technologie, c'est fou

Ajouté le 24/03/2022 à 13:12 :
Juste, j'avais oublié que RDP était l'acronyme de Revue des Projets...

Donc je me rends compte que mon précédent message est sûrement hors-sujet pour ce genre d'articles

C'était juste parce que j'étais tellement content de pourvoir faire ça avec mon téléphone, et je me disais que ce serait que d'autres personnes sachent que c'est possible aussi
Un problème sans solution est un problème mal posé — Albert Einstein
Lephenixnoir En ligne Administrateur Points: 22590 Défis: 149 Message

Citer : Posté le 24/03/2022 13:15 | #


C'est pas hors-sujet au contraire, tu prends un projet de Cake et tu l'amènes/portes sur Android, c'est 100% dans le sujet

Ajouté le 24/03/2022 à 14:36 :
Du coup j'ai oublié de commenter pour de vrai. Excellent !! Dommage qu'il faille être root, je l'aurais fait sur mon téléphone sinon. Mais je ne suis pas surpris, libusb ne peut pas accéder au périphérique sinon (à moins d'avoir une règle udev installée, mais on peut pas l'installer sans être root donc ça revient au même).

On se retrouve dans 2 semaines quand un téléphone pourra servir de banque immense de programmes. Masséna voulait plus de mémoire pour ses add-ins, est-ce que 8 Go ça suffit ?
Thebigbadboy Hors ligne Maître du Puzzle Points: 423 Défis: 16 Message

Citer : Posté le 24/03/2022 19:48 | #


LephenixNoir a écrit :
Dommage qu'il faille être root

Eh oui, d'ailleurs je pense que très très peu de gens le sont...

Moi par chance je l'étais déjà
J'avais eu de gros souci avec mon OS MIUI (freezes, impossible d'accéder au stockage, et d'autres trucs moins gros) donc j'ai décidé d'installer LineAgeOS (j'en ai profité pour le rooté en même temps). Et franchement je ne suis pas déçu ! Depuis que j'ai fait cette manip' le nombre de chose que je peux faire est hallucinant
Pour donner une idée, il m'est possible maintenant (en utilisant rclone sous Termux) de monter n'importe quel drive (Google, Mega,...) en local sur mon smartphone, et donc plus besoin de toutes ces applis supplémentaires prenant inutilement de la place. J'ai l'impression de faire la promotion de "Pourquoi rooter son téléphone"

Bref, après avoir complètement changé l'os de mon téléphone, j'ai la sensation d'avoir découvert tout son potentiel, et ce que j'adore par dessus tout et que je peux faire encore mieux maintenant, c'est centraliser (utiliser un même appareil/programme pour un maximum de choses).

Bon fini l'aparté
J'ai déjà vu des applis pour gérer des périphériques externes (comme monter des USB NTFS, non supporté nativement), donc peut-être existerait-il un moyen pour les utilisateurs non root de connecter leur calto à leur téléphone Android en développant une apk. Ce n'est que de la spéculation, car je ne m'y connais pas dedans (et ne veux pas m'y initier ).

Je pensais franchement que je n'allais pas réussir à connecter ma calto, car il est dit que Termux ne sait pas accéder aux périphériques USB. Mais comme quoi il faut toujours espérer
Un problème sans solution est un problème mal posé — Albert Einstein
Potter360 Hors ligne Rédacteur Points: 1116 Défis: 0 Message

Citer : Posté le 17/04/2022 17:27 | #


Sur une Graph 85 SD V 02.01.0300 j'ai une erreur :

The calculator didn't act as planned.
Stop receive mode on calculator and start it again before re-running p7.
Error was: an unknown error has occurred

Quand j'essaie de transférer un fichier...
Globalement, coder. Mal, mais coder.
Précédente 1, 2, 3 ··· 7, 8, 9, 10, 11 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2022 | Il y a 85 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd