147 lines
5.1 KiB
Text
147 lines
5.1 KiB
Text
h1. Ledger: Command-Line Accounting
|
|
|
|
Ledger is a powerful, double-entry accounting system that is accessed from the
|
|
UNIX command-line. This may put off some users, since there is no flashy UI,
|
|
but for those who want unparalleled reporting access to their data there are
|
|
few alternatives.
|
|
|
|
h2. For the Impatient
|
|
|
|
I know, you just want to build and play. Do this:
|
|
|
|
<pre>
|
|
git clone git://github.com/jwiegley/ledger.git
|
|
cd ledger && ./acprep && make check
|
|
</pre>
|
|
|
|
If you have all the dependencies installed (see below), this is all you need.
|
|
Now try your first ledger command:
|
|
|
|
<pre>
|
|
./ledger -f doc/sample.dat reg
|
|
</pre>
|
|
|
|
h2. To the Rest
|
|
|
|
If you're reading this file, you have in your hands the Bleeding Edge. This
|
|
may very well *not* be what you want, since it's not guaranteed to be in a
|
|
functionally complete state. It's under active development, and may change in
|
|
any way at any time.
|
|
|
|
What you may prefer is the current stable release, or the current beta branch.
|
|
The *BETA* is what I prefer people use, since I still have a chance to fix
|
|
major bugs that you find. Just e-mail me, or post to the mailing list,
|
|
they'll become a part of my work list.
|
|
|
|
| *CURRENT* | @git checkout master@ |
|
|
| *BETA* | @git checkout -b v2.6.2b origin/v2.6.2b@ |
|
|
| *RELEASE* | @git checkout v2.6.1@ |
|
|
|
|
There are also several topic branches which contain experimental features,
|
|
though none of these are guaranteed to compile. Best to chat with me on
|
|
"IRC":irc//irc.freenode.net/ledger or via the
|
|
"mailing list":http://groups.google.com/group/ledger-cli before going too
|
|
much further with those.
|
|
|
|
h2. Dependencies
|
|
|
|
If you wish to proceed in this venture, you'll need a few dependencies:
|
|
|
|
h3. For building the current master branch
|
|
|
|
|_. Library |_. Min.Ver. |_. When needed |
|
|
| Boost | 1.35 or higher | |
|
|
| GMP | 4.2.2 | |
|
|
| MPFR | 2.4.0 | |
|
|
| gettext | 0.17 | _optional_ |
|
|
| libedit | 20090111-3.0 | _optional_ |
|
|
| Python | 2.4 or higher | _optional_ |
|
|
| cppunit | 1.12.1 | _optional_, for @make check@ |
|
|
| doxygen | 1.5.7.1 | _optional_, for @make docs@ |
|
|
| graphviz | 2.20.3 | _optional_, for @make docs@ |
|
|
| texinfo | 4.13 | _optional_, for @make docs@ |
|
|
| lcov | 1.6 | _optional_, for @make report@, used with @./acprep --gcov@|
|
|
| sloccount | 2.26 | _optional_, for @make sloc@ |
|
|
|
|
h3. For building the beta or release branches
|
|
|
|
|_. Library |_. Min.Ver. |_. When needed |
|
|
| GMP | 4.2.2 | |
|
|
| pcre | 7.7 | |
|
|
| libofx | 0.8.3 | _optional_ |
|
|
| expat | 2.0.1 | _optional_ |
|
|
| libxml2 | 2.7.2 | _optional_ |
|
|
|
|
h3. MacPorts
|
|
|
|
If you build stuff using MacPorts, as I do, here is what you would run:
|
|
|
|
<pre>
|
|
sudo port install boost +python25+st
|
|
sudo port install gmp mpfr libedit pcre libofx
|
|
sudo port install cppunit doxygen texlive texinfo lcov
|
|
</pre>
|
|
|
|
You can even just install the current Ledger *RELEASE* directly:
|
|
|
|
<pre>
|
|
sudo port install ledger
|
|
</pre>
|
|
|
|
h3. Ubuntu
|
|
|
|
If you're going to be build on Ubuntu, @sudo apt-get install ...@
|
|
the following packages (current as of Ubuntu Hardy):
|
|
|
|
<pre>
|
|
build-essential libtool autoconf automake texinfo python-dev
|
|
zlib1g-dev libbz2-dev stow libgmp3-dev bjam libboost-dev
|
|
libboost-regex-dev libboost-date-time-dev libboost-filesystem-dev
|
|
</pre>
|
|
|
|
h2. Preparing the Build
|
|
|
|
The next step is preparing your environment for building. While you can use
|
|
@autogen.sh@, I've prepared a script that does a lot more of the footwork for
|
|
you:
|
|
|
|
<pre>
|
|
./acprep
|
|
</pre>
|
|
|
|
If you want to run with complete debugging on, as I do, use this:
|
|
|
|
<pre>
|
|
./acprep --devel --boost SUFFIX
|
|
</pre>
|
|
|
|
Where *SUFFIX* is the letters that occur after @libboost_regex-SUFFIX.a@ in
|
|
your library directory. It might be @mt@, or @xgcc40@, or @st@, etc.
|
|
|
|
Please read the contents of @config.log@ if the configure step fails.
|
|
|
|
h2. Building
|
|
|
|
Once you have the dependencies installed and the source prepared for building,
|
|
run @make@. If you have CppUnit installed, I prefer you always run
|
|
@make fullcheck@, as this will verify Ledger against the unit tests, the
|
|
Python unit tests (if applicable), and the regression tests.
|
|
|
|
If you have extra CPU cycles to burn, perhaps try @make release-distcheck@,
|
|
which provides the most thorough shakedown of a healthy source tree.
|
|
|
|
h2. Resources
|
|
|
|
Now that you're up and running, here are a few resources to keep in mind:
|
|
|
|
| Home page | "http://www.newartisans.com/software/ledger.html":http://www.newartisans.com/software/ledger.html |
|
|
| IRC channel | "#ledger on irc.freenode.net":irc://irc.freenode.net/ledger |
|
|
| Mailing List / Forum | "http://groups.google.com/group/ledger-cli":http://groups.google.com/group/ledger-cli |
|
|
| GitHub project page | "http://github.com/jwiegley/ledger":http://github.com/jwiegley/ledger |
|
|
| Buildbot status | "http://www.newartisans.com:9090":http://www.newartisans.com:9090 |
|
|
| Ohloh code analysis | "http://www.ohloh.net/projects/ledger":http://www.ohloh.net/projects/ledger |
|
|
|
|
If you have ideas you'd like to share, the best way is either to e-mail me a
|
|
patch (I prefer attachments over pasted text), or to get an account on GitHub.
|
|
Once you do, fork the "Ledger project":http://github.com/jwiegley/ledger, hack
|
|
as much as you like, then send me a pull request via GitHub.
|