summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2004-08-28 04:48:43 -0400
committerJohn Wiegley <johnw@newartisans.com>2004-08-28 04:48:43 -0400
commit3034529d54759f0fd3bcc6191f33a5e93a1988ca (patch)
treed2de58e10c151d3c2fe7c68039861621fb2c6d46 /README
parentb4304515ff0501da47cbcd4b47c770e2bb55a83d (diff)
downloadfork-ledger-3034529d54759f0fd3bcc6191f33a5e93a1988ca.tar.gz
fork-ledger-3034529d54759f0fd3bcc6191f33a5e93a1988ca.tar.bz2
fork-ledger-3034529d54759f0fd3bcc6191f33a5e93a1988ca.zip
removed the "standalone" flag (unsafe with Boost)
Diffstat (limited to 'README')
-rw-r--r--README61
1 files changed, 17 insertions, 44 deletions
diff --git a/README b/README
index acb74a71..50d7c7a2 100644
--- a/README
+++ b/README
@@ -3,26 +3,27 @@ Welcome to Ledger, a command-line accounting program.
Quick start
===========
-To build ledger, you will first need these two libraries installed:
+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):
+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:
+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:
+If you need to specify multiple include or library paths, then do
+this:
./configure CPPFLAGS="-I<PATH1> -I<PATH2>" LDFLAGS="-L<PATH1> -L<PATH2>"
@@ -30,40 +31,12 @@ Once configure is done running, just type:
make install
-Building on OS/X
-================
+Building Ledger as a Python Module
+==================================
-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.
+If you have Python 2.2 or higher installed, and Boost.Python, then
+Ledger will also be built as a Python module. This means you can
+interact with your Ledger data from Python, making it easier to write
+very custom reporting code. See the developer documentation for
+information on Ledger's interfaces, and for some example reports
+written in Python.