Précédent   Forum du club des développeurs et IT Pro > Systèmes > Linux > Applications et environnements graphiques
Applications et environnements graphiques Questions sur l'utilisation d'applications et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/09/2012, 15h01   #1
tiresias54
Nouveau Membre du Club
 
Inscription : novembre 2011
Messages : 64
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 64
Points : 25
Points : 25
Par défaut [makefile] créer une règle générale

Bonjour,

J'ai un makefile à écrire pour générer un projet sous Linux.
J'ai tenté d'adapter un makefile Unix, mais ça ne fonctionne pas:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#Makefile au style GNU
#
# Nom des directories sources
DIRSRC=./SRC
DIROBJ=./OBJ
 
# Nom des executables
BIN =malib.a
 
# Flags de compilation
FFLAGS =  -C
 
SRC_F=$(DIRSRC)/aaa.f $(DIRSRC)/bbb.f $(DIRSRC)/ccc.f
OBJ_F=$(DIROBJ)/aaa.o $(DIROBJ)/bbb.o $(DIROBJ)/ccc.o
 
SRC_F90=$(DIRSRC)/ddd.f90 $(DIRSRC)/eee.f90 $(DIRSRC)/fff.f90
OBJ_F90=$(DIROBJ)/ddd.o $(DIROBJ)/eee.o $(DIROBJ)/fff.o
#
##################### CIBLES ######################
#
# Cible norm
norm: $(BIN)
#
# Cible all
all:    norm
#
# Cible clean
clean:
        @-\rm -f $(DIROBJ)/*
#
# Construction de la librairie
$(BIN):$(OBJ_F) $(OBJ_F90)
        ar cr $@ $(OBJ_F) $(OBJ_F90)
        -@ mv *.mod $(DIROBJ) 2>/dev/null|:
#
# Construction des objets standard
$(OBJ_F)%.o:$(SRC_F)%.f
        f90 $(FFLAGS) -c $< -o $@
#
# Construction des objets standard
$(OBJ_F90)%.o:$(SRC_F90)%.f90
        f90 $(FFLAGS) -c $< -o $@
Je suis obligé d'utiliser des règles de substitution car il y a un grand nombre de sources, et je suis obligé de créer les variables OBJ_F etc car il faut les compiler dans un certain ordre.

Des idées svp?
tiresias54 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2012, 00h52   #2
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 403
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 403
Points : 39 597
Points : 39 597
Bonjour,

Sur le chat, j'ai parlé de passe de
Code :
1
2
3
4
5
6
7
8
 
# Construction des objets standard
$(OBJ_F)%.o:$(SRC_F)%.f
        f90 $(FFLAGS) -c $< -o $@
#
# Construction des objets standard
$(OBJ_F90)%.o:$(SRC_F90)%.f90
        f90 $(FFLAGS) -c $< -o $@
à

Code :
1
2
3
4
5
6
7
8
 
# Construction des objets standard
$(OBJ_F).o:$(SRC_F).f
        f90 $(FFLAGS) -c $< -o $@
#
# Construction des objets standard
$(OBJ_F90).o:$(SRC_F90).f90
        f90 $(FFLAGS) -c $< -o $@
car je ne voyais pas la raison de la présence des jokers. Qu'en est t-il après les avoir enlever ?
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2012, 11h24   #3
tiresias54
Nouveau Membre du Club
 
Inscription : novembre 2011
Messages : 64
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 64
Points : 25
Points : 25
j'ai réussi à faire (presque) fonctionner le truc avec ta suggestion, mais
maintenant ça compile quasiment tout sauf la dernière cible (ici ccc.o) où le compilo dit:

Code :
make: *** No rule to make target `ccc.o', needed by `malib.a'.  Stop.
J'avoue ne pas comprendre
tiresias54 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/09/2012, 15h44   #4
LittleWhite
Responsable 2D/3D/Jeux


 
Avatar de LittleWhite
 
Homme Alexandre Laurent
Ingénieur développement logiciels
Inscription : mai 2008
Messages : 10 403
Détails du profil
Informations personnelles :
Nom : Homme Alexandre Laurent
Localisation : France

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : mai 2008
Messages : 10 403
Points : 39 597
Points : 39 597
Je me demande si ce n'est pas parce qu'il ne trouver pas le ccc.f
__________________
Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
La rubrique a aussi un blog !

Ma page sur DVP
Mon Portfolio

Qui connaît l'erreur, connaît la solution.
LittleWhite est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h38.


 
 
 
 
Partenaires

Hébergement Web