ともあれ、ちょっとした回路を作る時にプリント基板作成ツールは必須である。
これまではEagleを使っていたのだけど、諸般の事情によりKiCadに乗り換えようかと考えている。KiCadはGPL2準拠のオープンソースEDA。良く出来ているのだが、バイナリの配布が少ない。しかも、Macでまともに動くバイナリはあまり見かけない。
なのでビルドすることにした。
手順はほぼBuilding KiCad from source on Mac OS X - Thomas notesにしたがった。
Xcodeとかcommand line toolsとかbrewはすでに入ってるよね・・・。
当方の環境は、Core i7 quad coreのMacmini、OSX 10.8.5、clangのバージョンは
$ clang --version Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) Target: x86_64-apple-darwin12.5.0 Thread model: posix
まずは必要なライブラリとツールをインストールする。
$ brew install cmak bzr glew cairo
ビルドする場所を作って、ソースを取得。
$ mkdir -p ~/build/kicad-build $ cd !$ $ bzr whoami "pman <[email protected]>" $ bzr branch lp:kicad
wxWidgetsのソースをhttp://sourceforge.net/projects/wxwindows/ から取得しておく。執筆時点で最新安定版の3.0.2を取得した。~/Downloadsに入っているとして、
$ tar jxvf ~/Downloads/wxWidgets-3.0.2.tar.bz2
なお、zipを取得したならunzipを使うべし。
10.10な人は先のサイトに注意書きがあるのでこれに従う。
すなわち、wxWidgets-3.0.2/src/osx/webview_webkit.mmの31行目を
#include <WebKit/WebKitLegacy.h>
とする。らしい。
で、
$ sh kicad/scripts/osx_build_wx.sh wxWidgets-3.0.2 wx-bin kicad "-j8"
などとしてビルドする。結構時間かかった気がするけど忘れた。
wx-binというディレクトリができるはず。
お次はkicad本体をビルドするのだが、試行錯誤しているときにリンカオプションでエラーが出たりしたのでそれを排除する。
変更は以下のような感じ。
$ cd ~/build/kicad-build/kicad $ bzr diff === modified file 'cvpcb/CMakeLists.txt' --- cvpcb/CMakeLists.txt 2014-10-28 15:15:39 +0000 +++ cvpcb/CMakeLists.txt 2014-11-15 04:32:00 +0000 @@ -5,6 +5,7 @@ else() set( MAKE_LINK_MAPS true ) endif() +set( MAKE_LINK_MAPS false ) add_definitions( -DCVPCB ) === modified file 'eeschema/CMakeLists.txt' --- eeschema/CMakeLists.txt 2014-10-26 19:54:48 +0000 +++ eeschema/CMakeLists.txt 2014-11-15 04:31:52 +0000 @@ -5,6 +5,7 @@ else() set( MAKE_LINK_MAPS true ) endif() +set( MAKE_LINK_MAPS false ) add_definitions( -DEESCHEMA ) === modified file 'gerbview/CMakeLists.txt' --- gerbview/CMakeLists.txt 2014-10-26 19:54:48 +0000 +++ gerbview/CMakeLists.txt 2014-11-15 04:32:09 +0000 @@ -5,6 +5,7 @@ else() set( MAKE_LINK_MAPS true ) endif() +set( MAKE_LINK_MAPS false ) add_definitions(-DGERBVIEW) === modified file 'pagelayout_editor/CMakeLists.txt' --- pagelayout_editor/CMakeLists.txt 2014-10-26 19:54:48 +0000 +++ pagelayout_editor/CMakeLists.txt 2014-11-15 04:32:21 +0000 @@ -5,6 +5,7 @@ else() set( MAKE_LINK_MAPS true ) endif() +set( MAKE_LINK_MAPS false ) add_definitions(-DPL_EDITOR) === modified file 'pcbnew/CMakeLists.txt' --- pcbnew/CMakeLists.txt 2014-10-26 19:54:48 +0000 +++ pcbnew/CMakeLists.txt 2014-11-15 04:32:52 +0000 @@ -5,6 +5,7 @@ else() set( MAKE_LINK_MAPS true ) endif() +set( MAKE_LINK_MAPS false ) add_definitions( -DPCBNEW ) add_subdirectory(router) === modified file 'tools/CMakeLists.txt' --- tools/CMakeLists.txt 2014-07-07 19:49:14 +0000 +++ tools/CMakeLists.txt 2014-11-15 04:33:13 +0000 @@ -1,5 +1,5 @@ -set( MAKE_LINK_MAPS true ) +set( MAKE_LINK_MAPS false ) if( 0 )
要するに、各ツールでMAKE_LINK_MAPSをfalseにしている。これは、brewのgcc-4.8でビルドしようとしたときに-crefとかいうのが無いと言われたから。clangでビルドするときには必要ない作業かもしれない。
気を取り直してcmakeしてMakefileを作成。
$ cd ~/build/kicad-build $ mkdir build $ cd !$ $ cmake ../kicad -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ -DwxWidgets_CONFIG_EXECUTABLE=../wx-bin/bin/wx-config \ -DKICAD_SCRIPTING=OFF -DKICAD_SCRIPTING_MODULES=OFF \ -DKICAD_SCRIPTING_WXPYTHON=OFF -DCMAKE_INSTALL_PREFIX=../bin \ -DCMAKE_BUILD_TYPE=Release
でmakeする。
$ make -j8
エラーが出たりした場合はVERBOSE=1を付けてmakeを実行し、実行コマンドを確認してみるべし。
エラーなく終了すると、kicad/kicad.appなどができている。
$ make install
これで、~/build/kicad-build/bin/kicad.appなどができている。この時点でツール類が起動できなければビルドに失敗しているので、エラーメッセージを頼りに頑張って修正しよう。
最後に、binをKicadなどとリネームして/Applicationsに配置すれば良い。
KiCadのライブラリが無いと回路を作るときに残念なことになるので、これも取得する。
$ cd ~/build/kicad-build $ git clone https://github.com/KiCad/kicad-library.git $ cd kicad-library $ cmake -DCMAKE_INSTALL_PREFIX=/ $ make $ sudo make install
これで/Library/Application Support/kicadにライブラリがインストールされる。
と、長くなったが、今回作成したKicad.appを公開しておく。ライブラリのインストールも含めたpkg形式にした。これを学生にも配る算段。
10.8と10.9で動作を確認したが、無保証なので自己責任でご使用下さいな。
http://www.f.ait.kyushu-u.ac.jp/~ishida/up/kicad/Kicad_20141112_bzr5266.pkg
実は、参考にしたサイトではバイナリも公開されている。
が、試してみたところ10.8ではうまく動かなかった。標準ではない外部ライブラリを参照したり、10.8にはないライブラリ関数を使っているのが原因らしい。