Java Makefile pour plusieurs fichiers
J'essaie de créer un makefile pour mon programme java qui incorpore plusieurs fichiers. Auparavant, j'avais réussi à créer un makefile pour un seul fichier en utilisant ceci:
QuickSort.class: QuickSort.java
javac -g QuickSort.java
Nettoyer: rm-f QuickSort.classe
Puisque j'ai besoin de compiler plusieurs fichiers, je l'ai mis à jour comme ceci:
Dijkstra.class:
Dijkstra3.java\
DirGraph.java
FibDijkstra.java\
FibHeap.java\
MinDijkstra.java\
MinHeap.java\
javac -g Dijkstra3.java
javac -g DirGraph.java
javac -g FibDijkstra.java
javac -g FibHeap.java
javac -g MinDijkstra.java
javac -g MinHeap.java
clean:
rm -f Dijkstra.class
Lorsque j'essaie d'exécuter make sur cela, cela produit l'erreur "Pas de règle pour rendre javac cible nécessaire par Dijkstra.classe". Suis-je près à ce que j'ai? Comment pourrais - je le modifier pour le faire cela fonctionne correctement? Merci!
EDIT: En réessayant, j'ai dû changer quelque chose de la variation originale. Maintenant, il produit une liste de tous les fichiers sans interruption entre dire que la commande n'existe pas. Évidemment, je n'essaie pas correctement de lire tous les fichiers.
EDIT 2: Je sais avoir
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
Dijkstra3.java\
DirGraph.java\
FibDijkstra.java\
FibHeap.java\
MinDijkstra.java\
MinHeap.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class
Lorsque je lance ceci, il ne produit aucune erreur pour le makefile. Au lieu de cela, il produit des erreurs pour les fichiers inclus eux-mêmes. Ce qui est bizarre c'est que dans NetBeans, quand je les ai tirés il n'y a pas d'erreurs? Ce qui pourrait être la cause de cela?
1 answers
Voici la solution finale que j'ai trouvée:
JFLAGS = -g
JC = javac
.SUFFIXES: .java .class
.java.class:
$(JC) $(JFLAGS) $*.java
CLASSES = \
Dijkstra3.java\
DirGraph.java\
FibDijkstra.java\
FibHeap.java\
MinDijkstra.java\
MinHeap.java
default: classes
classes: $(CLASSES:.java=.class)
clean:
$(RM) *.class