summaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
authorKjell Ahlstedt <kjellahlstedt@gmail.com>2020-03-14 10:09:03 +0100
committerKjell Ahlstedt <kjellahlstedt@gmail.com>2020-03-14 10:09:03 +0100
commitba13fdd74208097f4363ccc510dfe50858e0f02d (patch)
tree35450a35e3f09adc205d5a3588684cdeacef7ffa /README
parentec96b5ac38beb97d2b84e9ed194c2688d68350ad (diff)
downloadglibmm-ba13fdd74208097f4363ccc510dfe50858e0f02d.tar.gz
README: Describe building with Meson and Autotools
Diffstat (limited to 'README')
-rw-r--r--README94
1 files changed, 87 insertions, 7 deletions
diff --git a/README b/README
index ba84b334..60bcd050 100644
--- a/README
+++ b/README
@@ -1,12 +1,92 @@
This is glibmm, a C++ API for parts of glib that are useful for C++.
See http://www.gtkmm.org
-Installation Procedure
-----------------------
+# Building
-$ tar xf glibmm-@GLIBMM_VERSION@.tar.gz
-$ cd glibmm-@GLIBMM_VERSION@
-$ ./configure --prefix=/some_directory
-$ make
-$ make install
+Whenever possible, you should use the official binary packages approved by the
+supplier of your operating system, such as your Linux distribution.
+## Building on Windows
+
+See README.win32
+
+## Building from a release tarball
+
+Extract the tarball and go to the extracted directory:
+ $ tar xf glibmm-@GLIBMM_VERSION@.tar.gz
+ $ cd glibmm-@GLIBMM_VERSION@
+
+It's easiest to build with Meson, if the tarball was made with Meson,
+and to build with Autotools, if the tarball was made with Autotools.
+Then you don't have to use maintainer-mode.
+
+How do you know how the tarball was made? If it was made with Meson,
+it contains files in untracked/glib/glibmm/, untracked/gio/giomm/ and
+other subdirectories of untracked/.
+
+### Building from a tarball with Meson
+
+Don't call the builddir 'build'. There is a directory called 'build' with
+files used by Autotools.
+
+ $ meson --prefix /some_directory --libdir lib your_builddir .
+ $ cd your_builddir
+
+If the tarball was made with Autotools, you must enable maintainer-mode:
+ $ meson configure -Dmaintainer-mode=yes
+
+Then, reguardless of how the tarball was made:
+ $ ninja
+ $ ninja install
+You can run the tests like so:
+ $ ninja test
+
+### Building from a tarball with Autotools
+
+If the tarball was made with Autotools:
+ $ ./configure --prefix=/some_directory
+If the tarball was made with Meson, you must enable maintainer-mode:
+ $ ./autogen.sh --prefix=/some_directory
+
+Then, reguardless of how the tarball was made:
+ $ make
+ $ make install
+You can build the examples and tests, and run the tests, like so:
+ $ make check
+
+## Building from git
+
+Building from git can be difficult so you should prefer building from
+a release tarball unless you need to work on the glibmm code itself.
+
+jhbuild can be a good help
+ https://gitlab.gnome.org/GNOME/jhbuild
+ https://wiki.gnome.org/Projects/Jhbuild
+
+### Building from git with Meson
+
+Maintainer-mode is enabled by default when you build from a git clone.
+
+Don't call the builddir 'build'. There is a directory called 'build' with
+files used by Autotools.
+
+ $ meson --prefix /some_directory --libdir lib your_builddir .
+ $ cd your_builddir
+ $ ninja
+ $ ninja install
+You can run the tests like so:
+ $ ninja test
+You can create a tarball like so:
+ $ ninja dist
+
+### Building from git with Autotools
+
+ $ ./autogen.sh --prefix=/some_directory
+ $ make
+ $ make install
+You can build the examples and tests, and run the tests, like so:
+ $ make check
+You can create a tarball like so:
+ $ make distcheck
+or
+ $ make dist