デバッグ情報を含めないドライバビルド

ドライバはなぜか Free Build 環境でビルドしてもデバッグ情報(リンカオプション /debug)が含まれる。そのためバイナリには pdb ファイルまでのフルパスが含まれることになるのだが、フルパスが残るのは個人的にあまり気分が良くない*1

そこで、Free Build 時にこれを含めないようにするには C:\WinDDK\\bin\makefile.new を編集し、デバッグセクションを作成しないように修正する。
2586行目ぐらいが次のようになっているはずなので

! ifdef USE_INCREMENTAL_LINKING
LINKER_DBG_SECTION=/debug /debugtype:cv,pdata
! else
LINKER_DBG_SECTION=/debug /debugtype:cv,fixup,pdata
! endif

これを DDKBUILDENV 変数の値で分岐させる。

! ifdef USE_INCREMENTAL_LINKING
LINKER_DBG_SECTION=/debug /debugtype:cv,pdata
! else
!  if ("$(DDKBUILDENV)" == "chk")
LINKER_DBG_SECTION=/debug /debugtype:cv,fixup,pdata
!  endif
! endif

これで Free Build するとpdbへのフルパスが埋め込まれなくなる。

*1:そもそも私のプロジェクトはソースがついてるのでビルドできるし。