2017-04-17 18 views
0

私は代入に取り組んでいます(ただしこれは代入の一括/肉ではありません)。割り当てフォルダ内のMakefile(ディレクトリは〜/ CSC2001F/Assignment2/srcのようになります。srcはbin、doc、testなどに置き換えられます)srcに.javaファイルを持つJava Makefile .classを持つ必要があります。

私はmakeを実行するとうまく動作するmakefileを持っていますsrcに置いてクラスファイルをそこに置きます。 〜/ CSC2001F/Assignment2からjavaファイルをsrcに作成し、クラスファイルをbinに入れたいと思っています。どうすればいい? 私の現在のMakefile:

JAVAC=/usr/bin/javac 
.SUFFIXES: .java .class 
.java.class: 
    $(JAVAC) $< 

classes: BinaryTreeNode.class BinaryTree.class \ 
    BTQueueNode.class BTQueue.class \ 
    AVLTree.class PrintIt.class \ 
    SearchIt.java SearchAVL.java \ 

default: $(CLASSES) 

clean: 
    rm *.class 

答えて

0

あなたは、この使用してサフィックスルールを行うことができない、すべてのことは、POSIX標準のmakeで利用可能ですです。標準のmakeだけを使用しなければならない場合は、異なるディレクトリに物事を入れる唯一の方法は、明示的なルールを書くことです。例えば:

bin/BinaryTreeNode.class: src/BinaryTreeNode.java 
     $(JAVAC) src/BinaryTreeNode.java 
bin/BinaryTree.class: src/BinaryTree.java 
     $(JAVAC) src/BinaryTree.java 

等(あなたは、POSIX標準のmakeでの明示的なルールと$<、のいずれかを使用することはできません)。

もっと強力なmakeを使うことができれば、もっと強力な暗黙のルールがあるでしょう。たとえば、GNU makeを使用している場合、次のように接尾辞ルールの代わりにパターンルールを使用できます。

bin/%.class: src/%.java 
     $(JAVAC) $<