30

Mais tu n'as pas mis le configure.ac de 1000 lignes qui va avec. grin

Plus sérieusement, il faut au minimum des entrées dans configure.ac et/ou Makefile.am pour chacune des 5 libs qu'il utilise, sinon ça ne va pas marcher. Et il y a aussi quelques lignes minimum que tout configure.ac utilisable avec automake doit avoir.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

31

Bien entendu. Enfin avec autoconf, c'es tassez rapide, suffit juste d'appeler une macro pour chaque lib, ça tient en 10-15 lignes à tout casser.
Avec un gros avantage, c'est que ça rend tout configurable. L'emplacement des libs sont détectés automatiquement, le compilo aussi, etc.

32


Bien entendu. Enfin avec autoconf, c'es tassez rapide, suffit juste d'appeler une macro pour chaque lib, ça tient en 10-15 lignes à tout casser.

helico

33

(aucune lib digne de ce nom n'est livrée sans les scripts m4 qui vont bien)

34

Normalement, il n'y a même pas besoin de scripts perso pour chaque lib, pkgconfig sert à ça.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

35

pkgconfig c'est merdique à souhait. Je préfère m'en passer que d'utiliser ce concept pourri qui te détruit ton Makefile et te le rend inexploitable. censure

36

Je ne vois pas le problème avec pkgconfig. Ça simplifie les tests autoconf (plus besoin d'un .m4 perso, il suffit d'une ligne!) et ça permet aussi d'écrire facilement un makefile portable sans passer par les autotools, donc je ne vois que des avantages pour tout le monde.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

37

Perso j'utilise CMake ; les autotools ça m'a un peu soulé

38

Les autotools ca m'a soulé au début. Puis j'ai compris comment ca marchait. Depuis ca va beaucoup mieux.

39

Les autotools m'ont soulé au début. Et ca me soule toujours.
Tout ce qui passe pas par le port 80, c'est de la triche.

40

Il faut s'y plonger dedans. A fond cheeky
Par contre, c'est vrai que m4 ca pue grave, surtout pour la détection d'erreur....

41

mais vous faites des trucs aussi compliqués avec autotols?
parce qu'à chaque fois je m'en sors en 10 lignes moi grin

42

En général, oué. Sauf si tu veux faire un truc fait maison. Mais dans ce cas, tu connais, donc tu gueules pas. cheeky

43

Je suis d'accord avec onur là, j'arrive plus ou moins à m'en sortir avec les autotools quand il le faut maintenant (alors qu'au départ pas du tout, c'est vraiment compliqué...), mais je trouve toujours que c'est nul. Ce qui me dérange entre autres:
* Bordel de versions plus ou moins incompatibles entre elles. Ils font des changements incompatibles tout le temps. Du coup, on est obligés de distribuer des fichiers prégénérés, ce qui est lourd. En comparaison, qmake est presque entièrement compatible même de Qt 3 à Qt 4 (si le projet n'utilise pas Qt, il y a des chances que le .pro fonctionne avec les 2 versions sans rien changer, sinon, qt3to4 s'occupe aussi du fichier .pro).
* Je trouve que le principe-même de autoconf (compiler des programmes bidon pour tester l'existence de certaines fonctions) s'approche à l'usine à gaz, il vaut mieux coder directement du code portable.
* Les macros autoconf par défaut insistent à tester l'existence de fonctions dont l'existence est garantie par le standard ISO C90 (ANSI C89)! Ce n'est pas croyable, on est en 2007, ce standard existe depuis 17-18 années. Je veux voir le système d'exploitation qui de nos jours ne propose toujours pas memcpy! grin Même TIGCC le propose. roll
* Il y a d'autres tests totalement inutiles qui gaspillent du temps de compilation, par exemple les tests pour les compilateurs Fortran et Java (GCJ) pour des projets qui n'utilisent pas de Fortran ni de Java. Une fois de plus, ce sont les macros par défaut, c'est personnalisable, mais on doit écrire plus de code pour ne pas tester de choses inutiles, alors que ça devrait être le contraire.
* automake qui insiste par défaut sur l'existence de fichiers comme AUTHORS qui ne servent à rien pour la plupart, et qui en plus ne portent pas d'extension (donc même KDE ne reconnaît pas toujours le bon type de fichier, et sous Window$, le type n'est forcément pas reconnu sans extension). (Il faut déclarer le projet comme "foreign" pour qu'il arrête de faire ça.)
* Utilisation intensive de shell scripts *nix, pas portable (alors que ça prétend être un outil de "portabilité" roll).
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

44

Kevin Kofler (./43) :
* Il y a d'autres tests totalement inutiles qui gaspillent du temps de compilation, par exemple les tests pour les compilateurs Fortran et Java (GCJ) pour des projets qui n'utilisent pas de Fortran ni de Java.

Tu veux le code autoconf qui permet de s'en passer cheeky
Kevin Kofler (./43) :
automake qui insiste par défaut sur l'existence de fichiers comme AUTHORS qui ne servent à rien pour la plupart, et qui en plus ne portent pas d'extension

Je pense que tu as paramétré ton projet en mode GNU.
Kevin Kofler (./43) :
Utilisation intensive de shell scripts *nix, pas portable

Pardon ? J'ai jamais eu de problèmes sur la portabilité des scripts !

Par contre, je trouve qu'il est pas mal buggué pour quelque chose qui devrait être très robuste (par exemple, le dernier en date chez moi, et que si ton configure teste le linkage de ton application avec une librarie en cross compiling, il faut que ton application soit executable, alors que ca ne sert à rien vu que c'est du cross compiling),
l'incapacité d'utiliser libtool à l'intérieur du configure,
technlogie m4... c'est nul !

45

PpHd (./44) :
Kevin Kofler (./43) :
automake qui insiste par défaut sur l'existence de fichiers comme AUTHORS qui ne servent à rien pour la plupart, et qui en plus ne portent pas d'extension
Je pense que tu as paramétré ton projet en mode GNU.

Le problème (et ce que je critique), c'est que le mode GNU est le mode par défaut (alors qu'une bonne partie des projets qui utilisent les autotools ne sont pas des projets GNU).
Pardon ? J'ai jamais eu de problèmes sur la portabilité des scripts !

