Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
@ 2007-07-30 18:49 Cristian Ionescu-Idbohrn
  2007-07-30 19:02 ` Steven J. Hill
  0 siblings, 1 reply; 10+ messages in thread
From: Cristian Ionescu-Idbohrn @ 2007-07-30 18:49 UTC (permalink / raw)
  To: buildroot

Noticed that some .mk files use different --includedir= configure options.
Shouldn't --includedir=/usr/include be used everywhere?


Cheers,

-- 
Cristian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
  2007-07-30 18:49 [Buildroot] --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include Cristian Ionescu-Idbohrn
@ 2007-07-30 19:02 ` Steven J. Hill
  2007-07-30 19:06   ` [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include Cristian Ionescu-Idbohrn
  0 siblings, 1 reply; 10+ messages in thread
From: Steven J. Hill @ 2007-07-30 19:02 UTC (permalink / raw)
  To: buildroot

> Noticed that some .mk files use different --includedir= configure options.
> Shouldn't --includedir=/usr/include be used everywhere?
> 
With the recent changes that buildroot has undergone, I actually think
this is a good idea. Any objections to getting rid of 'include' in the
staging directory all together and going to 'usr/include'?

-Steve

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-30 19:02 ` Steven J. Hill
@ 2007-07-30 19:06   ` Cristian Ionescu-Idbohrn
  2007-07-30 19:36     ` Bernhard Fischer
  0 siblings, 1 reply; 10+ messages in thread
From: Cristian Ionescu-Idbohrn @ 2007-07-30 19:06 UTC (permalink / raw)
  To: buildroot

On Mon, 30 Jul 2007, Steven J. Hill wrote:

> > Noticed that some .mk files use different --includedir= configure options.
> > Shouldn't --includedir=/usr/include be used everywhere?
> >
> With the recent changes that buildroot has undergone, I actually think
> this is a good idea. Any objections to getting rid of 'include' in the
> staging directory all together and going to 'usr/include'?

That's fine with me. But my question was:

  --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
                                            ^^^^^^^^^^^^^^

Cheers,

-- 
Cristian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-30 19:06   ` [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include Cristian Ionescu-Idbohrn
@ 2007-07-30 19:36     ` Bernhard Fischer
  2007-07-30 19:52       ` Cristian Ionescu-Idbohrn
  2007-07-31  6:13       ` Hans-Christian Egtvedt
  0 siblings, 2 replies; 10+ messages in thread
From: Bernhard Fischer @ 2007-07-30 19:36 UTC (permalink / raw)
  To: buildroot

On Mon, Jul 30, 2007 at 09:06:34PM +0200, Cristian Ionescu-Idbohrn wrote:
>On Mon, 30 Jul 2007, Steven J. Hill wrote:
>
>> > Noticed that some .mk files use different --includedir= configure options.
>> > Shouldn't --includedir=/usr/include be used everywhere?
>> >
>> With the recent changes that buildroot has undergone, I actually think
>> this is a good idea. Any objections to getting rid of 'include' in the
>> staging directory all together and going to 'usr/include'?
>
>That's fine with me. But my question was:
>
>  --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
>                                            ^^^^^^^^^^^^^^

depending on the package --prefix=$(STAGING_DIR)/usr
is enough and all other (except, perhaps specifying the location of
$(STAGING_DIR)/etc) are not needed anymore.

There are indeed quite some packages that are not yet converted. Patches
to clean those up are very welcome.

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-30 19:36     ` Bernhard Fischer
@ 2007-07-30 19:52       ` Cristian Ionescu-Idbohrn
  2007-07-30 20:11         ` Bernhard Fischer
  2007-07-31  6:13       ` Hans-Christian Egtvedt
  1 sibling, 1 reply; 10+ messages in thread
From: Cristian Ionescu-Idbohrn @ 2007-07-30 19:52 UTC (permalink / raw)
  To: buildroot

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?


Cheers,

