Sto facendo un progetto per l'università e ho iniziato ad usare il Makefile per agevolare la compilazione di tutti i fogli.
Premetto che non tutto del makefile mi è chiaro, specialmente la parte in cui si parla della data di ultima scrittura dei file che influirebbe sul makefile stesso.

vi posto il makefile:
codice:
CFLAGS = -Wall -g  
MON_OBJ = obj/vmemMon.o obj/gest_comandi.o  
VMEMD_OBJ = obj/gestione_Mem.o obj/frameMem.o obj/gestione_fifo  
LIBVMEM_OBJ = obj/gestione_fifo.o obj/libvmem.o  

LIB_GCOM = inc/gest_comandi.h
LIB_PAGE = inc/page.h 
LIB_MACRO = inc/macro.h 
LIB_VMEM = inc/libvmem.h 
LIB_IND = inc/indirizzi.h 
LIB_GSWAP = inc/gestione_swap.h
LIB_GMEM = inc/gestione_Mem.h 
LIB_GFILE = inc/gestione_file.h 
LIB_GFIFO = inc/gestione_fifo.h 
LIB_FRAMEMEM = inc/frameMem.h  

EXE = bin/vmemMon bin/vmemd lib/libvmem.a  

all: $(EXE)  

bin/vmemMon: $(MON_OBJ) lib/libvmem.a 	
   cc -o bin/vmemMon $(MON_OBJ) -Llib/ -lvmem  

lib/libvmem.a: src/libvmem.o $(LIBVMEM_OBJ) 	
   ar rcs lib/libvmem.a $^  

obj/libvmem.o: src/libvmem.c $(LIB_VMEM) $(LIB_GFIFO) 	
   cc $(CFLAGS) -c src/libvmem.c -o $@ 

obj/vmemMon.o: src/vmemMon.c $(LIB_GCOM) 	
   cc $(CFLAGS) -c src/vmemMon.c -o $@  

obj/gestione_fifo.o: src/gestione_fifo.c $(LIB_GFIFO) $(LIB_GMEM) $(LIB_MACRO) 	
   cc $(CFLAGS) -c src/gestione_fifo.c -o $@  

obj/gestione_Mem.o: src/gestione_Mem.c $(LIB_IND) $(LIB_GSWAP) $(LIB_VMEM) $(LIB_GMEM) 	
   cc $(CFLAGS) -c src/gestione_Mem.c -o $@  

obj/gestione_swap.o: src/gestione_swap.c $(LIB_FRAMEMEM) 	
   cc $(CFLAGS) -c src/gestione_swap.c -o $@  

obj/page.o: src/page.c $(LIB_FRAMEMEM) $(LIB_PAGE) $(LIB_GFILE) $(LIB_MACRO) 	
   cc $(CFLAGS) -c src/page.c -o $@  

obj/gestione_file.o: src/gestione_file.c $(LIB_GFILE) 	
   cc $(CFLAGS) -c src/gestione_file.c -o $@  

obj/frameMem.o: src/frameMem.c $(LIB_FRAMEMEM) $(LIB_IND) 	
   cc $(CFLAGS) -c src/frameMem.c -o $@  

obj/indirizzi.o: src/indirizzi.c $(LIB_MACRO) 	
   cc $(CFLAGS) -c src/indirizzi.c -o $@  

obj/gest_comandi.o: src/gest_comandi.c $(LIB_GCOM) 	
   cc $(CFLAGS) -c src/gest_comandi.c -o $@  

bin/vmemd: $(VMEMD_OBJ) 	
   cc $(CFLAGS) $^ -o $@  

.PHONY: clean install  

install: 	
   make all  

clean: 	
   rm -f obj/*.o bin/* lib/*
quando avvio il make mi da sempre questo errore e le funzioni che dice di non trovare sono scritte da me e incluse con #include"../inc/libreria.h"
per altre librerie non ha riscontrato errori ma per questa si!!

vi posto l'errore:
codice:
make all 
make[1]: ingresso nella directory «/home/moro/Scrivania/progetto» 
cc -Wall -g -c src/vmemMon.c -o obj/vmemMon.o 
cc -Wall -g -c src/gest_comandi.c -o obj/gest_comandi.o 
cc -Wall -g -c src/gestione_fifo.c -o obj/gestione_fifo.o 
cc -Wall -g -c src/libvmem.c -o obj/libvmem.o 
ar rcs lib/libvmem.a src/libvmem.o obj/gestione_fifo.o obj/libvmem.o 
cc -o bin/vmemMon obj/vmemMon.o obj/gest_comandi.o -Llib/ -lvmem 
cc -Wall -g -c src/gestione_Mem.c -o obj/gestione_Mem.o 
cc -Wall -g -c src/frameMem.c -o obj/frameMem.o 
cc   obj/gestione_fifo.o   -o obj/gestione_fifo 
/usr/lib/gcc/i486-linux-gnu/4.4.1/../../../../lib/crt1.o: In function `_start': 
/build/buildd/eglibc-2.10.1/csu/../sysdeps/i386/elf/start.S:115: undefined reference to `main' 
obj/gestione_fifo.o: In function `get_request_server': 
/home/moro/Scrivania/progetto/src/gestione_fifo.c:215: undefined reference to `create' 
/home/moro/Scrivania/progetto/src/gestione_fifo.c:222: undefined reference to `chk_pid' 
/home/moro/Scrivania/progetto/src/gestione_fifo.c:229: undefined reference to `get' 
/home/moro/Scrivania/progetto/src/gestione_fifo.c:236: undefined reference to `put' 
/home/moro/Scrivania/progetto/src/gestione_fifo.c:249: undefined reference to `chk' 
collect2: ld returned 1 exit status
 make[1]: *** [obj/gestione_fifo] 
Errore 1 make[1]: uscita dalla directory «/home/moro/Scrivania/progetto» 
make: *** [install] Errore 2

Sapete dirmi se c'è un errore nell'uso del makefile ?!?
Grazie mille. ciao!