Essaie de les lancer dans cmd.exe. grin
La raison principale pour laquelle le bidouillage nommé MSYS existe, ce sont les scripts configure.
La portabilité ne s'arrête pas aux systèmes *nix contrairement à ce que les développeurs des autotools ont l'air de présupposer.

Quant à l'absence des problèmes de portabilité entre systèmes *nix, c'est parce qu'il y a des tonnes de bidouillages pour gérer les bogues des différents shells. grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

46

Kevin Kofler (./45) :
Essaie de les lancer dans cmd.exe. biggrin.gif

Heu... Pourquoi pas dans l'interpréteur de PedroM pendant que tu y es ?
De tout facon, windows n'aura aucun avenir chez moi tant qu'il n'aura pas un bon shell script qui fonctionne (pas la merde cygwin / mingw).
Kevin Kofler (./45) :
La raison principale pour laquelle le bidouillage nommé MSYS existe, ce sont les scripts configure.

Et puis aussi qu'un shell (meme bridé par les limitations du système sous jacent) est 1000 fois mieux que ce qu'ils osent appeler ligne de commande ?
Kevin Kofler (./45) :
La portabilité ne s'arrête pas aux systèmes *nix contrairement à ce que les développeurs des autotools ont l'air de présupposer.

Oué, mais la portabilité via configure s'arrete aux systèmes unix.
Après si tu veux être portable ailleurs, il faut utiliser un autre système. Ca me semble naturel comme procédé.
De toute facon, y'a meme pas de compilateur C par default sous windows, alors bof c'est pas une grande peine.

47

PpHd (./46) :
Heu... Pourquoi pas dans l'interpréteur de PedroM pendant que tu y es ? De tout facon, windows n'aura aucun avenir chez moi tant qu'il n'aura pas un bon shell script qui fonctionne (pas la merde cygwin / mingw).

Pour toi peut-être, mais il y a des gens (grin) qui compilent sous Windows sans problème avec des Makefiles, là où les autotools sont inutilisables. La notion de portabilité est à revoir, comme a dit Kevin. Ça pourrait au moins avoir la bonne idée de fonctionner partout où le système que ça prétend remplacer fonctionne.
Oué, mais la portabilité via configure s'arrete aux systèmes unix.

