[quote=640199,0,1,19385]
Voici mon makefile, il marche si j'enleve la regle :
#execute program
run: ${MAINFILE}
cd class;java $^
car si je fais : make run dans une console, il me dit pas de regle pour la cible run. Je ne comprends pas pourquoi, que faire ? d'ou ca vient ?
#compiler option
CFLAGS = -g
#package list
P1 = search
P11 = search/basic
P12 = search/problem
#.class file with main class
MAINFILE = ${P1}/Main
#source files
SRC =\
|
[/quote]
je pense qu'il faut mettre un espace avant '\'
[quote=640199,0,1,19385]
${P1}/Main.java\
${P11}/Heuristic.java ${P11}/Blind.java ${P11}/BasicSearch.java ${P11}/AbstractSearch.java\
${P12}/Puzzle.java ${P12}/Queens.java
#target + rules
all: normal
#standard compilation
normal: ${SRC}
javac -cp class -d class ${CFLAGS} $^
#print warning
verbose: ${SRC}
javac -Xlint -cp class -d class ${CFLAGS} $^
#execute program
run: ${MAINFILE}
cd class;java $^
#build javadoc
jdoc: ${SRC}
javadoc -d ./javadoc $^
#delete .class generated files
clean:
rm -Rf class/*
#delete .class generated files plus all the javadoc
cleanall:
rm -Rf class/*;rm -Rf javadoc/*
|
[/quote]
Elle est où la regle pour fabriquer ${MAINFILE} car telles que tu as défini les choses, make ne sait pas fabriquer ton ${MAINFILE} et par conséquence, plante
Message édité par western le 22-02-2005 à 13:19:54