[Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
Cristian Ionescu-Idbohrn
cristian.ionescu-idbohrn at axis.com
Tue Jul 31 08:40:55 UTC 2007
On Mon, 30 Jul 2007, Bernhard Fischer wrote:
> On Mon, Jul 30, 2007 at 09:52:51PM +0200, Cristian Ionescu-Idbohrn wrote:
> >On Mon, 30 Jul 2007, Bernhard Fischer wrote:
> >
> >> > --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
> >> > ^^^^^^^^^^^^^^
> >>
> >> depending on the package --prefix=$(STAGING_DIR)/usr is enough
> > ^^^^^^^^^
> >
> >Could you please be more verbose? How does one identify which is which?
>
> packages that use autoconf usually have:
>
> Installation directories:
> --prefix=PREFIX install architecture-independent files in
> PREFIX
> [/usr/local]
But of course. Using --prefix=/usr (instead of 10 options) should be
enough in most cases. A lot of configure options need removing from
the .mk files.
> So, for packages that actually install to and use config files from
> sysconfdir, these should live in $(TARGET_DIR)/etc (resp
> $(STAGING_DIR)/etc) and not in $(TARGET_DIR)/usr/etc
Yes.
> libpcap, for example can be configured with
> --prefix=/usr
> and installed with
> $(MAKE) DESTDIR=$(STAGING_DIR) -C $(LIBPCAP_DIR) install
> (assuming that it doesn't install anything into /etc).
>
> See?
Quite simple, isn't it :D ?
> PS: Of course there is DESTDIR vs. PREFIX. Look at the respective
> Makefile{.am,.in,}
Yes.
I was probably not clear enough. Let me try one more time.
--prefix=/usr vs --prefix=$(STAGING_DIR)/usr
^^^^^^^^^^^^^^
I noticed use of the -isysroot and --sysroot gcc compiler options. My
interpretation of these options after reading the info pages:
,----
| `-isysroot DIR'
| This option is like the `--sysroot' option, but applies only to
| header files. See the `--sysroot' option for more information.
|
| `--sysroot=DIR'
| Use DIR as the logical root directory for headers and libraries.
| For example, if the compiler would normally search for headers in
| `/usr/include' and libraries in `/usr/lib', it will instead search
| `DIR/usr/include' and `DIR/usr/lib'.
|
| If you use both this option and the `-isysroot' option, then the
| `--sysroot' option will apply to libraries, but the `-isysroot'
| option will apply to header files.
|
| The GNU linker (beginning with version 2.16) has the necessary
| support for this option. If your linker does not support this
| option, the header file aspect of `--sysroot' will still work, but
| the library aspect will not.
`----
is that $(STAGING_DIR) is not needed if the gcc option
--sysroot=$(STAGING_DIR) is used. Does this make sense?
Cheers,
--
Cristian
More information about the buildroot
mailing list