aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2024-06-14 10:48:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2024-06-14 12:32:45 +0200
commit3a41a7f8df118f7d24dd27172368f4fced36e982 (patch)
treeb718ceaa69fbb2424920d93be82dbe70dbaa1791
parentcb519f0a3405982e962ec1704fbcf70f4d8e98e1 (diff)
Adjust introduction to match new library installation semantics
-rw-r--r--doc/intro.cli55
1 files changed, 24 insertions, 31 deletions
diff --git a/doc/intro.cli b/doc/intro.cli
index 6671cbd..6ec3d04 100644
--- a/doc/intro.cli
+++ b/doc/intro.cli
@@ -2436,40 +2436,14 @@ along these lines:
\
/usr/local/
├── bin/
-│ └── hello
-├── include/
-│ ├── libformat/
-│ │ ├── export.hxx
-│ │ ├── format.hxx
-│ │ └── version.hxx
-│ ├── libhello/
-│ │ ├── export.hxx
-│ │ ├── hello.hxx
-│ │ └── version.hxx
-│ └── libprint/
-│ ├── export.hxx
-│ ├── print.hxx
-│ └── version.hxx
+│   └── hello
├── lib/
-│ ├── libformat-1.0.so
-│ ├── libformat.so -> libformat-1.0.so
-│ ├── libhello-1.1.so
-│ ├── libhello.so -> libhello-1.1.so
-│ ├── libprint-1.0.so
-│ ├── libprint.so -> libprint-1.0.so
-│ └── pkgconfig/
-│ ├── libformat.pc
-│ ├── libhello.pc
-│ └── libprint.pc
+│   ├── libformat-1.0.so
+│   ├── libhello-1.1.so
+│   └── libprint-1.0.so
└── share/
└── doc/
- ├── libformat/
- │ ├── manifest
- │ └── README.md
- ├── libhello/
- │ ├── manifest
- │ └── README.md
- └── libprint/
+ └── hello/
├── manifest
└── README.md
\
@@ -2503,6 +2477,25 @@ uninstall libformat-1.0.0/libformat/libs{format} <- /usr/local/lib/
...
\
+\N|From the above listing we can gather that only the shared library binaries
+were installed. In particular, neither static library binaries nor headers and
+other development-related files (such as non-versioned shared library
+symlinks, \c{pkg-config} \c{.pc} files, etc) were installed.
+
+The reason for this behavior is that by default the \l{bpkg-pkg-install(1)}
+command only instructs the build system to install packages that were
+specified on the command line (\c{hello} in out case) while the build system
+in turn installs from dependency packages only what's necessary for the
+packages it was instructed to install. In our case, installing the \c{hello}
+also requires installing the shared library binaries that it uses but none of
+the development-related files (we don't need library headers in order to run
+an executable).
+
+However, this default behavior of \l{bpkg-pkg-install(1)} (and
+\l{bpkg-pkg-uninstall(1)}) can be changed with the \c{--recursive} option,
+which instructs \c{bpkg} to additionally fully install/uninstall dependency
+packages.|
+
Rather than installing the package locally we could instead generate a
\i{binary distribution package} for it using the \l{bpkg-pkg-bindist(1)}
command. Such a binary package can then be installed on a different