KiCad installation
==================

The parts of KiCad
------------------
KiCad consists of 3 packages:

kicad         - KiCad programs and core files.
kicad-doc     - Documentation and interactive help (optional package).
kicad-library - KiCad schematic, pcb & 3D-model libraries (optional package).


Installation from binary packages
---------------------------------

   KiCad binary packages exist for Linux and Windows (XP, 2000).

   Data files (schematic, boards, libraries) are compatible with all platforms.

*.zip  - KiCad packages for Windows.
*.tbz2 - KiCad for Linux.


Installation from binary packages for Windows
---------------------------------------------

The KiCad binary archive can be installed anywhere on the system that as long as the user
has write privileges.

You can create a shortcut to '${prefix}\bin\kicad.exe' where ${prefix} is the install path.


Installation from binary packages for Linux
-------------------------------------------

KiCad can be installed in '/usr' or '/usr/local'.  You must have "root" access for installation.

cd /
tar -xjf kicad-{version}.tbz2
tar -xjf kicad-doc-{version}.tbz2
tar -xjf kicad-library-{version}.tbz2

The main program is '/usr/bin/kicad'.


Linux and Windows KiCad install tree
-------------------------------------

${prefix}/bin                            - Binaries (executable files).
${prefix}/share/doc/kicad/               - Various documentation.
${prefix}/share/doc/kicad/help           - Interactive help.
${prefix}/share/kicad/demos              - Sample schematics and printed boards.
${prefix}/share/kicad/internat           - Dictionaries for interface localization.
${prefix}/share/kicad/library            - Interface localization files.
${prefix}/share/kicad/modules            - Module libraries for printed boards.
${prefix}/share/kicad/modules/packages3d - 3D component models (.wrl and .wings format).

KiCad searches for the libraries, templates, 3D models, etc. bin/../share.

Warning:
Do not change the KiCad tree, or the location of binary files.  Otherwise
KiCad may not be able to find some or all of its required files.


Mac OS X KiCad tree
-------------------

System wide files

/Library/Application Support/kicad/demos
/Library/Application Support/kicad/internat
/Library/Application Support/kicad/library
/Library/Application Support/kicad/modules
/Library/Application Support/kicad/modules/packages3d

User files can be the same as the system wide files but only inside the users home directory.

$HOME/Library/Application Support/kicad

Warning:
These paths are hardcoded into KiCad, if you put them somewhere else KiCad will not find
them when a new project is created.

Installation from source code
-----------------------------

Currently the only supported compilers are GCC on linux and windows and clang on OS X.

Some dependencies must be satisfied for the correct installation of KiCad:

wxWidgets            >= 3.0.0           http://www.wxwidgets.org/

CMake                >= 2.8.4           http://www.cmake.org/

Boost C++ Libraries: >= 1.54            http://www.boost.org/
    files used by kicad are autmatically downloaded and patched if needed
    from boost site.

OpenGL               >= 2.1
  Linux:   Mesa 3D Graphics Library     http://www.mesa3d.org/
  Windows: built-in

Zlib Compression Library                http://www.zlib.net/

cairo                                   http://cairographics.org/

GLEW                                    http://glew.sourceforge.net/

libcurl                                 http://curl.haxx.se/

OpenMP               (optional)         http://openmp.org/

GLM                  >= 9.5.4           http://glm.g-truc.net/

pkg-config                              http://pkgconfig.freedesktop.org/

Doxygen              (optional)         http://www.doxygen.nl

python               >= 2.6 (optional)  http://python.org/

wxPython             (optional)         http://www.wxpython.org/

SWIG                 >= 3.0 (optional)  http://swig.org/

libngspice           (optional)         http://ngspice.sourceforge.net/

OCE                  >= 0.16 (optional) https://github.com/tpaviot/oce

In source-tree-build are mostly unwanted, so make a subdir called "build" and
change to it.

Call cmake with the path to KiCad. E.g., when your build-folder is "build"
within source-tree, type "cmake ../".

Now your system get checked if it is able compiling KiCad and cmake generates
the Makefiles.

   After calling cmake just type "make" and build begins.

   It is easy to build only a specific binary such as pcbnew alone:
    make pcbnew

   After "make" type "make install" and install begins.

   You may install to a temporary-root with
    make install DESTDIR=<temproot>

   If you want to uninstall KiCad again type "make uninstall" from within the
build directory.


Important parameters to cmake
-----------------------------

See Documentation/development/compiling.md for a list of all CMake options
available when compiling KiCad.

-DCMAKE_BUILD_TYPE=<buildtype>
<buildtype> may current one of "Debug" and "Release".

-DCMAKE_INSTALL_PREFIX=<prefix>
Default to "/usr/local".

-DwxWidgets_ROOT_DIR=<wxInstallDir>
Required for Windows platform.

-DwxWidgets_USE_DEBUG=ON
Can be used only with -DCMAKE_BUILD_TYPE=Debug

-DCMAKE_CXX_FLAGS=<some extra flags>
Extra flags for the c++ compiler for your system required.

-DCMAKE_VERBOSE_MAKEFILE=ON
When more output is wanted use this cmake parameter or call "make VERBOSE=1".


Extra CFLAGS and linker flags
-----------------------------

If you require extra flags for compiler and linker you may give them via
environment variables
  "CXXFLAGS" (c++ compiler)
  "LDFLAGS"  (for linker)
  "CFLAGS"   (for c-compiler, not needed in kdesvn build)

eg., it may usefull on 64bit systems "-m64" to CXXFLAGS and LDFLAGS.
