summaryrefslogtreecommitdiff
path: root/README-1ST
blob: 75042e5bac4ef61cbb5554cf97d8403f98fe2700 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120

===============================================================================

                                 README FIRST!!!

To build this code after doing a Git clone, run:

    $ ./acprep update

If you try to configure and build on your own, you are almost certainly going
to run into problems.  In future, you can run this command again and again,
and it will keep you updated to the very latest version.

===============================================================================

                           NOTE FOR MAC OS X USERS

To build and install Ledger on the Mac requires several dependencies.  If you
are a MacPorts user, you can install these dependencies very simply using:

    $ ./acprep dependencies

Once this is done, I recommend building both debug and optimized versions of
Ledger, in a subdirectory of your source tree named 'build' (which acprep will
manage for you, you simply need to make it):

    $ mkdir build
    $ ./acprep opt make
    $ ./acprep debug make

Now install the optimized version, but know that you have 'build/debug/ledger'
available for testing and more useful bug reports.

===============================================================================

                   IF YOU HAVE CONFIGURE OR BUILD PROBLEMS

The first order of business if acprep update doesn't work is to find out where
things went wrong.  So follow these steps to produce a bug report I can track
down easily:

    $ ./acprep --debug update          # shows what acprep was thinking
    $ <edit config.log>                # shows what configure was thinking

With the contents of config.log, and the output from acprep --debug update,
it's usually fairly obvious where things have gone astray.

===============================================================================

                                    F.A.Q.

 - Q: The build fails saying it can't find utf8.h

   A: You didn't run ./acprep update.

   ----------------------------------------------------------------------

 - Q: Configure fails saying it can't find boost_regex

   A: Look in config.log and search for "boost_regex", then scroll down a bit
      until you see the exact compile error.  Usually it's failing because
      your include directory is different from anything acprep is expecting to
      see.  It could also be failing because your Boost libraries have a
      custom "suffix" on them.

      Let's say your Boost was installed in ~/boost, and every library has the
      suffix '-xgcc42'.  This is what you would run:

        CPPFLAGS=-I$HOME/boost acprep --boost=xgcc42 update

   ----------------------------------------------------------------------

 - Q: Configure fails saying it can't find MPFR

   A: You need MPFR version 2.4.0 or higher.  This version does not come with
      most Debian distributions, so you will need to build it.

   ----------------------------------------------------------------------

 - Q: I'm seeing a segfault deep inside the boost_regex code!

   A: Actually, the real segfault is in libstdc++'s facet code.  It's being
      caused by using a debug Boost with a non-debug build of Ledger, or
      vice-versa.

   ----------------------------------------------------------------------

 - Q: Something else fails, or Ledger crashes on startup

   A: This, I am most interested in hearing about.  Please e-mail me a copy of
      config.log and your build log to <johnw@newartisans.com>.  Also, if
      Ledger is crashing, try running it under gdb like so:

        $ gdb ledger
        (gdb) run <ARGS TO LEDGER>
        ... runs till crash ...
        (gdb) bt

      Send me that backtrace output, and the output from "ledger --version".

   ----------------------------------------------------------------------

 - Q: Whenever I try to use the Python support, I get a segfault

   A: Make sure that the boost_python library you linked against is using the
      exact same Python as the Ledger executable.  In particular I see this
      bug on OS X systems where boost_python is linked against the default
      Python, while Ledger is linked against the version provided by MacPorts.

      Solution: Use one or the other.  If you prefer the system Python, run
      "port deactivate -f python26", to get MacPorts' version out of the way.
      You'll then need to delete the Ledger binary and run "make" to relink
      it.

   ----------------------------------------------------------------------

 - Q: When I run "make check", the Python unit tests always crash

   A: This can happen for the same reason as above.  It can also happen if you
      have ICU support enabled.  This is a bug I'm still trying to track down.