summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2017-06-25 21:04:23 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2017-06-26 12:41:05 +0200
commit1cf04b9efde27c39a600862f962e0a703e3fc20f (patch)
tree9e5c99ba274e7727a3e2cc65c39d26cc2fe45bdc
parent9162b50f553369444930878e318a929509aa720f (diff)
rework intl/iconv/locale configuration for uClibc-ng toolchains
-rw-r--r--adk/tools/pkgmaker.c6
-rw-r--r--package/gettext/Makefile1
-rw-r--r--package/systemd/Makefile1
-rw-r--r--package/uclibc-ng-test/Makefile2
-rw-r--r--package/uclibc-ng/Makefile2
-rw-r--r--target/config/Config.in.runtime14
-rw-r--r--target/config/Config.in.toolchain47
-rw-r--r--toolchain/uclibc-ng/Makefile9
8 files changed, 57 insertions, 25 deletions
diff --git a/adk/tools/pkgmaker.c b/adk/tools/pkgmaker.c
index 6a32958e7..8ab121234 100644
--- a/adk/tools/pkgmaker.c
+++ b/adk/tools/pkgmaker.c
@@ -910,7 +910,11 @@ int main() {
fprintf(cfg, "\tselect ADK_PACKAGE_LIBSTDCXX\n");
}
if (strncmp(token, "iconv", 5) == 0)
- fprintf(cfg, "\tdepends on ADK_TARGET_LIBC_ICONV\n");
+ fprintf(cfg, "\tselect ADK_TARGET_LIBC_WITH_LIBICONV if ADK_TARGET_LIB_UCLIBC_NG\n");
+ if (strncmp(token, "intl", 4) == 0)
+ fprintf(cfg, "\tselect ADK_TARGET_LIBC_WITH_LIBINTL if ADK_TARGET_LIB_UCLIBC_NG\n");
+ if (strncmp(token, "locale", 6) == 0)
+ fprintf(cfg, "\tselect ADK_TARGET_LIBC_WITH_LOCALE if ADK_TARGET_LIB_UCLIBC_NG\n");
if (strncmp(token, "threads", 7) == 0)
fprintf(cfg, "\tselect ADK_TARGET_LIB_WITH_THREADS\n");
if (strncmp(token, "mmu", 3) == 0)
diff --git a/package/gettext/Makefile b/package/gettext/Makefile
index 5ab5bb152..82439e19e 100644
--- a/package/gettext/Makefile
+++ b/package/gettext/Makefile
@@ -12,6 +12,7 @@ PKG_SECTION:= libs/misc
PKG_URL:= https://www.gnu.org/software/gettext/
PKG_SITES:= http://ftp.gnu.org/pub/gnu/gettext/
PKG_OPTS:= dev
+PKG_CFLINE_GETTEXT:= depends on !ADK_TARGET_LIBC_WITHOUT_LIBICONV
include $(ADK_TOPDIR)/mk/host.mk
include $(ADK_TOPDIR)/mk/package.mk
diff --git a/package/systemd/Makefile b/package/systemd/Makefile
index ac3c04389..be860b8de 100644
--- a/package/systemd/Makefile
+++ b/package/systemd/Makefile
@@ -12,6 +12,7 @@ PKG_SECTION:= base/init
PKG_DEPENDS:= libcap libmount libuuid libblkid libncurses libkmod
PKG_BUILDDEP:= intltool-host gperf-host libcap util-linux gettext-host kmod
PKG_KDEPENDS:= cgroups namespaces fhandle tmpfs-posix-acl tmpfs-xattr
+PKG_NEEDS:= locale intl
PKG_URL:= https://wiki.freedesktop.org/www/Software/systemd/
PKG_SITES:= https://github.com/systemd/systemd/archive/
diff --git a/package/uclibc-ng-test/Makefile b/package/uclibc-ng-test/Makefile
index c9515758e..309ee3d7e 100644
--- a/package/uclibc-ng-test/Makefile
+++ b/package/uclibc-ng-test/Makefile
@@ -36,7 +36,7 @@ endif
ifeq ($(ADK_TARGET_USE_STATIC_LIBS_ONLY),y)
XAKE_FLAGS+= NO_DL=1 NO_TLS=1 NO_NPTL=1
endif
-ifeq ($(ADK_RUNTIME_ENABLE_LOCALE),)
+ifeq ($(ADK_TARGET_LIBC_WITH_LOCALE),)
XAKE_FLAGS+= NO_LOCALE=1
endif
diff --git a/package/uclibc-ng/Makefile b/package/uclibc-ng/Makefile
index b3ba6f228..f22a40b85 100644
--- a/package/uclibc-ng/Makefile
+++ b/package/uclibc-ng/Makefile
@@ -33,7 +33,7 @@ uclibc-ng-install:
test -z $(ADK_RUNTIME_TIMEZONE) || \
grep $(ADK_RUNTIME_TIMEZONE) ./files/tz.lst | \
cut -f 2 > $(IDIR_UCLIBC_NG)/etc/TZ
-ifeq ($(ADK_RUNTIME_ENABLE_LOCALE),y)
+ifeq ($(ADK_TARGET_LIBC_WITH_LOCALE),y)
${INSTALL_DIR} $(IDIR_UCLIBC_NG)/usr/bin
$(INSTALL_BIN) $(STAGING_TARGET_DIR)/uclibc-ng/usr/bin/locale $(IDIR_UCLIBC_NG)/usr/bin
endif
diff --git a/target/config/Config.in.runtime b/target/config/Config.in.runtime
index 8ea01c4e9..87f3febbd 100644
--- a/target/config/Config.in.runtime
+++ b/target/config/Config.in.runtime
@@ -35,7 +35,8 @@ config ADK_RUNTIME_INIT_SYSTEMD
select ADK_PACKAGE_SYSTEMD
select ADK_PACKAGE_DBUS
select ADK_PACKAGE_DBUS_WITH_SYSTEMD
- select ADK_RUNTIME_ENABLE_LOCALE
+ select ADK_TARGET_LIBC_WITH_LOCALE if ADK_TARGET_LIB_UCLIBC_NG
+ select ADK_TARGET_LIBC_WITH_LIBINTL_STUB if ADK_TARGET_LIB_UCLIBC_NG
select ADK_TARGET_USE_SSP
depends on ADK_TARGET_LIB_GLIBC || ADK_TARGET_LIB_UCLIBC_NG
@@ -199,19 +200,12 @@ config ADK_RUNTIME_TIMEZONE
help
Predefine the timezone for the embedded system.
-config ADK_RUNTIME_ENABLE_LOCALE
- bool "enable locale (i18n) support"
- select ADK_TARGET_LIBC_ICONV if ADK_TARGET_LIB_UCLIBC_NG
- select BUSYBOX_LOCALE_SUPPORT
- help
- Enable locale support for the target.
-
config ADK_RUNTIME_DEFAULT_LOCALE
string "default locale"
- depends on ADK_RUNTIME_ENABLE_LOCALE
+ depends on ADK_TARGET_LIBC_WITH_LOCALE
default "de_DE"
help
- Set locale to be set in the target system as default.
+ Locale to be set in the target system as default.
choice
prompt "bootup messages from kernel"
diff --git a/target/config/Config.in.toolchain b/target/config/Config.in.toolchain
index 92bfd79d5..b9082cb86 100644
--- a/target/config/Config.in.toolchain
+++ b/target/config/Config.in.toolchain
@@ -24,18 +24,47 @@ config ADK_TARGET_USE_SHARED_AND_STATIC_LIBS
endchoice
choice
-depends on ADK_TARGET_OS_LINUX
-bool "Iconv implementation"
+depends on ADK_TARGET_LIB_UCLIBC_NG
+bool "Locale support"
+
+config ADK_TARGET_LIBC_WITHOUT_LOCALE
+ bool "Disable locale support"
+
+config ADK_TARGET_LIBC_WITH_LOCALE
+ bool "Enable locale support"
+ select BUSYBOX_LOCALE_SUPPORT if ADK_PACKAGE_BUSYBOX
+
+endchoice
+
+choice
+depends on ADK_TARGET_LIB_UCLIBC_NG
+bool "Intl support"
+
+config ADK_TARGET_LIBC_WITHOUT_LIBINTL
+ bool "Disable libintl support"
+ help
+ Disables uClibc-ng internal stub support.
+
+config ADK_TARGET_LIBC_WITH_LIBINTL
+ bool "Enable libintl stub support"
+ help
+ Enables uClibc-ng libintl stub.
+
+endchoice
-config ADK_TARGET_LIBC_ICONV
- bool "Use iconv from C library"
+choice
+depends on ADK_TARGET_LIB_UCLIBC_NG
+bool "Iconv support"
-config ADK_TARGET_LIBICONV
- bool "Use libiconv package"
- select ADK_PACKAGE_LIBICONV
+config ADK_TARGET_LIBC_WITHOUT_LIBICONV
+ bool "Disable libiconv support"
+ help
+ Disables uClibc-ng internal libiconv support.
-config ADK_TARGET_WITHOUT_ICONV
- bool "Do not build any iconv code"
+config ADK_TARGET_LIBC_WITH_LIBICONV
+ bool "Enable basic libiconv"
+ help
+ Enables uClibc-ng included basic libiconv support.
endchoice
diff --git a/toolchain/uclibc-ng/Makefile b/toolchain/uclibc-ng/Makefile
index 1db3c17ac..3d07abac0 100644
--- a/toolchain/uclibc-ng/Makefile
+++ b/toolchain/uclibc-ng/Makefile
@@ -105,10 +105,13 @@ ifeq ($(ADK_TARGET_BINFMT_FLAT_SHARED),y)
$(SED) 's/.*\(UCLIBC_FORMAT_FDPIC_ELF\).*/# \1 is not set/' ${WRKBUILD}/.config
endif
endif
-ifeq ($(ADK_TARGET_LIBC_ICONV),y)
+ifeq ($(ADK_TARGET_LIBC_WITH_LIBICONV),y)
$(SED) 's/.*\(UCLIBC_HAS_LIBICONV\).*/\1=y/' ${WRKBUILD}/.config
endif
-ifeq ($(ADK_RUNTIME_ENABLE_LOCALE),y)
+ifeq ($(ADK_TARGET_LIBC_WITH_LIBINTL),y)
+ $(SED) 's/.*\(UCLIBC_HAS_LIBINTL\).*/\1=y/' ${WRKBUILD}/.config
+endif
+ifeq ($(ADK_TARGET_LIBC_WITH_LOCALE),y)
$(SED) 's/.*\(UCLIBC_HAS_LOCALE\).*/\1=y/' ${WRKBUILD}/.config
echo 'UCLIBC_HAS_XLOCALE=y' >> ${WRKBUILD}/.config
endif
@@ -318,7 +321,7 @@ endif
UCLIBC_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
UCLIBC_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)" \
oldconfig
-ifeq ($(ADK_RUNTIME_ENABLE_LOCALE),y)
+ifeq ($(ADK_TARGET_LIBC_WITH_LOCALE),y)
$(SED) 's/.*\(UCLIBC_BUILD_MINIMAL_LOCALES\).*/\1="$(ADK_RUNTIME_DEFAULT_LOCALE)"/' ${WRKBUILD}/.config
endif
touch $@