J'ai un repertoire dans lequel sont des fichiers dont le nom est
toto.ml
titi.ml
tata.ml
Et il y en a plein d'autre en prevision.
Quand je les compile, je fais
ocamlc -o toto toto.ml
ocamlc -o titi titi.ml
ocamlc -o tata tata.ml
Maintenant comme je sais qu'il va y avoir de plus en plus de fichiers a
compiler au fur et a mesure que le projet avance, je me dis que c'est pas
une mauvaise idee de faire un Makefile. Le but en utilisant le Makefile
n'est pas tant de faciliter la repetition de compilation ( pour ca,
l'historique du shel me suffit largement), mais en prevision des fichiers
qui vont venir.
Je voudrais que chaque fichier qui se fait compiler produise un executable
fait du "basename" du fichier source.
Ainsi, si demain j'ajoute
foo.ml
bar.ml
qux.ml
Il me faudrait 'foo', 'bar' et 'qux' executables. Mais sans que j'ai
eu besoin de modifier le Makefile. Il faut que le Makefile ait pris en
compte la presence des nouveaux fichiers et ait generé les executables
qu'il faut. Le probleme est que je ne sais pas recuperer le basename du
fichier source dans un Makefile. Pour compiler dans ce repertoire, j'ai eu
a dealer avec un affreux script du genre:
# Il y aura d'autres options plus tard
OPTS=" -o"
MODULES=""
for SOURCE in *.ml ;
{
BASENAME=`print $SOURCE | awk 'BEGIN{FS="."}{print $1}'`
$C $OPTS $BASENAME SOURCE
}
#########################################
Ah oui. Je n'ai pas reussi a utiliser 'basename' dans le script: Il me
retourne quand meme le nom de fichier avec l'extension alors je l'ai
zappé.
Avec ca, je prends en compte en un tour de main tout nouveau fichier.
Oui mais ce n'est pas un Makefile... Peut-etre que le Makefile n'est pas
ce qui me convient? J'ai un bouquin sur le Makefile sous les yeux que j'ai
commencé a lire aujourd'hui, il n'y a pas ce que je cherche...
Merci d'avance.
--
Mirroir de logiciels libres http://www.etud-orleans.fr
Développement de logiciels libres http://aspo.rktmb.org/activites/developpement
Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Thomas Nemeth
Le sam 14 mai 2005 à 01:57, Rakotomandimby (R12y) Mihamina a tapoté : | Bonjour
Bonjour,
| ######################################### | #!/bin/zsh | | C=/usr/bin/ocamlc | | # Il y aura d'autres options plus tard | OPTS=" -o" | MODULES="" | for SOURCE in *.ml ; | { | BASENAME=`print $SOURCE | awk 'BEGIN{FS="."}{print $1}'` | $C $OPTS $BASENAME SOURCE | } | ######################################### | | Ah oui. Je n'ai pas reussi a utiliser 'basename' dans le script: Il me | retourne quand meme le nom de fichier avec l'extension alors je l'ai | zappé.
avec BASENAME=`basename $SOURCE .ml` ?
| Avec ca, je prends en compte en un tour de main tout nouveau fichier. | Oui mais ce n'est pas un Makefile... Peut-etre que le Makefile n'est pas | ce qui me convient?
Ce n'est pas nécessaire dans ton cas.
| J'ai un bouquin sur le Makefile sous les yeux que j'ai | commencé a lire aujourd'hui, il n'y a pas ce que je cherche...
Recherche un document nommé technique de production de programmes en pdf (ou tpp.ps) créé par Matthieu Herrb. Il t'expliquera les bases pour se créer un makefile tout simple.
| Merci d'avance.
'plaisir.
Thomas -- BF>la question qui fâche, c'est le montage vidéo sous Linusque. man mount. -+- VB in GFA: Sexe, montage et vidéo. -+-
Le sam 14 mai 2005 à 01:57, Rakotomandimby (R12y) Mihamina a tapoté :
| Bonjour
Bonjour,
| #########################################
| #!/bin/zsh
|
| C=/usr/bin/ocamlc
|
| # Il y aura d'autres options plus tard
| OPTS=" -o"
| MODULES=""
| for SOURCE in *.ml ;
| {
| BASENAME=`print $SOURCE | awk 'BEGIN{FS="."}{print $1}'`
| $C $OPTS $BASENAME SOURCE
| }
| #########################################
|
| Ah oui. Je n'ai pas reussi a utiliser 'basename' dans le script: Il me
| retourne quand meme le nom de fichier avec l'extension alors je l'ai
| zappé.
avec BASENAME=`basename $SOURCE .ml` ?
| Avec ca, je prends en compte en un tour de main tout nouveau fichier.
| Oui mais ce n'est pas un Makefile... Peut-etre que le Makefile n'est pas
| ce qui me convient?
Ce n'est pas nécessaire dans ton cas.
| J'ai un bouquin sur le Makefile sous les yeux que j'ai
| commencé a lire aujourd'hui, il n'y a pas ce que je cherche...
Recherche un document nommé technique de production de
programmes en pdf (ou tpp.ps) créé par Matthieu Herrb.
Il t'expliquera les bases pour se créer un makefile tout
simple.
| Merci d'avance.
'plaisir.
Thomas
--
BF>la question qui fâche, c'est le montage vidéo sous Linusque.
man mount.
-+- VB in GFA: Sexe, montage et vidéo. -+-
Le sam 14 mai 2005 à 01:57, Rakotomandimby (R12y) Mihamina a tapoté : | Bonjour
Bonjour,
| ######################################### | #!/bin/zsh | | C=/usr/bin/ocamlc | | # Il y aura d'autres options plus tard | OPTS=" -o" | MODULES="" | for SOURCE in *.ml ; | { | BASENAME=`print $SOURCE | awk 'BEGIN{FS="."}{print $1}'` | $C $OPTS $BASENAME SOURCE | } | ######################################### | | Ah oui. Je n'ai pas reussi a utiliser 'basename' dans le script: Il me | retourne quand meme le nom de fichier avec l'extension alors je l'ai | zappé.
avec BASENAME=`basename $SOURCE .ml` ?
| Avec ca, je prends en compte en un tour de main tout nouveau fichier. | Oui mais ce n'est pas un Makefile... Peut-etre que le Makefile n'est pas | ce qui me convient?
Ce n'est pas nécessaire dans ton cas.
| J'ai un bouquin sur le Makefile sous les yeux que j'ai | commencé a lire aujourd'hui, il n'y a pas ce que je cherche...
Recherche un document nommé technique de production de programmes en pdf (ou tpp.ps) créé par Matthieu Herrb. Il t'expliquera les bases pour se créer un makefile tout simple.
| Merci d'avance.
'plaisir.
Thomas -- BF>la question qui fâche, c'est le montage vidéo sous Linusque. man mount. -+- VB in GFA: Sexe, montage et vidéo. -+-
-- Mirroir de logiciels libres http://www.etud-orleans.fr Développement de logiciels libres http://aspo.rktmb.org/activites/developpement Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
--
Mirroir de logiciels libres http://www.etud-orleans.fr
Développement de logiciels libres http://aspo.rktmb.org/activites/developpement
Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
-- Mirroir de logiciels libres http://www.etud-orleans.fr Développement de logiciels libres http://aspo.rktmb.org/activites/developpement Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
Christophe PEREZ
Le Sat, 14 May 2005 08:17:35 +0000, Thomas Nemeth a écrit:
Recherche un document nommé technique de production de programmes en pdf (ou tpp.ps) créé par Matthieu Herrb.
Comme j'ai mis un moment à le trouver (à cause du pluriel sur technique) : http://www.laas.fr/~matthieu/cours/make/
-- Christophe PEREZ Écrivez moi sans _faute !
Le Sat, 14 May 2005 08:17:35 +0000, Thomas Nemeth a écrit:
Recherche un document nommé technique de production de
programmes en pdf (ou tpp.ps) créé par Matthieu Herrb.
Comme j'ai mis un moment à le trouver (à cause du pluriel sur
technique) :
http://www.laas.fr/~matthieu/cours/make/
-- Mirroir de logiciels libres http://www.etud-orleans.fr Développement de logiciels libres http://aspo.rktmb.org/activites/developpement Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
--
Mirroir de logiciels libres http://www.etud-orleans.fr
Développement de logiciels libres http://aspo.rktmb.org/activites/developpement
Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance
(En louant les services de l'ASPO vous luttez contre la fracture numerique)
-- Mirroir de logiciels libres http://www.etud-orleans.fr Développement de logiciels libres http://aspo.rktmb.org/activites/developpement Infogerance de serveur dédié http://aspo.rktmb.org/activites/infogerance (En louant les services de l'ASPO vous luttez contre la fracture numerique)
Note que $f:h (t comme head) est preferable a ${f%/*} car il marche aussi quand $f ne contient pas de "/" (retourne ".") et est preferable a "$(dirname -- "$f")" a cause du bug de la command substitution qui enleve tous les newlines en fin.
Note que $f:h (t comme head) est preferable a ${f%/*} car il
marche aussi quand $f ne contient pas de "/" (retourne ".") et
est preferable a "$(dirname -- "$f")" a cause du bug de la
command substitution qui enleve tous les newlines en fin.
Note que $f:h (t comme head) est preferable a ${f%/*} car il marche aussi quand $f ne contient pas de "/" (retourne ".") et est preferable a "$(dirname -- "$f")" a cause du bug de la command substitution qui enleve tous les newlines en fin.