From 2d523c23175b8e8772c2e223d92513f836cde8a6 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Sat, 9 Oct 2004 01:06:03 +0000 Subject: Major buildroot facelift, step one. -Erik --- toolchain/uClibc/Config.in | 22 +++++ toolchain/uClibc/uClibc.config | 138 ++++++++++++++++++++++++++++ toolchain/uClibc/uClibc.config-locale | 137 ++++++++++++++++++++++++++++ toolchain/uClibc/uclibc.mk | 164 ++++++++++++++++++++++++++++++++++ 4 files changed, 461 insertions(+) create mode 100644 toolchain/uClibc/Config.in create mode 100644 toolchain/uClibc/uClibc.config create mode 100644 toolchain/uClibc/uClibc.config-locale create mode 100644 toolchain/uClibc/uclibc.mk (limited to 'toolchain/uClibc') diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in new file mode 100644 index 000000000..d4f3e77b2 --- /dev/null +++ b/toolchain/uClibc/Config.in @@ -0,0 +1,22 @@ +# Choose uClibc options +# + + +config BR2_UCLIBC_VERSION_SNAPSHOT + bool "Use the daily snapshot of uClibc?" + default y + help + Would you like to use the latest daily snapshot? + +config BR2_USE_UCLIBC_SNAPSHOT + string + default "snapshot" + depends on BR2_UCLIBC_VERSION_SNAPSHOT + +config BR2_ENABLE_LOCALE + bool "Enable locale/gettext/i18n support?" + default n + help + Enable locale/gettext/i18n support? + + diff --git a/toolchain/uClibc/uClibc.config b/toolchain/uClibc/uClibc.config new file mode 100644 index 000000000..c9b7cdf3c --- /dev/null +++ b/toolchain/uClibc/uClibc.config @@ -0,0 +1,138 @@ +# +# Automatically generated make config: don't edit +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sparc is not set +# TARGET_v850 is not set + +# +# Target Architecture Features and Options +# +HAVE_ELF=y +TARGET_ARCH="none" +# ARCH_HAS_NO_MMU is not set +UCLIBC_HAS_FLOATS=y +HAS_FPU=y +DO_C99_MATH=y +WARNINGS="-Wall" +KERNEL_SOURCE="/usr/src/linux" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +# HAVE_NO_SHARED is not set +HAVE_SHARED=y +# ARCH_HAS_NO_LDSO is not set +BUILD_UCLIBC_LDSO=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +# UCLIBC_PIE_SUPPORT is not set +LDSO_LDD_SUPPORT=y +LDSO_CACHE_SUPPORT=y +# LDSO_PRELOAD_FILE_SUPPORT is not set +LDSO_BASE_FILENAME="ld.so" +UCLIBC_CTOR_DTOR=y +# UCLIBC_PROPOLICE is not set +# HAS_NO_THREADS is not set +UCLIBC_HAS_THREADS=y +PTHREADS_DEBUG_SUPPORT=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +HAS_SHADOW=y +# UNIX98PTY_ONLY is not set +ASSUME_DEVPTS=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" + +# +# Networking Support +# +UCLIBC_HAS_IPV6=y +UCLIBC_HAS_RPC=y +UCLIBC_HAS_FULL_RPC=y + +# +# String and Stdio Support +# +UCLIBC_HAS_STRING_GENERIC_OPT=y +UCLIBC_HAS_STRING_ARCH_OPT=y +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=y +# UCLIBC_HAS_LOCALE is not set +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GNU_GETOPT=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +# UCLIBC_HAS_WORDEXP is not set +UCLIBC_HAS_FTW=y +UCLIBC_HAS_GLOB=y + +# +# Library Installation Options +# +SHARED_LIB_LOADER_PREFIX="/lib" +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" + +# +# uClibc development/debugging options +# +# DODEBUG is not set +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MJN3_ONLY is not set diff --git a/toolchain/uClibc/uClibc.config-locale b/toolchain/uClibc/uClibc.config-locale new file mode 100644 index 000000000..a6f959cb7 --- /dev/null +++ b/toolchain/uClibc/uClibc.config-locale @@ -0,0 +1,137 @@ +# +# Automatically generated make config: don't edit +# +# TARGET_alpha is not set +# TARGET_arm is not set +# TARGET_cris is not set +# TARGET_e1 is not set +# TARGET_frv is not set +# TARGET_h8300 is not set +# TARGET_i386 is not set +# TARGET_i960 is not set +# TARGET_m68k is not set +# TARGET_microblaze is not set +# TARGET_mips is not set +# TARGET_nios is not set +# TARGET_nios2 is not set +# TARGET_powerpc is not set +# TARGET_sh is not set +# TARGET_sparc is not set +# TARGET_v850 is not set + +# +# Target Architecture Features and Options +# +HAVE_ELF=y +TARGET_ARCH="none" +# ARCH_HAS_NO_MMU is not set +UCLIBC_HAS_FLOATS=y +HAS_FPU=y +DO_C99_MATH=y +WARNINGS="-Wall" +KERNEL_SOURCE="/usr/src/linux" +HAVE_DOT_CONFIG=y + +# +# General Library Settings +# +# HAVE_NO_PIC is not set +DOPIC=y +HAVE_SHARED=y +BUILD_UCLIBC_LDSO=y +# FORCE_SHAREABLE_TEXT_SEGMENTS is not set +# UCLIBC_PIE_SUPPORT is not set +LDSO_LDD_SUPPORT=y +UCLIBC_CTOR_DTOR=y +# UCLIBC_PROPOLICE is not set +# UCLIBC_PROFILING is not set +UCLIBC_HAS_THREADS=y +PTHREADS_DEBUG_SUPPORT=y +UCLIBC_HAS_LFS=y +# MALLOC is not set +# MALLOC_SIMPLE is not set +MALLOC_STANDARD=y +MALLOC_GLIBC_COMPAT=y +UCLIBC_DYNAMIC_ATEXIT=y +HAS_SHADOW=y +# UNIX98PTY_ONLY is not set +ASSUME_DEVPTS=y +UCLIBC_HAS_TM_EXTENSIONS=y +UCLIBC_HAS_TZ_CACHING=y +UCLIBC_HAS_TZ_FILE=y +UCLIBC_HAS_TZ_FILE_READ_MANY=y +UCLIBC_TZ_FILE_PATH="/etc/TZ" + +# +# Networking Support +# +UCLIBC_HAS_IPV6=y +UCLIBC_HAS_RPC=y +UCLIBC_HAS_FULL_RPC=y + +# +# String and Stdio Support +# +UCLIBC_HAS_CTYPE_TABLES=y +UCLIBC_HAS_CTYPE_SIGNED=y +# UCLIBC_HAS_CTYPE_UNSAFE is not set +UCLIBC_HAS_CTYPE_CHECKED=y +# UCLIBC_HAS_CTYPE_ENFORCED is not set +UCLIBC_HAS_WCHAR=y +UCLIBC_HAS_LOCALE=y +UCLIBC_PREGENERATED_LOCALE_DATA=y +UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=y +UCLIBC_HAS_XLOCALE=y +UCLIBC_HAS_HEXADECIMAL_FLOATS=y +UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y +UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y +UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y +UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 +UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y +# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set +# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set +# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set +UCLIBC_HAS_STDIO_BUFSIZ_4096=y +# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set +UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set +# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set +UCLIBC_HAS_STDIO_GETC_MACRO=y +UCLIBC_HAS_STDIO_PUTC_MACRO=y +UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y +# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y +UCLIBC_HAS_PRINTF_M_SPEC=y +UCLIBC_HAS_ERRNO_MESSAGES=y +# UCLIBC_HAS_SYS_ERRLIST is not set +UCLIBC_HAS_SIGNUM_MESSAGES=y +# UCLIBC_HAS_SYS_SIGLIST is not set +UCLIBC_HAS_GETTEXT_AWARENESS=y +UCLIBC_HAS_GNU_GETOPT=y + +# +# Big and Tall +# +UCLIBC_HAS_REGEX=y +UCLIBC_HAS_WORDEXP=y +UCLIBC_HAS_FTW=y +UCLIBC_HAS_GLOB=y + +# +# Library Installation Options +# +SHARED_LIB_LOADER_PREFIX="/lib" +RUNTIME_PREFIX="/" +DEVEL_PREFIX="/usr/" + +# +# uClibc development/debugging options +# +# DODEBUG is not set +# DOASSERTS is not set +# SUPPORT_LD_DEBUG is not set +# SUPPORT_LD_DEBUG_EARLY is not set +# UCLIBC_MJN3_ONLY is not set diff --git a/toolchain/uClibc/uclibc.mk b/toolchain/uClibc/uclibc.mk new file mode 100644 index 000000000..ad8cbdfcc --- /dev/null +++ b/toolchain/uClibc/uclibc.mk @@ -0,0 +1,164 @@ +############################################################# +# +# uClibc (the C library) +# +############################################################# + +ifeq ($(BR2_UCLIBC_VERSION_SNAPSHOT),y) +# Be aware that this changes daily.... +UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc +UCLIBC_SOURCE:=uClibc-$(strip $(subst ",, $(BR2_USE_UCLIBC_SNAPSHOT))).tar.bz2 +#" +UCLIBC_SITE:=http://www.uclibc.org/downloads/snapshots +else +# Note: 0.9.26 has known problems. So best use a snapshot until .27 is out. +# Anticipate the change. +UCLIBC_DIR:=$(TOOL_BUILD_DIR)/uClibc-0.9.27 +UCLIBC_SOURCE:=uClibc-0.9.27.tar.bz2 +UCLIBC_SITE:=http://www.uclibc.org/downloads +endif + +UCLIBC_TARGET_ARCH:=$(shell echo $(ARCH) | sed -e s'/-.*//' \ + -e 's/i.86/i386/' \ + -e 's/sparc.*/sparc/' \ + -e 's/arm.*/arm/g' \ + -e 's/m68k.*/m68k/' \ + -e 's/ppc/powerpc/g' \ + -e 's/v850.*/v850/g' \ + -e 's/sh64/sh/' \ + -e 's/sh[234]/sh/' \ + -e 's/mips.*/mips/' \ + -e 's/mipsel.*/mips/' \ + -e 's/cris.*/cris/' \ +) + + +$(DL_DIR)/$(UCLIBC_SOURCE): + mkdir -p $(DL_DIR) + $(WGET) -P $(DL_DIR) $(UCLIBC_SITE)/$(UCLIBC_SOURCE) + +$(UCLIBC_DIR)/.unpacked: $(DL_DIR)/$(UCLIBC_SOURCE) + mkdir -p $(TOOL_BUILD_DIR) + bzcat $(DL_DIR)/$(UCLIBC_SOURCE) | tar -C $(TOOL_BUILD_DIR) -xvf - + touch $(UCLIBC_DIR)/.unpacked + +$(UCLIBC_DIR)/.configured: $(UCLIBC_DIR)/.unpacked + $(SED) 's,^CROSS=.*,CROSS=$(TARGET_CROSS),g' $(UCLIBC_DIR)/Rules.mak +ifeq ($(BR2_ENABLE_LOCALE),y) + cp toolchain/uClibc/uClibc.config-locale $(UCLIBC_DIR)/.config +else + cp toolchain/uClibc/uClibc.config $(UCLIBC_DIR)/.config +endif + $(SED) 's,^.*TARGET_$(UCLIBC_TARGET_ARCH).*,TARGET_$(UCLIBC_TARGET_ARCH)=y,g' \ + $(UCLIBC_DIR)/.config + $(SED) 's,^TARGET_ARCH.*,TARGET_ARCH=\"$(UCLIBC_TARGET_ARCH)\",g' $(UCLIBC_DIR)/.config + $(SED) 's,^KERNEL_SOURCE=.*,KERNEL_SOURCE=\"$(LINUX_HEADERS_DIR)\",g' \ + $(UCLIBC_DIR)/.config + $(SED) 's,^RUNTIME_PREFIX=.*,RUNTIME_PREFIX=\"/\",g' \ + $(UCLIBC_DIR)/.config + $(SED) 's,^DEVEL_PREFIX=.*,DEVEL_PREFIX=\"/usr/\",g' \ + $(UCLIBC_DIR)/.config + $(SED) 's,^SHARED_LIB_LOADER_PREFIX=.*,SHARED_LIB_LOADER_PREFIX=\"/lib\",g' \ + $(UCLIBC_DIR)/.config +ifeq ($(BR2_LARGEFILE),y) + $(SED) 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=y,g' $(UCLIBC_DIR)/.config +else + $(SED) 's,^.*UCLIBC_HAS_LFS.*,UCLIBC_HAS_LFS=n,g' $(UCLIBC_DIR)/.config +endif + $(SED) 's,.*UCLIBC_HAS_WCHAR.*,UCLIBC_HAS_WCHAR=y,g' $(UCLIBC_DIR)/.config +ifeq ($(BR2_SOFT_FLOAT),true) + $(SED) 's,.*HAS_FPU.*,HAS_FPU=n\nUCLIBC_HAS_FLOATS=y\nUCLIBC_HAS_SOFT_FLOAT=y,g' $(UCLIBC_DIR)/.config +endif + mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/include + mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/usr/lib + mkdir -p $(TOOL_BUILD_DIR)/uClibc_dev/lib + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=$(TOOL_BUILD_DIR)/uClibc_dev/ \ + HOSTCC="$(HOSTCC)" \ + pregen install_dev; + touch $(UCLIBC_DIR)/.configured + +$(UCLIBC_DIR)/lib/libc.a: $(UCLIBC_DIR)/.configured $(LIBFLOAT_TARGET) + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX= \ + DEVEL_PREFIX=/ \ + RUNTIME_PREFIX=/ \ + HOSTCC="$(HOSTCC)" \ + all + +$(STAGING_DIR)/lib/libc.a: $(UCLIBC_DIR)/lib/libc.a + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX=$(STAGING_DIR)/ \ + DEVEL_PREFIX=/ \ + RUNTIME_PREFIX=/ \ + install_runtime + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX=$(STAGING_DIR)/ \ + DEVEL_PREFIX=/ \ + RUNTIME_PREFIX=/ \ + install_dev + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX=$(STAGING_DIR) \ + HOSTCC="$(HOSTCC)" \ + utils install_utils + # Clean up the host compiled utils... + $(MAKE) -C $(UCLIBC_DIR)/utils clean + +ifneq ($(TARGET_DIR),) +$(TARGET_DIR)/lib/libc.so.0: $(STAGING_DIR)/lib/libc.a + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX=$(TARGET_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=/ \ + install_runtime + +$(TARGET_DIR)/usr/bin/ldd: $(TARGET_DIR)/lib/libc.so.0 + $(MAKE) -C $(UCLIBC_DIR) $(TARGET_CONFIGURE_OPTS) \ + PREFIX=$(TARGET_DIR) utils install_utils + +UCLIBC_TARGETS=$(TARGET_DIR)/lib/libc.so.0 $(TARGET_DIR)/usr/bin/ldd +endif + +uclibc-configured: $(UCLIBC_DIR)/.configured + +uclibc: $(STAGING_DIR)/bin/$(REAL_GNU_TARGET_NAME)-gcc $(STAGING_DIR)/lib/libc.a \ + $(UCLIBC_TARGETS) + +uclibc-source: $(DL_DIR)/$(UCLIBC_SOURCE) + +uclibc-configured-source: uclibc-source + +uclibc-clean: + -$(MAKE) -C $(UCLIBC_DIR) clean + rm -f $(UCLIBC_DIR)/.config + +uclibc-dirclean: + rm -rf $(UCLIBC_DIR) + + + + +############################################################# +# +# uClibc for the target just needs its header files +# and whatnot installed. +# +############################################################# + +$(TARGET_DIR)/usr/lib/libc.a: $(STAGING_DIR)/$(REAL_GNU_TARGET_NAME)/lib/libc.a + $(MAKE) -C $(UCLIBC_DIR) \ + PREFIX=$(TARGET_DIR) \ + DEVEL_PREFIX=/usr/ \ + RUNTIME_PREFIX=/ \ + install_dev + +uclibc_target: gcc uclibc $(TARGET_DIR)/usr/lib/libc.a + +uclibc_target-clean: + rm -f $(TARGET_DIR)/include + +uclibc_target-dirclean: + rm -f $(TARGET_DIR)/include + -- cgit v1.2.3