-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathINSTALL
More file actions
112 lines (83 loc) · 4.04 KB
/
INSTALL
File metadata and controls
112 lines (83 loc) · 4.04 KB
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
Quick start
===========
Support for autotools has been dropped (I never use it anymore) and
is therefore deprecated. You should use cmake.
In fact, you SHOULD use gitache to get/configure/compile libcwd
and you very likely want to use the git submodule cwds too, which
requires utils as well these days).
Note: also libcwd.so is deprecated. Just don't use it. You should
always use libcwd_r.so (aka, use `set(GITACHE_PACKAGES libcwd_r)`).
gitache
-------
See documentation of cwds here:
https://github.com/CarloWood/cwds?tab=readme-ov-file#adding-the-cwds-submodule-to-a-project
git
---
Only if you can't or do not want to use gitache, then the following applies.
If you obtained the source code from git, then first run `./autogen.sh`.
If you (are going to) use cmake then there is no need to run aclocal,
autoheader, etc. You can suppress that by setting the environment variable
`export AUTOGEN_CMAKE_ONLY=1`.
If you want to use autotools you should configure with --enable-maintainer-mode
if you obtained the sources from git. Note that then ./autogen.sh needs
to be rerun after running `make maintainer-clean`.
cmake
-----
cmake -DCMAKE_INSTALL_PREFIX="/usr/local" -S . -B build
cd build
make -j 8
sudo make install
This method only builds libcwd_r, the multi-threaded version of libcwd.
autotools
---------
./configure --prefix="/usr/local" [--enable-maintainer-mode]
make -j 8
sudo make install
Options
=======
cmake
-----
The following boolean variables can be set to ON or OFF on the command line,
EnableGlibCxxDebug : Compile libcwd with -D_GLIBCXX_DEBUG.
See http://gcc.gnu.org/onlinedocs/libstdc++/debug.html.
EnableLibcwdAlloc : Enable memory allocation debugging support.
EnableLibcwdMagic : Enable magic numbers in memory allocation debugging.
EnableLibcwdMarker : Enable memory allocation markers.
EnableLibcwdLocation : Enable the ability to lookup source file and line
number, you might need this on a non-ELF system.
(you do not want to use these):
EnableLibcwdDebug : Enable debugging of libcwd itself.
EnableLibcwdDebugOutput : Enable debug output of EnableLibcwdDebug.
EnableLibcwdDebugm : Enable debugging of memory allocation debugging code in libcwd itself.
EnableLibcwdDebugt : Enable debugging of threading debugging code in libcwd itself.
When running `cmake` each option and its value is printed (unless forced to OFF);
often a value is forced or has a default. Recommended is to only set an option if
you're not happy with the default.
For example,
cmake -DCMAKE_INSTALL_PREFIX="/usr/local" -DEnableLibcwdAlloc=OFF -S . -B build
autotools
---------
The following configure options are available,
--enable-glibcxx_debug compile libcwd with -D_GLIBCXX_DEBUG.
See http://gcc.gnu.org/onlinedocs/libstdc++/debug.html.
--disable-alloc disable memory allocation debugging support.
--disable-magic disable magic numbers in memory allocation debugging.
--disable-marker disable memory allocation markers.
--disable-location disable the ability to lookup source file and line
number, you might need this on a non-ELF32 system.
--enable-debug enable debugging of libcwd itself.
--disable-debug-output disable debug output of --enable-debug.
--enable-debugm enable debugging of memory allocation debugging code
in libcwd itself.
--disable-threading don't compile libcwd_r, the thread-safe version of
libcwd.
--disable-nonthreading don't compile libcwd, the thread-unsafe version of
libcwd.
--enable-debugt enable debugging of threading debugging code
in libcwd itself.
Additional configure options are available too. Use `./configure --help` to get
the full list.
Trouble
=======
If you run into problems, mail carlo@alinoe.com (include as many details as possible).
Please use a very clear subject so that I can see it isn't spam in under 0.2 seconds.