1Lepton Electronic Design Automation 2=================================== 3[![Join the chat at https://gitter.im/Lepton-EDA](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/Lepton-EDA) 4 5Introduction 6============ 7 8Lepton EDA is a suite of free software tools for designing 9electronics. It provides schematic capture, netlisting into 10over 30 netlist formats, and many other features. It was forked 11from the [gEDA/gaf suite](http://wiki.geda-project.org/geda:gaf) 12in late 2016 by most of its active developers at that time. 13 14The GPL Electronic Design Automation (gEDA) project has produced and 15continues working on a full GPL'd suite and toolkit of Electronic 16Design Automation tools. These tools are used for electrical circuit 17design, schematic capture, simulation, prototyping, and 18production. Currently, the gEDA project offers a mature suite of free 19software applications for electronics design, including schematic 20capture, attribute management, bill of materials (BOM) generation, 21netlisting, analog and digital 22simulation, and printed circuit board (PCB) layout. 23 24The gEDA project was started because of the lack of free EDA tools for 25POSIX systems with the primary purpose of advancing the state of free 26hardware or open source hardware. The suite is mainly being developed 27on the GNU/Linux platform with some development effort going into 28making sure the tools run on other platforms as well. 29 30Compatibility with geda-gaf 31=========================== 32 33Lepton EDA is backward compatible with its predecessor `geda-gaf` 34and supports the same file format for symbols and schematics. We 35are planning to support it in future since there are lots of 36symbols and schematics created using it. We cannot promise you to 37support any change in `geda-gaf` in future, though. It's up to 38you, our users, to point out what feature you would like to have 39in Lepton. 40 41Tools in the Lepton EDA suite 42============================= 43 44The major components of the Lepton suite are: 45 46- `liblepton` 47 - A library of functions for manipulating Lepton schematics and symbols 48 and rendering primitives. 49 50- `libleptongui` 51 - A library of GUI functions. 52 53- `lepton-schematic` 54 - A schematic editor. 55 56- `lepton-attrib` 57 - A spreadsheet-like program for bulk editing of component attributes. 58 59- `lepton-netlist` 60 - A highly-flexible, hierarchy-aware utility which parses schematics 61 to generate a number of outputs, including netlists for a wide 62 variety of PCB layout tools. It can also generate bills of 63 materials and DRC reports for your schematics. 64 65- `lepton-sch2pcb` 66 - A command-line utility for streamlining the workflow where 67 'PCB' <http://pcb.geda-project.org/> and `lepton-schematic` 68 are used together. 69 70- `lepton-symcheck` 71 - A utility for checking for common errors in schematic symbol files. 72 73- `lepton-cli` 74 - A utility for interactive and batch mode working with Lepton 75 EDA Scheme API, exporting schematics into various formats, and 76 configuring all the programs of the suite. 77 78Installation 79============ 80 81Dependencies 82------------ 83 84In order to compile Lepton EDA from the distributed source 85archives, you *must* have the following tools and libraries 86installed: 87 88- A C/C++ compiler and standard library (GCC/glibc are recommended). 89 90- The `pkg-config` tool for managing shared libraries. 91 <http://pkgconfig.freedesktop.org/> 92 93- Guile ("GNU's Ubiquitous Intelligent Language for Extensions"), 94 version 2.2.0 or later. <http://www.gnu.org/software/guile/> 95 96- GTK+ (the Gimp Toolkit), version 2.24.0 or later. 97 <http://www.gtk.org/> 98 99- GNU `gettext`, version 0.18 or newer. 100 <http://www.gnu.org/software/gettext/> 101 102- The `lex` tool for generating lexical scanners. The `flex` 103 implementation recommended. <http://flex.sourceforge.net/> 104 105- The `awk` tool for data processing. GNU Awk (`gawk`) is 106 recommended. <http://www.gnu.org/software/gawk/> 107 108The following tools and libraries are **highly recommended**: 109 110- GNU `troff` (`groff`). <http://www.gnu.org/software/groff/> 111 112- The freedesktop.org MIME info database. 113 <http://freedesktop.org/Software/shared-mime-info> 114 115- The freedesktop.org utilities for manipulating `.desktop` files. 116 <http://www.freedesktop.org/software/desktop-file-utils> 117 118The following tools and libraries are optional: 119 120- `libstroke`, a stroke and gesture recognition library. If this is 121 available, `lepton-schematic` will support mouse gesture recognition. 122 <http://www.etla.net/libstroke/> 123 124- The `doxygen` API documentation tool. This is required for 125 building the Lepton developer API documentation, not for the 126 regular user documentation. <http://www.doxygen.nl> 127 128- 'Inkscape' or 'ImageMagick' for svg to png or pdf conversion 129 This is required for building the Lepton developer API documentation, 130 not for the regular user documentation. 131 <http://inkscape.org/> 132 <http://www.imagemagick.org/script/index.php> 133 134- 'Graphviz' for drawing directed graphs. 135 This is required for building the Lepton developer API documentation, 136 not for the regular user documentation. 137 <http://www.graphviz.org/> 138 139Troubleshooting dependencies 140---------------------------- 141 142> "I've installed the `libfoo` library, but `./configure` isn't 143> picking it up!" 144 145Many modern operating system distributions split a library into two 146packages: 147 1481. a `libfoo` package, which contains the files necessary to 149 *run* programs which use `libfoo`. 150 1512. a `libfoo-dev` or `libfoo-devel` package, which contains the files 152 necessary to *compile* programs which use `libfoo`. 153 154If you're having problems, make sure that you have all of the 155necessary `dev` or `devel` packages installed. 156 157> "I have installed two versions of guile, but `./configure` 158> uses a wrong one!" 159 160Specify right `guile` binary on the `configure` stage, e.g.: 161 162 ./configure GUILE=/usr/bin/guile-2.2 163 164Installation from a source archive 165---------------------------------- 166 167First extract the archive to a sensible place: 168 169 tar -xzvf lepton-eda-<version>.tar.gz && cd lepton-eda-<version> 170 171Run the configuration script. You'll probably want to specify a 172custom directory to install Lepton to, for example: 173 174 175 ./configure --prefix=$HOME/lepton 176 177You can then compile Lepton: 178 179 make 180 181And install it (if you used a `--prefix` outside your $HOME directory, 182you may need to run this as root): 183 184 make install 185 186Installation from the git repository 187------------------------------------ 188 189Lepton uses the `git` version control system. If you wish to try out 190the very latest version of Lepton, you will need to install some extra 191tools *in addition to* the ones listed above: 192 193- The `git` version control tool, version 1.6 or newer. 194 <http://git-scm.com/> 195 196- GNU Automake, version 1.11.0 or newer. 197 <http://www.gnu.org/software/automake/> 198 199- GNU Autoconf, version 2.60 or newer. 200 <http://www.gnu.org/software/autoconf/> 201 202- GNU Libtool. <http://www.gnu.org/software/libtool/> 203 204- GNU Texinfo documentation system. 205 <http://www.gnu.org/software/texinfo/> 206 207 Note that on some distributions the TeX support for Texinfo is 208 packaged separately. 209 210Once you have these installed, you need to clone the Lepton git 211repository: 212 213 git clone https://github.com/lepton-eda/lepton-eda.git 214 215To generate the configure script, run: 216 217 ./autogen.sh 218 219You can then proceed to configure and build Lepton as described above. 220 221Noticeable configure options 222---------------------------- 223 224### --with-gtk3 225 226You can build Lepton with GTK3 GUI support if you enable it on the 227configure stage: 228 229 ./configure --with-gtk3 230 231Please note that GTK2 and GTK3 version of *lepton-attrib* require 232different additional libraries. `libgtkextra` is required for the 233GTK2 version, and `gtksheet` for GTK3. The latter can be found 234[here](https://github.com/fpaquet/gtksheet). 235 236### --disable-attrib 237 238Installation of *lepton-attrib* can be disabled on the configure 239stage: 240 241 ./configure --disable-attrib 242 243 244### --enable-contrib 245 246This option enables build of several contributed 247tools that may come in handy for some tasks. Please see Lepton 248reference manual for more information on what utilities are 249available. 250 251 252Building Lepton developer API documentation 253=========================================== 254 255Several of the Lepton libraries and applications have doxygen API 256documentation available. To generate the API documentation from the 257source code, install doxygen (see [Dependencies](#Dependencies) above. 258Next, add `--enable-doxygen` to your `configure` command line, i.e.: 259 260 ./configure --enable-doxygen 261 262To compile the documentation (quite a slow process), run: 263 264 make doxygen 265 266The documentation can then be found in: 267 268 */docs/html/index.html 269 270Getting help 271============ 272 273There are several ways to get help with installing and using Lepton 274and the rest of the gEDA tools: 275 276- Chat with Lepton developers and users at 277 [gitter.im](https://gitter.im/Lepton-EDA/Lobby). 278 You can sign in there using your Twitter, GitHub or GitLab account 279 (no registration is required to read the messages posted there). 280 This is probably the fastest way to get in touch with us. 281 282- If you prefer using IRC, there is now a Lepton channel on OFTC: 283 irc.oftc.net#lepton-eda. Sometimes you can catch Lepton users or 284 developers there. 285 286- [Lepton documentation page](https://lepton-eda.github.io) 287 is the first place to search for Lepton specific information. 288 289- [Lepton EDA wiki](https://github.com/lepton-eda/lepton-eda/wiki) 290 is a resource containing additional information that did not get 291 into the main documentation. 292 293- The gEDA website <http://www.geda-project.org> has more extensive 294 information on the gEDA tools, and links to some successful 295 projects which use gEDA. 296 297- The gEDA documentation wiki contains a large amount of helpful 298 information. A static copy is included with this distribution; see 299 the `docs/wiki/index.html` file. The wiki is accessible online at 300 <http://wiki.geda-project.org/>. 301 302- If the resources above didn't help you resolve your problem, or you 303 are having a *design* problem that you want to get help with, 304 consider subscribing to and posting your question to the 305 `geda-user` mailing list 306 (<http://wiki.geda-project.org/geda:mailinglists>). 307 You can also [browse](http://www.delorie.com/archives/browse.cgi?p=geda-user) 308 and [search](http://www.delorie.com/archives) the mailing list archives. 309 310- If you have discovered a bug, have a feature request, or have 311 written a patch to Lepton, please create an item on the lepton-eda 312 bug tracker page: 313 <https://github.com/lepton-eda/lepton-eda/issues> 314 315License 316======= 317 318Lepton EDA (this package) is freely distributable under the GNU Public 319License (GPL) version 2.0 or (at your option) any later version. See 320the `COPYING` file for the full text of the license. 321 322The programs and associated files are: 323 324 Copyright (C) 1998-2017 by Ales Hvezda and the respective original 325 authors. 326 327 Copyright (C) 2017-2021 Lepton Developers. 328 329See the `AUTHORS` file for a more extensive list of contributors to 330Lepton EDA and gEDA. 331