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 |



Reply via email to