Skip to content

Commit ac4440f

Browse files
committed
README: Describe building with Meson and Autotools
and remove the description of the directory structure, which is not very useful.
1 parent d66bc03 commit ac4440f

File tree

1 file changed

+84
-28
lines changed

1 file changed

+84
-28
lines changed

README

Lines changed: 84 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
libsigc++ -- The Typesafe Callback Framework for C++
22

3-
43
General information:
54

65
libsigc++ implements a typesafe callback system for standard C++. It
@@ -14,15 +13,12 @@ General information:
1413
Further information is available on the libsigc++ project home page:
1514
https://libsigcplusplus.github.io/libsigcplusplus/
1615

17-
1816
License information:
1917

2018
Distribution of library and components is under the LGPL as listed in the
2119
file COPYING. Examples and tests are Public Domain.
2220

23-
2421
Contact information:
25-
Maintainer: mailto: murrayc@murrayc.com
2622
Maillist: mailto: libsigc-list@gnome.org
2723
Homepage: https://libsigcplusplus.github.io/libsigcplusplus/
2824
Online reference documentation: https://developer.gnome.org/libsigc++/unstable/
@@ -31,34 +27,94 @@ Contact information:
3127
Git: https://github.com/libsigcplusplus/libsigcplusplus
3228
Bug reports: https://github.com/libsigcplusplus/libsigcplusplus/issues
3329

30+
Compatibility:
3431

35-
Overview of the distribution:
32+
Compatible compilers must support C++11, such as the decltype() specifier.
3633

37-
docs/ documentation on the signal system
38-
docs/reference/ reference documentation
39-
40-
examples/ examples of various signal functions
41-
42-
sigc++/ source for library
43-
sigc++/macros/ .m4 files used to auto-generate source files
44-
sigc++/functors/ source for library (various functors)
45-
sigc++/functors/macros/ .m4 files used to auto-generate source files
46-
sigc++/adaptors/ source for library (various adaptors)
47-
sigc++/adaptors/macros/ .m4 files used to auto-generate source files
48-
49-
build/ auxiliary files for building with Autotools
34+
All releases are tested with the gcc (g++) compiler.
5035

51-
untracked/ auxiliary files for building with Meson
52-
See untracked/README
53-
54-
tests/ programs testing and verifying proper behaviour
55-
56-
MSVC_NMake/ NMake Makefiles for building the library with MSVC++ 2013 and later
57-
See MSVC_NMake/README.txt
36+
# Building
5837

38+
Whenever possible, you should use the official binary packages approved by the
39+
supplier of your operating system, such as your Linux distribution.
5940

60-
Compatibility:
41+
## Building on Windows
6142

62-
Compatible compilers must support C++11, such as the decltype() specifier.
43+
See MSVC_NMake/README.txt.
6344

64-
All releases are tested with the gcc (g++) compiler.
45+
## Building from a release tarball
46+
47+
It's easiest to build with Meson, if the tarball was made with Meson,
48+
and to build with Autotools, if the tarball was made with Autotools.
49+
Then you don't have to use maintainer-mode.
50+
51+
How do you know how the tarball was made? If it was made with Meson,
52+
it contains files in untracked/build_scripts/, untracked/docs/ and possibly
53+
other subdirectories of untracked/.
54+
55+
### Building from a tarball with Meson
56+
57+
Don't call the builddir 'build'. There is a directory called 'build' with
58+
files used by Autotools.
59+
60+
If the tarball was made with Autotools, you must enable maintainer-mode:
61+
$ meson --prefix=/some_directory --libdir=lib -Dmaintainer-mode=true your_builddir .
62+
If the tarball was made with Meson:
63+
$ meson --prefix=/some_directory --libdir=lib your_builddir .
64+
65+
Then
66+
$ cd your_builddir
67+
$ ninja
68+
$ ninja install
69+
You can run the tests like so:
70+
$ ninja test
71+
72+
### Building from a tarball with Autotools
73+
74+
If the tarball was made with Autotools:
75+
$ ./configure --prefix=/some_directory
76+
If the tarball was made with Meson, you must enable maintainer-mode:
77+
$ ./autogen.sh --prefix=/some_directory
78+
79+
Then
80+
$ make
81+
$ make install
82+
You can build the examples and tests, and run the tests, like so:
83+
$ make check
84+
85+
## Building from git
86+
87+
Building from git can be difficult so you should prefer building from
88+
a release tarball unless you need to work on the libsigc++ code itself.
89+
90+
jhbuild can be a good help
91+
https://gitlab.gnome.org/GNOME/jhbuild
92+
https://wiki.gnome.org/Projects/Jhbuild
93+
94+
### Building from git with Meson
95+
96+
Maintainer-mode is enabled by default when you build from a git clone.
97+
98+
Don't call the builddir 'build'. There is a directory called 'build' with
99+
files used by Autotools.
100+
101+
$ meson --prefix=/some_directory --libdir=lib your_builddir .
102+
$ cd your_builddir
103+
$ ninja
104+
$ ninja install
105+
You can run the tests like so:
106+
$ ninja test
107+
You can create a tarball like so:
108+
$ ninja dist
109+
110+
### Building from git with Autotools
111+
112+
$ ./autogen.sh --prefix=/some_directory
113+
$ make
114+
$ make install
115+
You can build the examples and tests, and run the tests, like so:
116+
$ make check
117+
You can create a tarball like so:
118+
$ make distcheck
119+
or
120+
$ make dist

0 commit comments

Comments
 (0)