Du coup en pourcentage du nombre de machines où ça tourne, c'est quand même très limité :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

48

Zephyr (./47) :

Pour toi peut-être, mais il y a des gens ( biggrin.gif ) qui compilent sous Windows sans problème avec des Makefiles, là où les autotools sont inutilisables. La notion de portabilité est à revoir, comme a dit Kevin. Ça pourrait au moins avoir la bonne idée de fonctionner partout où le système que ça prétend remplacer fonctionne.


Si tu veux une formation "comment utiliser un script configure pour les nuls", y'a pas de problèmes ! cheeky
Les autotools ne sont là que pour générer un script configure. Mais ce n'est pas le seul moyen. D'autres applications maintiennent à la main leur script configure.
Zephyr (./47) :
Du coup en pourcentage du nombre de machines où ça tourne, c'est quand même très limité :


Bof. Faut déjà un compilateur C. Ca restreint le nombre de machines windows a un nombre inférieur de machines unix. Donc.

49

PpHd (./46) :
Heu... Pourquoi pas dans l'interpréteur de PedroM pendant que tu y es ?

rotfl
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

50

PpHd (./48) :
Si tu veux une formation "comment utiliser un script configure pour les nuls", y'a pas de problèmes ! cheeky

Si t'as une solution acceptable pour Windows (= pas un portage bancal de shell), ça m'intéresse oui; tu proposes quoi ?
Bof. Faut déjà un compilateur C. Ca restreint le nombre de machines windows a un nombre inférieur de machines unix. Donc.

"Donc" ça reste quand même inutilisable sur un grand nombre de machines, et les Makefiles atteignent un nombre de cibles compatibles supérieur, c'est tout.
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

51

Zephyr (./47) :
Pour toi peut-être, mais il y a des gens (grin) qui compilent sous Windows sans problème avec des Makefiles, là où les autotools sont inutilisables.

Là tu exagères, ils ne sont pas inutilisables: http://www.mingw.org/msys.shtml
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

52

Bon ok, c'est utilisables à condition d'installer le seul et unique système qui permet d'avoir à peu près le fonctionnement d'un Unix ? Tout ce bazar pour compiler un simple programme, ça me semble quand même bien contraignant... :/
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

53

Zephyr (./50) :
"Donc" ça reste quand même inutilisable sur un grand nombre de machines, et les Makefiles atteignent un nombre de cibles compatibles supérieur, c'est tout.

Heu... Et puis quoi encore ! lol
Si les configure ont été créés, c'est pas pour juste faire chier le monde, tu sais. Il y a une raison (et même plusieurs).
Zephyr (./50) :
Si t'as une solution acceptable pour Windows (= pas un portage bancal de shell), ça m'intéresse oui; tu proposes quoi ?

Ben tu prends un papier et un stylo. Tu executes à la main chaque commande que tu lis dans ton configure, et tu en déduis les actions à prendre.
Ca devrait te plaire, ca ne nécessite l'installation d'aucun application supplémentaire. C'est important, non oui ?

54

Zephyr (./52) :
Bon ok, c'est utilisables à condition d'installer le seul et unique système qui permet d'avoir à peu près le fonctionnement d'un Unix ? Tout ce bazar pour compiler un simple programme, ça me semble quand même bien contraignant... :/


Et comment tu fais sans même installer de compilateur C pour compiler un programme ? Tu le traduis à la main aussi, pour éviter d'installer un programme tiers ?
Tu sais, au moins, sous linux, l'offre logicielle par défaut est bien plus fourni. cheeky

55

PpHd (./53) :
Heu... Et puis quoi encore ! lolSi les configure ont été créés, c'est pas pour juste faire chier le monde, tu sais. Il y a une raison (et même plusieurs).

Sans blague. Mais ce n'est pas du tout la question; le but n'est pas de remettre en cause le principe des scripts configure, mais des autotools qui par nature ne sont pas conçus pour Windows (parceque sinon un fichier projet de Visual Studio ça fait très bien son travail aussi hein, mais curieusement si je distribue un projet avec ça, y'en a qui vont avoir du mal à s'en sortir).
Ben tu prends un papier et un stylo. Tu executes à la main chaque commande que tu lis dans ton configure, et tu en déduis les actions à prendre.
Ca devrait te plaire, ca ne nécessite l'installation d'aucun application supplémentaire. C'est important, non oui ?