-- 
Cristian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-30 19:52       ` Cristian Ionescu-Idbohrn
@ 2007-07-30 20:11         ` Bernhard Fischer
  2007-07-31  8:40           ` Cristian Ionescu-Idbohrn
  0 siblings, 1 reply; 10+ messages in thread
From: Bernhard Fischer @ 2007-07-30 20:11 UTC (permalink / raw)
  To: buildroot

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]

Fine tuning of the installation directories:
  --bindir=DIR           user executables [EPREFIX/bin]
  --sbindir=DIR          system admin executables [EPREFIX/sbin]
  --libexecdir=DIR       program executables [EPREFIX/libexec]
  --datadir=DIR          read-only architecture-independent data
[PREFIX/share]
  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR   modifiable architecture-independent data
[PREFIX/com]
  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
  --libdir=DIR           object code libraries [EPREFIX/lib]
  --includedir=DIR       C header files [PREFIX/include]
  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
  --infodir=DIR          info documentation [PREFIX/info]
  --mandir=DIR           man documentation [PREFIX/man]


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


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?

PS: Of course there is DESTDIR vs. PREFIX. Look at the respective
Makefile{.am,.in,}

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-30 19:36     ` Bernhard Fischer
  2007-07-30 19:52       ` Cristian Ionescu-Idbohrn
@ 2007-07-31  6:13       ` Hans-Christian Egtvedt
  2007-07-31  8:43         ` Bernhard Fischer
  1 sibling, 1 reply; 10+ messages in thread
From: Hans-Christian Egtvedt @ 2007-07-31  6:13 UTC (permalink / raw)
  To: buildroot


On Mon, 2007-07-30 at 21:36 +0200, Bernhard Fischer wrote:
> On Mon, Jul 30, 2007 at 09:06:34PM +0200, Cristian Ionescu-Idbohrn wrote:
> >On Mon, 30 Jul 2007, Steven J. Hill wrote:
> >
> >> > Noticed that some .mk files use different --includedir= configure options.
> >> > Shouldn't --includedir=/usr/include be used everywhere?
> >> >
> >> With the recent changes that buildroot has undergone, I actually think
> >> this is a good idea. Any objections to getting rid of 'include' in the
> >> staging directory all together and going to 'usr/include'?
> >
> >That's fine with me. But my question was:
> >
> >  --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
> >                                            ^^^^^^^^^^^^^^
> 
> depending on the package --prefix=$(STAGING_DIR)/usr
> is enough and all other (except, perhaps specifying the location of
> $(STAGING_DIR)/etc) are not needed anymore.
> 
> There are indeed quite some packages that are not yet converted. Patches
> to clean those up are very welcome.

In the same go a cleanup of all libdir variables in lib<name>.la should
be done? I see some libraries have /usr/lib there, and it can make some
confusing moments if you have the library installed on the build machine
as well.

-- 
With kind regards,

Hans-Christian Egtvedt, siv.ing. (M.Sc.)
Applications Engineer - AVR32 System Solutions - Atmel Norway

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-30 20:11         ` Bernhard Fischer
@ 2007-07-31  8:40           ` Cristian Ionescu-Idbohrn
  2007-07-31  9:45             ` Bernhard Fischer
  0 siblings, 1 reply; 10+ messages in thread
From: Cristian Ionescu-Idbohrn @ 2007-07-31  8:40 UTC (permalink / raw)
  To: buildroot

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

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-31  6:13       ` Hans-Christian Egtvedt
@ 2007-07-31  8:43         ` Bernhard Fischer
  0 siblings, 0 replies; 10+ messages in thread
From: Bernhard Fischer @ 2007-07-31  8:43 UTC (permalink / raw)
  To: buildroot

On Tue, Jul 31, 2007 at 08:13:27AM +0200, Hans-Christian Egtvedt wrote:
>
>On Mon, 2007-07-30 at 21:36 +0200, Bernhard Fischer wrote:
>> On Mon, Jul 30, 2007 at 09:06:34PM +0200, Cristian Ionescu-Idbohrn wrote:
>> >On Mon, 30 Jul 2007, Steven J. Hill wrote:
>> >
>> >> > Noticed that some .mk files use different --includedir= configure options.
>> >> > Shouldn't --includedir=/usr/include be used everywhere?
>> >> >
>> >> With the recent changes that buildroot has undergone, I actually think
>> >> this is a good idea. Any objections to getting rid of 'include' in the
>> >> staging directory all together and going to 'usr/include'?
>> >
>> >That's fine with me. But my question was:
>> >
>> >  --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include
>> >                                            ^^^^^^^^^^^^^^
>> 
>> depending on the package --prefix=$(STAGING_DIR)/usr
>> is enough and all other (except, perhaps specifying the location of
>> $(STAGING_DIR)/etc) are not needed anymore.
>> 
>> There are indeed quite some packages that are not yet converted. Patches
>> to clean those up are very welcome.
>
>In the same go a cleanup of all libdir variables in lib<name>.la should
>be done? I see some libraries have /usr/lib there, and it can make some
>confusing moments if you have the library installed on the build machine
>as well.

AFAICS yes.

The target_dir .la should use the absolute target-pathes (e.g. /usr/lib)
and the staging_dir .la should use absolute cross-pathes
($(STAGING_DIR)/usr/lib for example), yes.

IIRC some packages -- those that are actually used as prerequisites for
other packages in build_ARCH -- already fixup their .la via $(SED).

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include
  2007-07-31  8:40           ` Cristian Ionescu-Idbohrn
@ 2007-07-31  9:45             ` Bernhard Fischer
  0 siblings, 0 replies; 10+ messages in thread
From: Bernhard Fischer @ 2007-07-31  9:45 UTC (permalink / raw)
  To: buildroot

On Tue, Jul 31, 2007 at 10:40:55AM +0200, Cristian Ionescu-Idbohrn wrote:
>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.

/me nods

[snip overall happy agreement]
>> 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 ?

yep :)
>
>> 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?

yes, it does in my POV. IIRC the old, unsupported (by upstream) gcc
versions without sysroot support pass the staging_dir via -I and -L, but
you should double check if a non sysroot-enabled toolchain still builds
them fine, i guess.

cheers,

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2007-07-31  9:45 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-07-30 18:49 [Buildroot] --includedir=/usr/include vs --includedir=$(STAGING_DIR)/usr/include Cristian Ionescu-Idbohrn
2007-07-30 19:02 ` Steven J. Hill
2007-07-30 19:06   ` [Buildroot] --includedir=/usr/include vs --includedir=(STAGING_DIR)/usr/include Cristian Ionescu-Idbohrn
2007-07-30 19:36     ` Bernhard Fischer
2007-07-30 19:52       ` Cristian Ionescu-Idbohrn
2007-07-30 20:11         ` Bernhard Fischer
2007-07-31  8:40           ` Cristian Ionescu-Idbohrn
2007-07-31  9:45             ` Bernhard Fischer
2007-07-31  6:13       ` Hans-Christian Egtvedt
2007-07-31  8:43         ` Bernhard Fischer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox