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