Cet article est une introduction à l'usage de l'outil make. Cet utilitaire écrit par Richard Stallman et Roland McGrath est associé à la plupart des développements (principalement C/C++). Par comparaison de date de création/mise à jour il évite de recompiler des sources inutilement. Mais son usage va bien au delà et vous pouvez vous en servir pour minimiser les commandes dans la plupart des projets. Ce document s'appuie sur des exemples triviaux pour Java, LATEX et bash.
Aller plus loin
# -Pour les modéros- Faute dans le titre!
Posté par Tal . Évalué à -3.
(-1 <- NE PAS VOTER)
# gnu make ?
Posté par Troy McClure (site web personnel) . Évalué à -10.
C'est vraiment lui l'auteur de make ? ou bien est-il l'auteur de GNU make ? et dans ce cas qui est l'auteur du tout premier make ?
[^] # man make:
Posté par Yusei (Mastodon) . Évalué à 10.
Il s'agit donc bien uniquement de l'implémentation GNU qui a été coécrite par RMS. C'est d'ailleurs probablement pour ça qu'il faut utiliser gmake sur des systèmes non GNU.
# Java + Make = Ant
Posté par God . Évalué à 10.
http://jakarta.apache.org/ant/(...)
[^] # Re: Java + Make = Ant
Posté par Loic Jaquemet . Évalué à 10.
genre si OS == toto faire titi ...
[^] # Re: Java + Make = Ant
Posté par Harry Cover . Évalué à -10.
N'empêche que tout ça me fait bien rire, un "ingénieur java/xml" qui nous pond en 2002 un tutorial sur make, on croit rêver. Son prochain article, ce sera une explication sur les listes chainées en C, ou alors un tutoriel sur la communication série en GFA-Basic ?
C'est à se demander comment un tel article a pu être validé par un modérateur.
[^] # Re: Java + Make = Ant
Posté par Anonyme . Évalué à 10.
Partager ses connaissances, je trouve ça très bien. Il y a toujours à apprendre, certains sont meme surement contents de trouver un tutoriel léger et clair comme celui-ci. Au lieu de critiquer, qu'as-tu fais TOI ?
[^] # Re: Java + Make = Ant
Posté par djrom . Évalué à 10.
Tous en Java + XML + Swing + J2EE ! C'est évident que c'est la meilleure des solutions en toute circonstances, que ce soit en système embarqué, en serveur ou en workstation. make/C/Unix su>< ! C'est d'ailleurs incompréhensible qu'on utilise encore ces merdes au XXIème siècle !
Tu n'es pas capable de réfléchir une seconde ? Tu voudrais compiler le noyau avec Ant ? Tu voudrais utiliser tes ports *BSD/Gentoo avec Ant ? Alors, réfléchis une seconde avant de chier sur make ! Ant est un très bon système, mais n'est pas la solution universelle. Alors, un tutorial sur make, c'est Bien (tm).
Gros coup de gueule --> [-1]
[^] # Re: Java + Make = Ant
Posté par Harry Cover . Évalué à -10.
Alors, oui, je le redis, et je le redirai encore, un ingé java/xml (et là, c'est marrant, tu la ramènes moins sur les buzzword, c'est pourtant pas moi qui les utilise) qui nous fait du make alors que ant est devenu un standard de fait, c'est ridicule. D'ailleurs, regarde ses exemples, il n'utilise make que pour compiler du java.
C'est d'autant plus dommage que sur le site il y a d'autres articles fort intéressant. Le plus triste, c'est que le gars qui a posté la news n'ait retenu que le pire de tous. Et encore plus triste, que ça soit passé. Comme je l'ai dit, j'ai peur que la prochaine fois on nous explique sur linuxfr les pointeurs en BCPL ou les registres en asm68K.
[^] # Re: Java + Make = Ant
Posté par djrom . Évalué à 8.
"ant est devenu un standard de fait" Où ça ? t'as des chiffres ? des gens pour confirmer ?
"les pointeurs en BCPL ou les registres en asm68k" Ca n'a rien à voir et tu le sais très bien. Ant n'est pas en mesure de remplacer make dans tout les cas (même si, encore une fois, je reconnais ses qualités), et tu le sais très bien. Donc, un tutorial sur make est utile.
Tout ce que j'essaie de dire, c'est que visiblement, l'unanimité sur le génie absolu de Ant ne semble pas être faite. Comme a dit JPz un peu plus haut, tu me paraît être assez "techno-gogo" dans le genre, et j'aimerais bien voir ta réfutation point par point des arguments de djefer qui sont plus bas.
je persiste et je signe dans un troll --> [-1]
[^] # Re: Java + Make = Ant
Posté par Gérald Quintana . Évalué à 7.
<target name="macible" if="mavariable">
Mais c'est un peu limité je te l'accorde. Ou alors il te faut ecrire ta propre tache en étendant Ant. Ce n'est pas très compliqué.
Ce n'est pas un fonctionnalité manquante, c'est une philosophie, parfois gênante mais bon de toute façon ce ne sera pas changé dans Ant 2
http://jakarta.apache.org/ant/ant2/requested-features.html(...)
Rejected: Simple flow-control (if-then-else, for)
[^] # Re: Java + Make = Ant
Posté par Benoît Sibaud (site web personnel) . Évalué à 10.
(clause de publicité, restrictions sur les mots Apache et ASF)
http://www.gnu.org/licenses/license-list.html(...)
http://www.apache.org/foundation/licence-FAQ.html#GPL(...)
et lire aussi les liens fournis par Google
http://www.google.com/search?q=GPL+Apache+license+incompatible&(...)
(apparemment il y a eu de longues discussions sur le sujet, mais rien de clair n'en est sorti)
Donc si vous utilisez seulement Ant pour déployer votre appli, pas de problème. Si vous écrivez vos propres classes pour étendre Ant, vous ne pouvez pas les mettre sous GPL.
Bon je suis un peu hors-sujet là, mais avec l'équipe d'un projet Java GPL on vient de se prendre la tête pour virer des modules sous AL 1.1 (Xerces et Log4J) et les remplacer par des modules LGPL (Piccolo et LumberJack).
[^] # Re: Java + Make = Ant
Posté par Anonyme . Évalué à 0.
La licence Apache n'est pas copyleft, mais parfaitement libre. Les clauses de pubs ne sont pas un motif valable. Après tout il est souhaitable de mentionner le code de tierces personnes que l'on utilise. Il me semble que c'est un minimum de respect envers le travail des autres. La licence Apache est la seule des licences type BSD, X11 et consort (donc très permissives) qui impose une telle clause. Je ne vois pas ce qu'il y a de mal là dedans ...
Perso j'ai un module d'un projet qui est une tache Ant, c'est sous GPL et point final.
[^] # Re: Java + Make = Ant
Posté par Benoît Sibaud (site web personnel) . Évalué à 10.
J'ai écrit à la FSF car je trouve idiot d'avoir deux sites majeurs/deux communautés majeures du libre en désaccord, incapables de se mettre d'accord. Il serait bien qu'une position claire se dégage : incompatibilité ou compatibilité, et éventuellement une nouvelle licence d'un côté ou de l'autre pour régler le problème si problème.
(pour notre projet, une exception ajoutée à la GPL autorisant l'utilisation de modules sous AL était impossible car nous utilisons aussi JSX (GPL) dont nous ne sommes pas les détenteurs du copyright)
[^] # Re: Java + Make = Ant
Posté par Anonyme . Évalué à 3.
Au vu de la qualité des outils de la Apache Foundation, c'est très dommage ce style de discorde car beaucoup de projets ont a bénéficier de cette qualité :-/
[^] # Re: Java + Make = Ant
Posté par Gérald Quintana . Évalué à 6.
- Dans un Makefile, si on fait 2 fois javac, le compilo java est chargé/déchargé de la mémoire 2 fois
- Dans un build.xml (Ant), si on fait 2 fois javac le compilateur n'est pas chargé plusieurs fois car il utilise la même machine virtuelle que Ant (à moins de lui imposer le contraire)
Donc gain de temps. Cela est aussi vrai pour tous les outils qui sont écris en java: rmic, ejbc, idl2java... Une seule JVM pour tous, tous pour une même JVM!
Par contre, j'ai l'impression que Ant est moins efficace pour détecter ce qui a changé de ce qui n'a pas bougé et fait parfois des trucs inutiles. Mais ce n'est qu'une impression, ou alors que mon build.xml n'est pas parfait.
[^] # Re: Java + Make = Ant
Posté par Alexandre Brillant . Évalué à 3.
potentiel de Ant.
http://www.djefer.com/articles/fiches/FT_SYS_ANT_01.html(...)
Personnellement, Ant est bien lorsque l'on a
rien d'autre sous la main. Mais il n'est pas
comparable avec Make pour la simple raison
que Make comprend son propre langage indépendant
et un interfaçage transparent avec le shell courant (et pas ces fichus tags).
Pour Windows, l'idéal reste cygwin. De toute
manière faire du code portable est souvent plus
une question de programmation de shell qu'une
question de Makefile.
Concernant Ant, il est fait en Java, il est
exacte qu'une compilation globale sera
plus rapide, mais cela masque la réalité du
développement. Je ne recompile 99% du temps
qu'un sous-répertoire lorsque je viens de
modifier un truc et là Make est vraiment
l'idéal. Je me vois mal mettre sur tous les
répertoires un fichier build.xml. D'autant
plus que le démarrage Java est lui bien plus
lent !.
Make s'intègre parfaitement à Emacs, un petit
C-c c et je compile la classe modifiée, les
lignes d'erreurs me sont retournés et je
peux bosser le plus naturellement.
Pour moi, Ant est plus intéressant en étape
final d'un projet lorsqu'on souhaite tout
packager (.war ou .ear) mais il est loin
d'être incontournable. Il faut s'amuser
à développer une extension pour voir ce
qu'il y a derrière.
[^] # Re: Java + Make = Ant
Posté par Harry Cover . Évalué à -10.
Tous tes arguments sont fumeux, je pourrais te les démonter un par un, mais ça ne remplacerait pas une lecture de doc.
[^] # Re: Java + Make = Ant
Posté par Alexandre Brillant . Évalué à 9.
un an puis chez Axa il y a un peu moins de temps.
La phrase "make n'a aucune espèce
d'utilité pour compiler du java" est aussi idiote
que de prétendre que "ant ne sert à rien" ou
que tel ou tel outil ne doit pas être utilisé.
Je pense que c'est à chacun de choisir et pour
choisir il faut au moins connaître le "terrain".
Il y a souvent cette tendance à vouloir toujours
se tourner vers le "plus facile", tendance que
je rencontre à tous les niveaux et qui forment
des gens qui ne savent même pas au final faire
un chercher/remplacer par un script.
# Commentaire supprimé
Posté par Anonyme . Évalué à 10.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: A propos de Makefile LaTeX
Posté par hocwp (site web personnel) . Évalué à 10.
http://hocwp.free.fr/utils/latex/(...)
je ne sais pas si c'est mieux, mais en tous cas ça correspond à mon usage courant.
[^] # Commentaire supprimé
Posté par Anonyme . Évalué à 0.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: A propos de Makefile LaTeX
Posté par #3588 . Évalué à 1.
latexn peut-être ? : http://www.ctan.org/tex-archive/support/latexn(...)
[^] # Re: A propos de Makefile LaTeX
Posté par Eddy . Évalué à -2.
Mais j'y travaille...
Si il t'interesse, envoie moi un message DLFP.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.