Turn the static lib option into a choice with more options
This commit turns the single static option into a choice, which offers various possibilities: 1. Build and use static libraries only; 2. Build both shared and static libraries, but use shared libraries; 3. Build and use shared libraries only. On most platforms, (2) is currently the default, and kept as the default in this commit. Of course, on certain platforms (Blackfin, m68k), only option (1) will be available. In addition to the introduction of the Config.in options, this commit also: * Removes the 'select BR2_STATIC_LIBS' from 'BR2_BINFMT_FLAT', since with the use of a choice, we are guaranteed that BR2_STATIC_LIBS will be selected when the binary format is BR2_BINFMT_FLAT, since BR2_STATIC_LIBS will be the only possible solution in the choice. * Changes package/Makefile.in to use the proper --{enable,disable}-{shared,static} options for autotools packages. [Thomas: remove useless empty newline right after 'choice'. Noticed by Yann E. Morin.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
parent
6e2b80968f
commit
158001f57b
46
Config.in
46
Config.in
@ -525,19 +525,45 @@ config BR2_ENABLE_SSP
|
||||
comment "enabling Stack Smashing Protection requires support in the toolchain"
|
||||
depends on !BR2_TOOLCHAIN_HAS_SSP
|
||||
|
||||
config BR2_STATIC_LIBS
|
||||
bool "build statically linked applications, no dynamic libraries"
|
||||
choice
|
||||
bool "libraries"
|
||||
default BR2_SHARED_STATIC_LIBS if BR2_BINFMT_SUPPORTS_SHARED
|
||||
default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
|
||||
help
|
||||
Build all applications for the target statically linked.
|
||||
This potentially increases your filesystem size and should only be
|
||||
used if you know what you do.
|
||||
Select the type of libraries you want to use on the target.
|
||||
|
||||
Note that some applications cannot be build statically and so are
|
||||
intentionally disabled.
|
||||
The default is to build dynamic libraries and use those on
|
||||
the target filesystem, except when the architecture and/or
|
||||
the selected binary format does not support shared
|
||||
libraries.
|
||||
|
||||
The default (if this option is disabled) is to build dynamic
|
||||
libraries and dynamically link applications to use those on the
|
||||
target filesystem.
|
||||
config BR2_STATIC_LIBS
|
||||
bool "static only"
|
||||
help
|
||||
Build and use only static libraries. No shared libraries
|
||||
will be instaled on the target. This potentially increases
|
||||
your code size and should only be used if you know what you
|
||||
are doing. Note that some packages may not be available when
|
||||
this option is enabled, due to their need for dynamic
|
||||
library support.
|
||||
|
||||
config BR2_SHARED_LIBS
|
||||
bool "shared only"
|
||||
depends on BR2_BINFMT_SUPPORTS_SHARED
|
||||
help
|
||||
Build and use only shared libraries. This is the recommended
|
||||
solution as it saves space and build time.
|
||||
|
||||
config BR2_SHARED_STATIC_LIBS
|
||||
bool "both static and shared"
|
||||
depends on BR2_BINFMT_SUPPORTS_SHARED
|
||||
help
|
||||
Build both shared and static libraries, but link executables
|
||||
dynamically. While building both shared and static libraries
|
||||
take more time and more disk space, having static libraries
|
||||
may be useful to link some of the applications statically.
|
||||
|
||||
endchoice
|
||||
|
||||
|
||||
config BR2_PACKAGE_OVERRIDE_FILE
|
||||
|
@ -284,7 +284,6 @@ config BR2_BINFMT_FDPIC
|
||||
config BR2_BINFMT_FLAT
|
||||
bool "FLAT"
|
||||
depends on BR2_bfin || BR2_m68k
|
||||
select BR2_STATIC_LIBS
|
||||
help
|
||||
FLAT binary is a relatively simple and lightweight executable format
|
||||
based on the original a.out format. It is widely used in environment
|
||||
|
@ -394,7 +394,9 @@ SHARED_STATIC_LIBS_OPTS = --enable-static --disable-shared
|
||||
TARGET_CFLAGS += -static
|
||||
TARGET_CXXFLAGS += -static
|
||||
TARGET_LDFLAGS += -static
|
||||
else
|
||||
else ifeq ($(BR2_SHARED_LIBS),y)
|
||||
SHARED_STATIC_LIBS_OPTS = --disable-static --enable-shared
|
||||
else ifeq ($(BR2_SHARED_STATIC_LIBS),y)
|
||||
SHARED_STATIC_LIBS_OPTS = --enable-static --enable-shared
|
||||
endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user