# \[makefile\] règles de compilation

**URL:** <https://www.debian-fr.org/t/makefile-regles-de-compilation/54950>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 1:18 UTC](https://www.debian-fr.org/t/makefile-regles-de-compilation/54950 "2016-02-21T13:18:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tiresias](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/c0e974/32.png) [@tiresias](https://www.debian-fr.org/u/tiresias)\
**Post date:** [Février 21, 2016, 1:18 UTC](https://www.debian-fr.org/t/makefile-regles-de-compilation/54950/1 "2016-02-21T13:18:38Z")

</div>

Bonjour, j’ai un makefile dont voici le contenu:

[code]#Makefile au style GNU

# 

# Nom des directories sources

DIRSRC = ./SRC  
DIROBJ = ./OBJ

# Nom des executables

BIN =malib.a

FFLAGSGCC = -g -C -m64   
-I$(DIROBJ)  
-J$(DIROBJ)

SRC\_F=$(DIRSRC)/aaa.f  
$(DIRSRC)/aab.f  
$(DIRSRC)/aac.f

OBJ\_F=aaa.o  
aab.o  
aac.o

###################### CIBLES ######################

# 

# Cible norm

norm: $(BIN)

# 

# Cible all

all: norm

# 

# Construction de la librairie

$(BIN):$(OBJ\_F)  
ar cr $@ $(OBJ\_F) #

# Construction des objets standard

$(OBJ\_F).o:$(SRC\_F)  
gfortran $(FFLAGSGCC) -c $(DIRSRC)/$\*.f -o $(DIROBJ)/$@  
[/code]

ça compile correctement jusqu’au dernier fichier où là j’ai:

```auto

```

impossible de comprendre pourquoi il ne veux pas compiler la dernière source… si quelqu’un a une idée svp?

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 21, 2016, 1:18 UTC](https://www.debian-fr.org/t/makefile-regles-de-compilation/54950/2 "2016-02-21T13:18:54Z")

</div>

La seule différence visible comme ça est le “” que tu as mis pour les autres fichiers. Même si c’est le dernier fichier, tu as essayé de l’ajouter ?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 1:18 UTC](https://www.debian-fr.org/t/makefile-regles-de-compilation/54950/3 "2016-02-21T13:18:54Z")

</div>

> [@vohu](#):
>
> La seule différence visible comme ça est le "" que tu as mis pour les autres fichiers. Même si c’est le dernier fichier, tu as essayé de l’ajouter ?

Je pense qu’il n’en compile aucun.

Pour générer les .o il vaut mieux :

`%.o: %.f
        gfortran $(FFLAGS) -c $(DIRSRC)/$*.f -o $(DIROBJ)/$@`  
ou ça

`.f.o:
        gfortran $(FFLAGS) -c $(DIRSRC)/$*.f -o $(DIROBJ)/$@`
