No description
Find a file
John Wiegley 858978de89 Journal data structures now use date_t instead of datetime_t.
This means transactions can only have day-level granularity -- which has
always been the case from an data file point of view.  The advantage to this
restriction is that reports will now be immune from daylight savings related
bugs, where a transaction falls to the wrong side of a --monthly report, for
example.
2008-08-01 17:37:22 -04:00
scripts Added a new script that enables use of Ledger as a smart "du". 2008-04-13 02:41:31 -04:00
test Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
.gitignore Cleaned up the value expression code a bit before undertaking the real work of 2008-07-27 20:37:21 -04:00
account.cc Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
account.h Enabled a huge number of warning flags for g++ in acprep, and fixed them all 2008-07-30 05:12:46 -04:00
acprep Corrected a failing test. 2008-07-30 15:57:03 -04:00
amount.cc Cleaned up some method names and documentation relating to values. 2008-07-31 05:05:24 -04:00
amount.h Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
amounts.cc (read_binary_journal): Fixed a tiny memory leak when reading from a 2008-04-13 02:41:28 -04:00
balance.cc Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
balance.h Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
balpair.h Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
binary.cc A new binary_cache_t object has been creating to manage saving and restoring a 2008-07-31 04:28:58 -04:00
binary.h A new binary_cache_t object has been creating to manage saving and restoring a 2008-07-31 04:28:58 -04:00
cache.cc Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
cache.h Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
commodity.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
commodity.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
configure.tmpl Renamed configure.in to configure.tmpl. 2008-05-11 20:50:12 -04:00
csv.cc Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
csv.h Moved around and renamed a very large amount of code in order to rationalize 2008-07-29 20:10:03 -04:00
derive.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
derive.h A large body of work to get the register report printing again, but still 2008-07-27 00:10:35 -04:00
emacs.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
emacs.h Moved around and renamed a very large amount of code in order to rationalize 2008-07-29 20:10:03 -04:00
entry.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
entry.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
error.h Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
expr.cc Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
expr.h Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
fdstream.hpp Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
flags.h Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
format.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
format.h Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
gnucash.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
gnucash.h Value expression architecture is now rewritten, but the functionality of the 2008-07-29 05:59:38 -04:00
hooks.h Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
journal.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
journal.h Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
ledger.el Merged in from master. 2008-07-21 17:34:39 -04:00
ledger.h Value expression architecture is now rewritten, but the functionality of the 2008-07-29 05:59:38 -04:00
ledger.texi More copyright date updates. 2008-07-21 06:29:40 -04:00
ledger.vim *** empty log message *** 2008-04-13 02:41:17 -04:00
LICENSE More copyright date updates. 2008-07-21 06:29:40 -04:00
main.cc Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
Makefile.am A new binary_cache_t object has been creating to manage saving and restoring a 2008-07-31 04:28:58 -04:00
mask.cc A new binary_cache_t object has been creating to manage saving and restoring a 2008-07-31 04:28:58 -04:00
mask.h A new binary_cache_t object has been creating to manage saving and restoring a 2008-07-31 04:28:58 -04:00
NEWS Added the concept of "balance setting transactions". 2008-07-27 18:37:55 -04:00
ofx.cc Moved around and renamed a very large amount of code in order to rationalize 2008-07-29 20:10:03 -04:00
ofx.h Value expression architecture is now rewritten, but the functionality of the 2008-07-29 05:59:38 -04:00
op.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
op.h Improved the output from some debugging commands. 2008-08-01 02:53:32 -04:00
option.cc Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
option.h Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
parser.cc Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
parser.h Value expression architecture is now rewritten, but the functionality of the 2008-07-29 05:59:38 -04:00
predicate.h Enabled a huge number of warning flags for g++ in acprep, and fixed them all 2008-07-30 05:12:46 -04:00
pushvar.h Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
py_amount.cc Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
py_commodity.cc Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
py_times.cc Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
py_utils.cc Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
pyfstream.h Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
pyinterp.cc Changed the way scopes are structured for an upcoming design change. 2008-07-29 18:57:02 -04:00
pyinterp.h Changed the way scopes are structured for an upcoming design change. 2008-07-29 18:57:02 -04:00
pyledger.cc Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
pyledger.h Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
pyutils.h Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
qif.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
qif.h Value expression architecture is now rewritten, but the functionality of the 2008-07-29 05:59:38 -04:00
quotes.cc Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
quotes.h Moved around and renamed a very large amount of code in order to rationalize 2008-07-29 20:10:03 -04:00
README Removed Python integration support. 2008-04-13 02:41:21 -04:00
reconcile.cc Change many uses of for+iterator to use Boost.Foreach. 2008-07-31 17:48:29 -04:00
reconcile.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
report.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
report.h Improved the output from some debugging commands. 2008-08-01 02:53:32 -04:00
sample.dat updated to version 2.0 2008-04-13 02:40:47 -04:00
scope.cc Moved around and renamed a very large amount of code in order to rationalize 2008-07-29 20:10:03 -04:00
scope.h Moved around and renamed a very large amount of code in order to rationalize 2008-07-29 20:10:03 -04:00
session.cc Added a new 'format' debugging command, which dissects the formatting 2008-08-01 03:44:22 -04:00
session.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
setup.py Most things are building, but not the Python code 2008-05-12 05:10:08 -04:00
system.hh Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
textual.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
textual.h Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
timeclock.el Removed Python integration support. 2008-04-13 02:41:21 -04:00
times.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
times.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
token.cc Re-implemented ?: parsing in value expressions. "a ? b : c" is implemented by 2008-08-01 01:56:13 -04:00
token.h Re-implemented ?: parsing in value expressions. "a ? b : c" is implemented by 2008-08-01 01:56:13 -04:00
tuples.hpp Updated all copyright messages to 2003-2008. 2008-07-27 02:26:35 -04:00
utils.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
utils.h Revised the way that exceptions are thrown around. Instead of context being a 2008-07-31 06:24:45 -04:00
valgrind.sh Migrated over both code and build environment from was-v3.0 branch. 2008-05-08 02:50:19 -04:00
value.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
value.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
version Migrated over both code and build environment from was-v3.0 branch. 2008-05-08 02:50:19 -04:00
walk.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
walk.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
xact.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
xact.h Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
xml.cc Journal data structures now use date_t instead of datetime_t. 2008-08-01 17:37:22 -04:00
xml.h Simplified the format_t code so that it no longer references any particulars 2008-08-01 01:37:58 -04:00

			  Welcome to Ledger

		 the command-line accounting program

