Hi,
I'm a bit confused about the difference between inputs, native-inputs
and propagated-inputs.
The manual states:
The distinction between ‘native-inputs’ and ‘inputs’ is
necessary when considering cross-compilation. When
cross-compiling, dependencies listed in ‘inputs’ are built for
the _target_ architecture; conversely, dependencies listed in
‘native-inputs’ are built for the architecture of the _build_
machine.
For for I understand. But then the manual says:
‘native-inputs’ is typically used to list tools needed at
build time, but not at run time, such as Autoconf, Automake,
pkg-config, Gettext, or Bison.
The first sentence implies that "inputs" are treated as needed at run time.
Now consider libAAA (supporting the famous Amiga AAA chipset ;-), which
requires the headers of libBBB to compile (but only to fetch some
constant definitions) and libCCC at run-time. Without libCCC, libAAA
could not work. And libAAA uses pkg-config to find the header files.
So for me this would be:
libBBB: inputs
libCCC: propagates inputs
pkg-confg: native inputs
Is this correct?
If so, how can I as a packager find out if eg. libBBB is only used at
build time and libCCC need to be a propagated input?
Same for pkg-config: How to determine if this is only needed ar build
time (as I would always expect)? The manual says:
… propagated-inputs …
For example this is necessary when a C/C++ library needs
headers of another library to compile, or when a pkg-config
file refers to another one via its ‘Requires’ field.
For me this is confusing.
--
Regards
Hartmut Goebel
| Hartmut Goebel | [email protected] |
| www.crazy-compilers.com | compilers which you thought are impossible |