No description
Find a file
2004-08-26 19:09:41 -04:00
scripts misc maintenance changes 2004-08-24 19:23:32 -04:00
account.cc added validation code, to walk through a journal_t and make sure it's ok 2004-08-24 04:41:39 -04:00
acprep added check for --enable-standalone, as mentioned in the README 2004-08-26 19:00:58 -04:00
amount.cc read all binary data in at one go; gains 33% 2004-08-26 15:35:14 -04:00
amount.h read all binary data in at one go; gains 33% 2004-08-26 15:35:14 -04:00
autoxact.cc only compute the cost when it differs from the amount 2004-08-21 15:55:03 -04:00
autoxact.h a little more reorganizing, but only fractionally faster. diminishing returns! 2004-08-22 02:13:41 -04:00
balance.cc a little cleanup; reversed the meaning of -z and -p (to be more mnemonic) 2004-08-23 18:23:31 -04:00
balance.h added usual operator 2004-08-25 21:51:11 -04:00
binary.cc read all binary data in at one go; gains 33% 2004-08-26 15:35:14 -04:00
binary.h fixed two memory corruption bugs 2004-08-25 21:02:07 -04:00
config.cc updated help screen 2004-08-24 05:05:08 -04:00
config.h fixed bad #define 2004-08-23 08:01:43 -04:00
configure.ac added check for --enable-standalone, as mentioned in the README 2004-08-26 19:00:58 -04:00
datetime.cc cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
datetime.h use value_t instead of balance_pair_t; gains for 10% binary, 2% textual 2004-08-21 23:18:45 -04:00
debug.cc cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
debug.h added asserts to, and proof-read, amount.cc 2004-08-25 17:34:23 -04:00
error.h cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
format.cc cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
format.h cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
gnucash.cc cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
gnucash.h updated gnucash support 2004-08-20 02:51:14 -04:00
ledger.cc fixed two memory corruption bugs 2004-08-25 21:02:07 -04:00
ledger.el fixed two memory corruption bugs 2004-08-25 21:02:07 -04:00
ledger.h Bulk alloc bigints in the binary reader; this gains another 20% 2004-08-25 01:47:55 -04:00
ledger.texi reorganized the docs, switched to using some more appropriate @commands 2004-08-25 03:07:45 -04:00
LICENSE removed a period 2004-08-23 08:26:26 -04:00
main.cc read all binary data in at one go; gains 33% 2004-08-26 15:35:14 -04:00
Makefile.am added check for --enable-standalone, as mentioned in the README 2004-08-26 19:00:58 -04:00
NEWS updated NEWS file 2004-08-21 16:38:12 -04:00
option.cc removed all uses of std::vector; simplified some code 2004-08-24 20:01:51 -04:00
option.h removed all uses of std::vector; simplified some code 2004-08-24 20:01:51 -04:00
parser.cc fixes 2004-08-19 22:05:22 -04:00
parser.h added virtual destructor to parser_t 2004-08-21 03:24:48 -04:00
qif.cc use value_t instead of balance_pair_t; gains for 10% binary, 2% textual 2004-08-21 23:18:45 -04:00
qif.h fixes 2004-08-19 22:05:22 -04:00
quotes.cc fixes so that ledger will build optimized 2004-08-21 16:15:55 -04:00
quotes.h fixes to how commodities are looked up using quotes.cc 2004-08-21 03:54:27 -04:00
README added README file 2004-08-26 19:09:41 -04:00
sample.dat fix to textual parsing, and a bit of reconstruction in main.cc 2004-08-19 02:30:56 -04:00
textual.cc escape codes in format strings; can now redefine individual report formats 2004-08-22 02:40:18 -04:00
textual.h fixes 2004-08-19 22:05:22 -04:00
timing.h fix 2004-08-14 01:29:16 -04:00
util.h fixes 2004-08-17 16:41:07 -04:00
valexpr.cc removed all uses of std::vector; simplified some code 2004-08-24 20:01:51 -04:00
valexpr.h cleanup; fully switched to autoconf -- use scripts/acprep 2004-08-24 02:11:32 -04:00
value.cc fixed another memory strangeness (too much destruction) 2004-08-26 02:01:29 -04:00
value.h fixed another memory strangeness (too much destruction) 2004-08-26 02:01:29 -04:00
walk.cc slight cleanup 2004-08-23 02:11:58 -04:00
walk.h fixed another memory strangeness (too much destruction) 2004-08-26 02:01:29 -04:00

Welcome to Ledger, a command-line accounting program.

Quick start
===========

To build ledger, you will first need these two libraries installed:

    gmp        GNU multi-precision library
    pcre       Perl regular expression library

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):

    xmlparse
    xmltok

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

Building on OS/X
================

If you are building ledger for OS/X, there are a couple of things you can do
to ensure that it runs as quickly as possible.  First, you will want to
configure ledger using this command, which you can cut and paste from here:

    ./configure CPPFLAGS="-I/sw/include -I/usr/include/httpd/xml" \
		LDFLAGS=-L/sw/lib \
		CXXFLAGS="-fomit-frame-pointer -fastf -mcpu=7450" \
		--enable-standalone

Next, if you are interested, we need to change the system headers so that
command-line ledger can use an STL allocator that is not thread-safe.  Being
hread-safe has no benefit for the standalone, command-line version of ledger,
and so is needlessly 10% slower.  However, there is no easy way to do this,
other than modifying the system headers.  So, sudo over to a root shell, and
edit this file:

  /usr/include/gcc/darwin/3.3/c++/bits/stl_alloc.h

Around line 617, you will find a typedef declaration that looks like this:

  typedef __default_alloc_template<true,0>    __alloc;

Replace this line with the following block, which will permit the ledger
sources to select a different default allocator:

  #ifdef SGI_STL_USE_SINGLE_CLIENT_ALLOCATOR
    typedef __default_alloc_template<false,0>   __alloc;
  #else
    typedef __default_alloc_template<true,0>    __alloc;
  #endif 

The disadvantage to doing this, in general, is that an app using a different
default will not be able to link to other C++ libraries, which use another
default.  But since ledger doesn't use any C++ libraries, this is no problem.