Adobe FrameMaker FDK 8.0 API Client を nmake を使ってコマンドプロンプトでビルドする方法
FDK 8.0(FrameMaker Developer Kit
を使って作成するAPI Client はVisualStudio2005 の使用してビルドする。
通常、VisualStudio2005 は GUI上で開発・ビルドを行うが、
わたしがつくっている程度の小さなC/C++プログラムでは、わざわざGUIを起動するのが面倒。
面倒というより、そもそもコーディングも vim でやっているので、ビルドするためだけに
VisualStudio2005 の重いGUIを起動していることになる。
ビルドするだけなら、コマンドラインでMakeで済ませたい、と思って調べたところ、
標準でインストールされるVisualStudio2005 コマンドプロンプトを使って
namke(というMicrosoftが提供している) make ツールを使えばよいことが判明。
VisualStudio2005をインストールすると一緒にインストールされる VisualStudio2005 コマンドプロンプトは、通常のDOSプロンプトと異なり あらかじめ C++ プログラムをビルドするのに必要な環境がセットアップされている。
VisualStudio2005 コマンドプロンプト と nmake を使って API Clientを作成
前提
- foo.c ... API Clientのソースコード
- foo.dll ... foo.c を使って作り出すDLL(FDK API Client)
- c:\Adobe\FDK8 ... FDK8をインストールしたディレクトリ
ちなにみFDK8 のデフォルトインストール先は、以下の通り。
- C:\Program Files\Adobe\FDK8
パスが長いと入力が面倒なので、 今回は、C:\Adobe\FDK8 という指定が簡単な場所にインストールしました。 (インストール先に応じて読みかえてください。)
確認事項
FDK8を使って、API Client をビルドするための追加設定。
- ヘッダファイル入ったインクルードディレクトリ ... C:\FDK8\include
- FDK8ライブラリの入ったディレクトリ ... C:\FDK8\lib
- ライブラリファイル ... fdk.lib api.lib fmdbms32.lib
nmake 用 Makefile の作成
以下の内容の Makefile を foo.c と同じディレクトリに作成。
mysrc=foo.c
myobj=foo.obj
mydll=foo.dll
fdk = c:\Adobe\FDK8
fdklib = $(fdk)\lib
fdkinc = $(fdk)\include
cc = cl
link = link
rm = del
cflags = /nologo /O2 /ERRORREPORT:PROMPT /D "NDEBUG"
libs = fdk.lib api.lib fmdbms32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
$(mydll) : $(myobj)
link.exe $(myobj) /OUT:"$(mydll)" /INCREMENTAL /NOLOGO /LIBPATH:"$(fdklib)" /DLL /SUBSYSTEM:WINDOWS /MACHINE:X86 /ERRORREPORT:PROMPT $(libs)
$(myobj) : $(mysrc)
$(cc) $(cflags) -I"$(fdkinc)" -c $(mysrc)
clean :
$(rm) *.obj
$(rm) *.dll
$(rm) *.ilk
$(rm) *.lib
$(rm) *.exp
cl.exe や link.exe のオプション指定方法に関する情報が少なかったので、 完全にこれで正しいのかどうか...一応 DLLは作成できましたが。
VisualStudio のIDEで、【プロジェクト - プロパティ】で表示ダイアログ内のツリーに コマンドプロンプトというノードがあるので、そこをクリックすると、 現在の設定で、 cl.exe や link.exe にどういうオプションを与えて起動しているかがわかります。
今回はそれをみながら必要とおぼしきものを拾ってきた次第。
ビルド
- VisualStudio2005 コマンドプロンプトを起動
- foo.c のあるディレクトリまで移動
- nmake
以上です。