#1 Le 09/04/2012, à 16:11
- thomderainette
makefile - créer des dépendances génrériques
Bonjour,
J'ai une liste de fichiers sources :
x1.ext à xn.ext
y1.ext à ym.ext
le fichier xi.ext est indépendant
le fichier yi.ext inclu les fichiers ./yi/yil.ext2 avec l un nombre formaté sur 3 caractères 001, 002...
je cherche à compiler de manière générique l'ensemble des sources avec un unique makefile
all: $(OBJ)
y1.out: y1.ext /y1/y1*.ext2
...
ym.out: ym.ext /ym/ym*.ext2
%.out: %.ext
$(COMPILATEUR) $<
j'aimerai éviter d'avoir besoin des lignes où le nom des fichiers est écrit y1.out: y1.ext /y1/y1*.ext2
j'ai essayé lode suivant, mais je ne compile plus les xi
%.out: %.ext /%/%*.ext2
$(COMPILATEUR) $<
Merci de votre aide
Hors ligne
#2 Le 09/04/2012, à 19:14
- telliam
Re : makefile - créer des dépendances génrériques
px tu donner ton makefile complet?
"- Un intellectuel assis va moins loin qu'un con qui marche."
Maurice Biraud - Un Taxi pour Tobrouk
Michel Audiard
Hors ligne
#3 Le 12/04/2012, à 17:59
- thomderainette
Re : makefile - créer des dépendances génrériques
Le voici:
LILY=/bin/lilypond
SRC = t1.ly t2.ly t3.ly a.ly b.ly
OBJ= $(SRC:.ly=.pdf)
all: $(OBJ)
a.pdf: a.ly a/a*.ly
b.pdf: b.ly b/b*.ly
%.pdf: %.ly
$(LILY) $<
clean:
rm *.pdf
Hors ligne
#4 Le 12/04/2012, à 22:48
- pingouinux
Re : makefile - créer des dépendances génrériques
Bonsoir,
Ce n'est pas tout-à-fait ce qui est demandé (que je ne sais pas faire), mais ce script gener_mkf.sh devrait générer le makefile (fichier mkf) :
#!/bin/bash
exec 1>mkf
shopt -s nullglob
COMPIL='\n\t$(LILY) $<\n'
printf "LILY=/bin/lilypond\nSRC = "
for i in *.ly; do printf " $i"; done
printf '\nOBJ= $(SRC:.ly=.pdf)\n\nall: $(OBJ)\n'
for i in *.ly; do
rac=${i/.ly/}
printf "\n${rac}.pdf: $i"
if [ -d "$rac" ]; then
for j in "$rac/$rac"*.ly; do
printf " $j"
done
fi
printf "$COMPIL"
done
printf "\n%%.pdf: %%.ly$COMPIL"
printf "\nclean:\n\trm *.pdf\n"
À lancer depuis le répertoire où se trouvent les fichiers a.ly b.ly…
./gener_mkf.sh
Hors ligne
#5 Le 19/04/2012, à 11:17
- thomderainette
Re : makefile - créer des dépendances génrériques
Effectivement ça marche.
Le makefile créé prend en compte les dossiers.
La solution proposée par pingouinux me satisfait à court terme
merci
Je laisse toutefois la question ouverte, puisque dans l'idée, je cherche un makefile générique
Hors ligne
#6 Le 19/04/2012, à 11:51
- valAa
Re : makefile - créer des dépendances génrériques
Hello,
Peut-être peux-tu t'inspirer de la section 7 de ce tutoriel http://gl.developpez.com/tutoriel/outil/makefile
ou la liste des fichiers sources est générée de automatiquement:
SRC= $(wildcard *.c)
ça devrait être adaptable à ton cas
Hors ligne