D'abord bonjour à tous, comme c'est ma première fois sur ce forum, je vais essayer d'être aussi clair que possible, toutefois, soyez indulgent...

Je fais actuellement des petits tests pour apprendre le JNI, sans entrer dans les détails, voici mon problème:
  • j'ai un lot de fichiers: des ".c", des ".h", et des ".def"
  • jusque là, je tapais par exemple depuis une fenêtre "invite de commande":

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
gcc -c *.c  // pour compiler ;)
gcc -shared -o lib.dll prog.c prog.def  // pour génerer le .dll qui permet de faire communiquer le code java avec le c
De cette manière çà fonctionne impec' sauf qu'avec 40 fichiers çà commence à être long... Je voudrais donc faire un makefile !
En parcourant google, j'ai rédigé ce Makefile qui visiblement n'est pas correct:

SRC = prog1.c prog2.c prog3.c interface1.c interface2.c interface3.c
DEF = Classe1.def Classe2.def
OBJ = $(SRC:.c=.o)
CC = gcc
LFLAGS = -c
LFLAGS2 = -shared -o
%.o: %.c *.h $(CC) -c $(<) -o $(@) #pour compiler
all: $(OBJ) $(CC) $(OBJ) $(LFLAGS) #pour compiler suite
$(CC) $(LFLAGS2) lib.dll $(OBJ) $(DEF) #pour générer le fameux .dll

clean: del $(OBJ)
Quand je lance ce makefile, j'ai çà qui s'affiche:

gcc -c -o prog1.o prog1.c
gcc -c -o prog2.o prog2.c
gcc -c -o prog3.o prog3.c
gcc -c -o interface1.o interface1.c
gcc -c -o interface2.o interface2.c
gcc -c -o interface3.o interface3.c
make: ***no rule to make target 'gcc', needed by 'all'. stop.


Au final, mes fichiers sont compilés (j'ai bien les ".o") mais pas un ".dll" à l'horizon...

Si des pros des Makefile passent par là, un p'tit coup de pouce siouplait.

Merci d'avance.