« rake(Ruby版のmake)[ | メイン | JUnitで DataSource を使う »

rake に挑戦

About "Rake Tutorial"Introducing Rake を試してみる。

環境は、Windows2000、One-Click Installer 1.8.2-15Borland C++ Compiler 5.5

Borland C++ Compilerを使うのは初めてなので、まず、Borland C++ Compiler 5.5 の動作確認から。

hello.cpp を作成。

/* hello.cpp */
#include <iostream.h>
main()
{
  cout << "Hello, World!" << endl;
  return 0;
}

コンパイルして、

> bcc32 hello.cpp

実行する。

> hello.exe
Hello, World!

OK。

チュートリアル にしたがって、main.c、greet.h、greet.c、build.bat(チュートリアルではbuild.sh)を作成する。

main.c

#include "greet.h"
int main() {
  greet ("World");
  return 0;
}

greet.h

extern void greet(const char * who);

greet.c

#include <stdio.h>
void greet (const char * who) {
  printf ("Hello, %s\n", who);
}

build.bat

bcc32 -c -o main.obj main.c
bcc32 -c -o greet.obj greet.c
bcc32 -ehello main.obj greet.obj

build.batを実行する。

> build.bat
> hello.exe
Hello, World

コンパイルに成功して、hello.exeが作られる。
hello.exeを実行すると、Hello, World の文字が表示される。

main.c から main.obj が、greet.c から greet.obj が作られて、main.obj と greet.obj から hello.exe が作られる。

greet.c を変更したら greet.obj を更新しないと、hello.exe には、greet.c の変更は反映されないよ。 つまり、ファイル間に依存関係があるということ。

Rakefile では、依存関係は次のように記述する

file "main.obj" => ["main.c", "greet.h"]

Rakefileを作る。

Rakefile

file 'main.obj' => ["main.c", "greet.h"] do
  sh "bcc32 -c -o main.obj main.c"
end

file 'greet.obj' => ['greet.c'] do
  sh "bcc32 -c -o greet.obj greet.c"
end

file "hello" => ["main.obj", "greet.obj"] do
  sh "bcc32 -ehello main.obj greet.obj"
end

rake hello を実行する。

> rake hello
bcc32 -ehello main.obj greet.obj
> hello.exe
Hello, World

成功だ。

greet.c の Hello を Hi に変更する。

#include <stdio.h>
void greet (const char * who) {
  printf ("Hi, %s\n", who);
}

もう一度、rake hello。

> rake hello
bcc32 -c -o greet.obj greet.c
bcc32 -ehello main.obj greet.obj
> hello.exe
Hi, World

変更された greet.c はコンパイルした。
変更されていない main.c はコンパイルしない。

次回に続く。(たぶん)

トラックバック

このエントリーのトラックバックURL:
http://www.gesource.jp/mt/mt-tb.cgi/50

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2005年10月23日 21:03に投稿されたエントリーのページです。

ひとつ前の投稿は「rake(Ruby版のmake)[」です。

次の投稿は「JUnitで DataSource を使う」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.35