Introduction
============

Ledger is an accounting program which is invoked from the command-line
using a textual ledger file.  To start using Ledger, you will need to
create such a file containing your financial transactions.  A sample
has been provided in the file "sample.dat".  See the documentation
(ledger.pdf, or ledger.info) for full documentation on creating a
ledger file and using Ledger to generate reports.

Once you have such a file -- you might call it "ledger.dat" -- you can
start looking at balances and account registers using commands like
the following:

  ledger -f ledger.dat balance assets:checking
  ledger -f ledger.dat register expenses:food

This assumes, of course, that like the sample file you use account
names such as "Assets:Checking" and "Expenses:Food".  If you use other
account names, you will need to vary the reporting commands you use
accordingly.


Building
========

To build Ledger, you will need a fairly modern C++ compiler (gcc 2.95
will not work), and at least these two libraries installed:

    gmp        GNU multi-precision library
    pcre       Perl regular expression library

(On some GNU/Linux systems, the packages you need to install are
called "gmp-dev" and "pcre-dev").

If you wish to read Gnucash data files, you will also need two XML
libraries, which may or may not be available in a single package (it
depends on your distribution):

    libexpat, or libxmlparse and libxmltok

Once you have determined where the headers and libraries for the above
packages are installed, run the script "configure", passing those
paths.  If you installed everything under /usr/local, you can probably
just type "./configure".  Otherwise, do this:

    ./configure CPPFLAGS=-I<INCLUDE-PATH>  LDFLAGS=-L<LIBRARY-PATH>

If you need to specify multiple include or library paths, then do
this:

    ./configure CPPFLAGS="-I<PATH1> -I<PATH2>"  LDFLAGS="-L<PATH1> -L<PATH2>"

Once configure is done running, just type:

    make install


Mailing List and IRC
====================

If you need help on how to use Ledger, or run into problems, you can
join the Ledger mailing list at the following Web address:

    https://lists.sourceforge.net/lists/listinfo/ledger-discuss

You can also find help at the #ledger channel on the IRC server
irc.freenode.net.