Salve a tutti ho un problema nella creazione del makefile per un programma in C che ho fatto, spero qualcuno possa aiutarmi, di seguito riporto i miei file e le dipendenze, e ovviamente il makefile che ho fatto ma nn funzionante.

list.c list.h
block.c block.h
fifo.c fifo.h
libsmm.c libsmm.h
smmmon.c smmmon.h
server.c server.h

di seguito le dipendenze:

list.c ha bisogno di list.h
block.c ha bisogno di block.h e list.h
fifo.c ha bisogno di block.h
libsmm.c ha bisogno libsmm.h e di fifo.h
smmmon.c ha bisogno di smmmon.h e libsmm.h
server.c ha bisogno di server.h e di fifo.h

inoltre libsmm.o dovrà essere una libreria.a

di seguito il makefile:

CC=gcc
CFLAGS+=-g

all: bin/smmd lib/libsmm.a bin/smmMon

bin/smmd: obj/list.o obj/block.o obj/fifo.o
$(CC) $(CFLAGS) -c src/server.c -o obj/smmd.o
$(CC) $(CFLAGS) obj/smmd.o $^ -o $@

lib/libsmm.a: obj/list.o obj/block.o obj/fifo.o
$(CC) $(CFLAGS) -c src/libsmm.c -o obj/libsmm.o
ar rcs $@ obj/libsmm.o $^

obj/list.o:
$(CC) $(CFLAGS) -c src/list.c
@ mv list.o ./obj

obj/block.o: obj/list.o
$(CC) $(CFLAGS) -c src/block.c -o obj/block.o

obj/fifo.o: obj/list.o obj/block.o
$(CC) $(CFLAGS) -c src/fifo.c -o obj/fifo.o

bin/smmMon: lib/libsmm.a
$(CC) $(CFLAGS) src/smmmon.c -lsmm -L./lib -o $@




grazie a tutti come sempre