2010-01-31 19:49:53 +00:00
|
|
|
Compiling KiCad from Source
|
|
|
|
===========================
|
|
|
|
KiCad Documentation Team
|
|
|
|
Last revised on 31-Jan-2010 by Jerry Jacobs
|
|
|
|
|
|
|
|
Introduction
|
|
|
|
------------
|
|
|
|
This is a generic guide how to compile kicad from scratch. On windows and linux.
|
|
|
|
If you need something more distribution specific or the experimental mac-osx port
|
|
|
|
read the other documents in the Documentation/compiling folder.
|
|
|
|
|
|
|
|
Installation of Tools
|
|
|
|
---------------------
|
|
|
|
On windows:
|
|
|
|
|
|
|
|
Get msys and mingw here:
|
2007-12-20 02:56:03 +00:00
|
|
|
http://mingw.org/
|
|
|
|
msys sets up a development environment that allows the bash shell to run.
|
|
|
|
mingw are a set of tools that run on windows or under msys. You will need
|
|
|
|
at least the following mingw packages: make, gcc, g++, binutils, autoconf, and
|
|
|
|
automake.
|
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
On linux:
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Install "mesa". Use your package manager to install the
|
|
|
|
development libaries.
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Tools in PATH
|
|
|
|
-------------
|
|
|
|
Make sure g++, make and other tools are in your path.
|
2007-12-20 02:56:03 +00:00
|
|
|
If windows, then try running g++ and make from within your msys bash shell.
|
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Install or Build wxWidgets
|
|
|
|
--------------------------
|
2007-12-20 02:56:03 +00:00
|
|
|
If on windows, download
|
2010-01-31 19:49:53 +00:00
|
|
|
http://sourceforge.net/projects/wxwindows/files/wxAll/2.8.10/wxWidgets-2.8.10.zip/download
|
|
|
|
or a newer version.
|
2007-12-20 02:56:03 +00:00
|
|
|
Start msys so you have a bash shell. Decide where your wxWidgets build directory
|
2008-06-22 16:02:08 +00:00
|
|
|
will be. It must be where you can access it from within the msys environment,
|
|
|
|
such as home/<user>. Edit your msys/1.0/etc/fstab file if needed to provide
|
2008-01-06 13:23:30 +00:00
|
|
|
access to this build directory from msys. (Note that if you want you can build
|
|
|
|
a "debug" version of the wxWidgets library at this point, instead of the release
|
|
|
|
version, or in addition to the the release version.)
|
2009-05-21 17:42:42 +00:00
|
|
|
Unzip the wmMWS zip file into the build directory. Change directories into
|
|
|
|
there, and then:
|
2008-01-06 13:23:30 +00:00
|
|
|
|
|
|
|
mkdir build-release
|
|
|
|
mkdir build-debug
|
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
.Release
|
|
|
|
----
|
2008-01-06 13:23:30 +00:00
|
|
|
cd build-release
|
|
|
|
../configure --enable-unicode --enable-monolithic --disable-shared --with-msw --with-opengl
|
2007-12-20 02:56:03 +00:00
|
|
|
make
|
|
|
|
make install
|
2010-01-31 19:49:53 +00:00
|
|
|
----
|
2008-01-06 13:23:30 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
.Debug
|
|
|
|
----
|
2008-01-06 13:23:30 +00:00
|
|
|
cd build-debug
|
2008-03-18 11:53:52 +00:00
|
|
|
../configure --enable-unicode --enable-monolithic --enable-debug --enable-debug_gdb --disable-shared --with-msw --with-opengl
|
2008-01-06 13:23:30 +00:00
|
|
|
make
|
|
|
|
make install
|
2010-01-31 19:49:53 +00:00
|
|
|
----
|
2008-01-06 13:23:30 +00:00
|
|
|
|
2010-02-10 16:25:13 +00:00
|
|
|
The default install path is /usr/local. Generally speaking MinGW likes header
|
|
|
|
files in /mingw/include and library link files in /mingw/lib. You can install
|
|
|
|
path by setting --prefix=/mingw to configure above to change where "make install"
|
|
|
|
puts everything. We will refer to the --prefix setting as <wxInstallDir> below.
|
|
|
|
|
|
|
|
If you are planning to enable the USE_WX_GRAPHICS_CONTEXT option (see options
|
|
|
|
section below) on Windows using MinGW/MSYS you must build wxWidgets with the
|
|
|
|
--enable-graphics_ctx switch added to the build configurations above.
|
|
|
|
Unfortunately it is not quite that simple because MinGW does not define the
|
|
|
|
Gdi+ header and link library files. First you must download the required Gdi+
|
|
|
|
development files from
|
|
|
|
|
|
|
|
<http://www.miscdebris.net/blog/2009/09/17/adding-gdi-headers-to-mingw-to-compile-wxwidgets-with-wxgraphicscontext-support/>
|
|
|
|
|
|
|
|
and unzip them where MinGW is installed.
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
Verify that wx-config is in your path. Modify your PATH environment variable
|
2008-06-22 16:02:08 +00:00
|
|
|
if need be so you can run wx-config from a command prompt. You may have to
|
2007-12-20 02:56:03 +00:00
|
|
|
restart your msys shell, depending on how you modify your PATH.
|
|
|
|
|
2008-01-06 12:03:13 +00:00
|
|
|
If on linux, use your package manager to install shared object libraries and the
|
|
|
|
development versions of the wxWidgets packages which include the C++ headers. An
|
|
|
|
alternative is to build static libaries from source. Verify that wx-config is in
|
|
|
|
your path by running it from a command prompt. Linux users then go to next step.
|
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Install or Build zlib
|
|
|
|
---------------------
|
2008-01-29 22:36:00 +00:00
|
|
|
If on windows, download http://www.zlib.net/zlib123.zip or a newer version.
|
|
|
|
Start msys so you have a bash shell. Decide where your zlib build directory
|
|
|
|
will be. It must be where you can access it from within the msys environment,
|
2008-06-22 16:02:08 +00:00
|
|
|
such as home/<user>. Edit your msys/1.0/etc/fstab file if needed to provide
|
|
|
|
access to this build directory from msys. Unzip the zlib123.zip file into this
|
2008-01-29 22:36:00 +00:00
|
|
|
build directory. Change directories into there, and then:
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2008-04-16 04:00:19 +00:00
|
|
|
./configure
|
2008-01-29 22:36:00 +00:00
|
|
|
make
|
|
|
|
make install
|
|
|
|
|
|
|
|
|
|
|
|
If linux, use your package manager to install zlib pre-built binaries.
|
|
|
|
|
|
|
|
Note (JP Charras):
|
2010-01-31 19:49:53 +00:00
|
|
|
Under Linux, zlib is usually installed.
|
|
|
|
If it is not found by the wxWidget installation, wxWidgets creates an alternate zlib library.
|
|
|
|
Under Windows, if zlib is not installed, my cmake build will try to use the
|
|
|
|
wxWidgets zlib build. So, under windows kicad build should work without
|
|
|
|
zlib install.
|
2008-01-29 22:36:00 +00:00
|
|
|
|
2010-02-10 16:25:13 +00:00
|
|
|
If you are using the wxWidget zlib, make sure that the wxWidgets/src/zlib directory is copied
|
2010-01-31 19:49:53 +00:00
|
|
|
to ${wxWidgets_ROOT_DIR}/src/zlib
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Install CMake
|
|
|
|
-------------
|
2008-06-22 16:02:08 +00:00
|
|
|
If windows, download the installation binary for windows from cmake.org.
|
2007-12-20 02:56:03 +00:00
|
|
|
Install that and choose to add cmake to your path during installation. You
|
|
|
|
will have to restart and command shells for the new path to take effect.
|
|
|
|
Verify that cmake is in your path by trying to run it from a command prompt.
|
|
|
|
|
2008-01-06 12:03:13 +00:00
|
|
|
|
2009-05-09 17:29:48 +00:00
|
|
|
If linux, use your package manager to install cmake. You should get cmake 2.6.1
|
2007-12-20 02:56:03 +00:00
|
|
|
or later. If only an older one is available in your package repository, build
|
2009-05-09 17:29:48 +00:00
|
|
|
2.6.1 from source. Verify that cmake is in your path by trying to run it from a
|
2007-12-20 02:56:03 +00:00
|
|
|
command prompt.
|
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Obtain Sources
|
|
|
|
--------------
|
2008-06-22 16:02:08 +00:00
|
|
|
You can use the subversion repository or a tar file for this. See the wiki.
|
2007-12-20 02:56:03 +00:00
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Create Makefiles with CMake
|
|
|
|
---------------------------
|
2008-06-22 16:02:08 +00:00
|
|
|
If windows, go into your msys shell. Linux and windows users both then make
|
2007-12-20 02:56:03 +00:00
|
|
|
two "out of source" build directories:
|
|
|
|
cd <kicadSource>
|
2008-03-11 15:57:54 +00:00
|
|
|
mkdir -p build/release
|
|
|
|
mkdir build/debug
|
|
|
|
cd build/release
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
On either cmake command line shown below, you can optionally include
|
|
|
|
-DCMAKE_INSTALL_PREFIX=<finallInstallDir>
|
2008-01-06 12:03:13 +00:00
|
|
|
|
2007-12-20 02:56:03 +00:00
|
|
|
If windows, run the following command:
|
2008-01-06 12:03:13 +00:00
|
|
|
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Release -DwxWidgets_ROOT_DIR=<wxInstallDir> ../../
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
If linux, run instead the following command:
|
2008-01-06 12:03:13 +00:00
|
|
|
cmake -DCMAKE_BUILD_TYPE=Release ../../
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
Take a look at CMakeCache.txt, and in particular CMAKE_INSTALL_PREFIX, which
|
|
|
|
gives the final install directory. If not what you want, edit it with a text
|
|
|
|
editor and re-run the same cmake command again, but with no
|
|
|
|
-DCMAKE_INSTALL_PREFIX given on the command line.
|
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Compiling with Make
|
|
|
|
------------------~
|
2008-06-22 16:02:08 +00:00
|
|
|
You compile Kicad here. You will only need to do step 8) again when one of the
|
2007-12-20 02:56:03 +00:00
|
|
|
CMakeLists.txt files change. If windows, you must be in your msys shell.
|
|
|
|
On either platform then:
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2008-03-11 15:57:54 +00:00
|
|
|
cd <kicadSource>/build/release
|
2007-12-20 02:56:03 +00:00
|
|
|
make
|
|
|
|
[sudo] make install
|
|
|
|
|
|
|
|
You are now done unless you want to make a Debug build.
|
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Compiling a Debug version
|
|
|
|
-------------------------
|
2008-03-11 15:57:54 +00:00
|
|
|
cd <kicadSource>/build/debug
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
On either cmake command line shown below, you can optionally include
|
2009-05-21 17:42:42 +00:00
|
|
|
-DCMAKE_INSTALL_PREFIX=<finallInstallDir> before the final ../../ argument.
|
|
|
|
Although normally you do not install the Debug binaries, you can debug them
|
|
|
|
where they were built.
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
If windows, run the following command:
|
2008-01-06 12:03:13 +00:00
|
|
|
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug -DwxWidgets_USE_DEBUG=ON -DwxWidgets_ROOT_DIR=<wxInstallDir> ../../
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
If linux, run instead the following command:
|
2008-01-06 12:03:13 +00:00
|
|
|
cmake -DCMAKE_BUILD_TYPE=Debug -DwxWidgets_USE_DEBUG=ON ../../
|
2007-12-20 02:56:03 +00:00
|
|
|
|
|
|
|
Make the Debug binaries:
|
|
|
|
make
|
2008-01-06 12:03:13 +00:00
|
|
|
|
2009-05-21 17:42:42 +00:00
|
|
|
|
2010-01-31 19:49:53 +00:00
|
|
|
Fine-tune Build Process
|
|
|
|
-----------------------
|
2008-03-12 09:18:51 +00:00
|
|
|
These should be set from command line:
|
|
|
|
|
|
|
|
CMAKE_BUILD_TYPE Release/Debug (REQUIRED)
|
|
|
|
Choose build type: Release/Debug.
|
|
|
|
|
|
|
|
wxWidgets_USE_DEBUG ON/OFF (REQUIRED)
|
|
|
|
Should be set to ON only when CMAKE_BUILD_TYPE=Debug.
|
|
|
|
|
|
|
|
wxWidgets_USE_STATIC ON/OFF (OPTIONAL)
|
2008-06-22 16:02:08 +00:00
|
|
|
|
2008-03-12 09:18:51 +00:00
|
|
|
CMAKE_VERBOSE_MAKEFILE ON/OFF (OPTIONAL)
|
|
|
|
Turns ON/OFF verbose build messages.
|
|
|
|
You can also pass VERBOSE=1 to make for the same effect.
|
|
|
|
|
|
|
|
CMAKE_INSTALL_PREFIX (OPTIONAL)
|
2008-06-22 16:02:08 +00:00
|
|
|
|
2008-03-12 09:18:51 +00:00
|
|
|
KICAD_MINIZIP ON/OFF
|
2008-06-22 16:02:08 +00:00
|
|
|
|
2010-02-10 16:25:13 +00:00
|
|
|
USE_WX_ZOOM ON/OFF (OPTIONAL)
|
|
|
|
Experimental coordinate translation code using wxDC instead of custom
|
|
|
|
Kicad version.
|
|
|
|
|
|
|
|
USE_WX_GRAPHICS_CONTEXT ON/OFF (OPTIONAL)
|
|
|
|
Experimental advanced drawing library code using wxGraphicsContext. It
|
|
|
|
requires wxWidgets to be built with the --enable-graphics_ctx switch.
|
|
|
|
See building wxWidgets above.
|
|
|
|
|
2008-01-06 12:03:13 +00:00
|
|
|
Note: that it is easy to build only a specific binary such as pcbnew alone:
|
2007-12-20 02:56:03 +00:00
|
|
|
make pcbnew
|