- PR -

JavaプログラムによるMakeコマンドの実行について

1
投稿者投稿内容
くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-01-27 16:16
お世話になっております。
題意の件について質問させて頂きます。


ProcessBuilderを用いて外部プロセスを起動させるには
下記の方法で起動できることが判明しています。

ProcessBuilder pb = new ProcessBuilder("パス" + "プロセス名");
Process process = builder.start();


この手法を用いて「Cygwin\\bin」の「Make.exe」を実行
しようと思っているのですが、上記の方法ではMakefile
を用意していてもMakeが実行されませんでした。

【Makefile内容】
TARGET = test1
gcc : $(TARGET)
gcc $(TARGET).c -o $(TARGET).exe


【test1.cの内容】
int main(void){
printf("hogehoge");
return 0;
}

コマンドプロンプトを起動し、上記のMakefile、および、
ソースコード(test1.c)が格納されているディレクトリへ
移動後、プロンプト上でMakeを実行すると「test1.exe」
が作成されました。

以上の事より、原因はプログラム上でMakeを実行している
場所に問題があるとわかりました。

下記のサイトで"-c dir"を使うことでMake実行前に指定の
ディレクトリへ移動するそうですが、Cygwin\\make.exe に
"-c"という引数は存在しませんでした。

【参考サイト】
http://www.linux.or.jp/JM/html/GNU_make/man1/make.1.html

"-i dir"等を試しているのですが、解決の糸口が見つから
ない為、是非皆様の知識をお借りしたく思い投稿しました。

プログラム上で任意のディレクトリに存在するMakefileを
読み込み、ビルドを実行するにはどのような命令を記述す
ればよいかをご教授ください。
よろしくお願いします。

くまぁ
常連さん
会議室デビュー日: 2006/01/26
投稿数: 21
投稿日時: 2006-01-27 16:32
皆様申し訳ありません。

私自身の調査不足、および、ケアレスミスでした。
「Cygwin」の「make」にも引数"-C dir"は存在し、
以下のようなケアレスミスを犯していました。

(誤)make -c dir
(正)make -C dir

ご迷惑をおかけしました。
1

スキルアップ/キャリアアップ(JOB@IT)