┃* Fri Nov 23 16:42:47 JST 2012 Naoyuki Sawa
┃- 「Boehm GC」は、ソースコードのみで配布されており、自分でライブラリをビルドする必要があります。
┃  「Boehm GC」のソースコードを、Visual Studio 6.0 を使ってビルドして、ライブラリを生成しました。
┃- アプリケーションからでライブラリを使用する際に、最小限必要なファイルを残し、他は削除しました。
┃- 以下、ビルド手順を記録します。

■ 「Boehm GC」のソースコードをダウンロードする。
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.2d.tar.gz ⇒ \clip\keep\gc-7.2d.7zに保存した。
,又は,
http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc.tar.gz … その時点の最新ver。2012/11/23時点では上記ファイルと同じ内容である。

■ gc.tar.gzを展開する。
gc.tar.gz のソースコードバージョンに対応した、フォルダが展開します。
2012/11/23時点の gc.tar.gz は、gc-7.2 というフォルダ名になりました。

■ 展開したフォルダの中へ移動する
> cd gc-7.2

■ Visual Studio 用の メイクファイルを、MAKEFILE にリネームする。
> ren NT_MAKEFILE MAKEFILE

■ MAKEFILE を修正する。
Visual Studio 用の メイクファイルには、一点、修正した方が良い点があります。
│.c.obj:
│    $(cc) $(cdebug) $(cflags) $(cvars) -Iinclude -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL $*.c /Fo$*.obj
│                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~ 追加
│.cpp.obj:
│    $(cc) $(cdebug) $(cflags) $(cvars) -Iinclude -DALL_INTERIOR_POINTERS -DGC_NOT_DLL -D_CRT_SECURE_NO_DEPRECATE -DDONT_USE_USER32_DLL $*.cpp /Fo$*.obj
│                                                                                                                 ~~~~~~~~~~~~~~~~~~~~~ 追加
上記のように修正しないと、コンソールアプリケーションでライブラリを使用する場合にも、user32.dll を明示的にリンクしなければならなくなります。
DONT_USE_USER32_DLL マクロを定義しておくことで、この問題が解消します。
詳細は、「Boehm GC」のソースコードの misc.c を参照してください。

■ Visual Studio 6.0 の環境変数を設定する。
> C:\Program Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT

■ ビルドする。
Visual Studio 用の メイクファイルの先頭に記載されている通り、下記のコマンドでビルドします。
> nmake nodebug=1 all

■ 必要なファイルのみを残して、他は削除する。
アプリケーションからでライブラリを使用する際に、最小限必要なファイルは、下記のみです:
│gc.lib
│include/gc.h
│include/gc_version.h
│include/gc_config_macros.h
│include/gc_cpp.h　… C++で使用しない場合はこれも不要
最小限必要なファイルは上記のとおりなのですが、それらに加えて include フォルダ直下のヘッダファイルも、全て残しておくことにしました。
非推奨(problematic)ではあるが、便利な関数がいくつか、gc.h 以外のヘッダファイル内で宣言されているからです。(GC_finalize_all() など)

================================================================================
┃* Sun Sep 22 18:51:53 JST 2013 Naoyuki Sawa
┃「Boehm GC」でメモリリークを検出すると、「実効ファイル名.gc.log」というファイルにログが出力される。
┃この動作を変更し、コンソールへ直接ログを出力したい場合は、プログラムの先頭に以下のように書けば良い:
┃＞putenv("GC_LOG_FILE=CON");//ログ出力先を指定
┃＞GC_set_find_leak(1);//メモリリーク検出を開始

================================================================================
┃* Fri Apr 25 10:09:50 JST 2014 Naoyuki Sawa
┃- 「Boehm GC」を7.4.0にバージョンアップしました。
┃  ちみみに、「Boehm GC」のWebサイトの場所が変わったようです:
┃  ⇒http://www.hboehm.info/gc/
┃  今回ダウンロードしたファイルのURL:
┃  ⇒http://www.hboehm.info/gc/gc_source/gc-7.4.0.tar.gz ⇒ \clip\keep\gc-7.4.0.7zに保存した。
┃- ビルド方法は、gc-7.2d.tar.gzの時とほぼ同様です。上記の説明を参照してください。
┃  ただし、gc-7.4.0.tar.gzのソースには、MSVC++ 6.0対応に関して2箇所間違いがあり、そのままではコンパイルエラーになります。
┃  コンパイルエラーを回避するために、下記のように修正してください:
┃│① gc-7.4.0/include/gc_config_macros.h 235行目:
┃│  【修正前】# elif defined(_MSC_VER) && _MSC_VER >= 14
┃│  【修正後】# elif defined(_MSC_VER) && _MSC_VER >= 1400
┃│② gc-7.4.0/include/gc_config_macros.h 269行目:
┃│  【修正前】# elif defined(_MSC_VER) && _MSC_VER >= 12
┃│  【修正後】# elif defined(_MSC_VER) && _MSC_VER >= 1400

================================================================================
┃* Thu Sep 11 21:15:51 JST 2014 Naoyuki Sawa
┃- 「Boehm GC」を7.4.2にバージョンアップしました。
┃  今回ダウンロードしたファイルのURL:
┃  ⇒http://www.hboehm.info/gc/gc_source/gc-7.4.2.tar.gz ⇒ \clip\keep\gc-7.4.2.7zに保存した。
┃- ビルド方法は、gc-7.2d.tar.gzの時とほぼ同様です。上記の説明を参照してください。
┃- 前回のgc-7.4.0.tar.gzで行った、MSVC++ 6.0対応のための修正を、今回のgc-7.4.2.tar.gzでも行う必要が有りました。
┃  前回のgc-7.4.0.tar.gzの説明を、参照してください。