Alors j'ai mieux : un Makefile; ça ne nécessite qu'un exécutable à copier sur son disque, et ça marche très bien, contrairement aux autotools hehe
Et comment tu fais sans même installer de compilateur C pour compiler un programme ? Tu le traduis à la main aussi, pour éviter d'installer un programme tiers ?

J'ai le choix, je peux installer GCC, MSVC, ou n'importe quel autre compilo. Par contre pour exécuter un shell script sous Windows, j'ai déjà nettement moins le choix...
Tu sais, au moins, sous linux, l'offre logicielle par défaut est bien plus fourni. cheeky

C'est super smile
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

56

Si tu veux quelque chose de comparable, mais plus portable: http://www.cmake.org. smile KDE est passé à ça dans KDE 4 (ils utilisaient les autotools dans KDE 3) et pour les mainteneurs des portages Window$ et Mac disent que ça leur a beaucoup simplifié la vie.

En revanche, le support pour la cross-compilation (genre compiler des binaires Window$ sous GNU/Linux) n'est prévue que pour la prochaine version majeure. sad Actuellement, c'est peut-être possible en bidouillant, mais pas supporté. Mais ils disent que leur support pour la cross-compilation sera meilleur que celui des autotools, on va voir.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

57

Plus sérieursement, GCC 1.42 n'utilisait pas configure, mais demandait à l'utilisateur de connaitre son système pour remplir son fichier config.h (heureusement il proposait plusieurs exemples de config.h). C'etait vraiment très lourd, chiant à maintenir. Et l'installation c'était à la mano.
GCC 4.2.1 propose un configure qui détecte tout pour toi, vérifie les dépendances, corrige les problèmes détectés, et s'installe proprement dans ton système.
C'est 100x plus simple. #triou#

58

PpHd (./57) :
à la mano

C'est quoi cet italien de cuisine? grin
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

59

Zephyr (./55) :
J'ai le choix, je peux installer GCC, MSVC, ou n'importe quel autre compilo. Par contre pour exécuter un shell script sous Windows, j'ai déjà nettement moins le choix...

Tu sais avec les autotools tu peux compiler avec MSVC. Même que c'est officiellement supporté. smile
(Dans mes souvenirs, c'est ./configure CC=cl.exe ...)
Zephyr (./55) :
Sans blague. Mais ce n'est pas du tout la question; le but n'est pas de remettre en cause le principe des scripts configure, mais des autotools qui par nature ne sont pas conçus pour Windows (parceque sinon un fichier projet de Visual Studio ça fait très bien son travail aussi hein, mais curieusement si je distribue un projet avec ça, y'en a qui vont avoir du mal à s'en sortir).

Les autotools ne sont qu'un moyen de produire un fichier configure (et un fichier Makefile.in).
Donc la question que je te pose: comment je remplis mon fichier Makefile avec tous les dépendances systèmes ?
Avec une ligne dans mon Makefile
CC=$(shell which gcc || which gcc42 || which cl || which cc)
? cheeky
Tu sais linux n'utilises qu'un Makefile et pas de configure.
A mon avis tu devrais pouvoir le compiler sous windows sans shell, rien qu'avec make.
Zephyr (./55) :
Alors j'ai mieux : un Makefile; ça ne nécessite qu'un exécutable à copier sur son disque, et ça marche très bien, contrairement aux autotools

A le rigueur, tu prends Makefile.in et tu fais tous les replace all nécessaire avec les valeurs détectées par ton configure manuel (tu sais le papier et le crayon). Ca sera aussi bien.
N'empéche que make ne marchera pas tout seul. Il lui faut au minimum un compilateur et un linkeur.
Kevin Kofler (./56) :
Mais ils disent que leur support pour la cross-compilation sera meilleur que celui des autotools, on va voir.

Ils disent toujours ca. Faut voir vraiment ce que c'est.
Au moins avec les autotools je peux configurer une librarie pour etre utilisable sous PedroM. love

60

Kevin Kofler (./58) :

C'est quoi cet italien de cuisine? biggrin.gif


Expression francaise récupérée de l'italien.