config/libc.in
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Wed Oct 01 18:10:40 2008 +0000 (2008-10-01)
changeset 894 c444ce4b51b9
parent 850 ef8549b58b6f
child 922 3f0456891349
permissions -rw-r--r--
Save the toolchain configuration to its own file, as an auto-extracting shell script:
- get rid of the 'extractconfig' action, it was cumbersome to use, and badly documented,
- introduce a skeleton for the config script,
- update auto-completion,
- document the config script.

/trunk/kconfig/kconfig.mk | 9 2 7 0 ++-------
/trunk/scripts/crosstool.sh | 6 5 1 0 +++++-
/trunk/docs/overview.txt | 21 9 12 0 +++++++++------------
/trunk/tools/toolchain-config.in | 8 8 0 0 ++++++++
/trunk/ct-ng.comp | 2 1 1 0 +-
5 files changed, 25 insertions(+), 21 deletions(-)
yann@1
     1
# C library options
yann@1
     2
yann@850
     3
config LIBC
yann@850
     4
    string
yann@850
     5
    default "none"   if BARE_METAL
yann@850
     6
    default "glibc"  if LIBC_GLIBC
yann@850
     7
    default "eglibc" if LIBC_EGLIBC
yann@850
     8
    default "uClibc" if LIBC_UCLIBC
yann@850
     9
yann@850
    10
if ! BARE_METAL
yann@850
    11
yann@1
    12
menu "C-library"
yann@1
    13
yann@852
    14
config LIBC_VERSION
yann@852
    15
    string
yann@852
    16
    help
yann@852
    17
      Enter the date of the snapshot you want to use in the form: YYYYMMDD
yann@852
    18
      where YYYY is the 4-digit year, MM the 2-digit month and DD the 2-digit
yann@852
    19
      day in the month.
yann@852
    20
      
yann@852
    21
      Please note:
yann@852
    22
      - glibc has snapshots done every monday, and only the last ten are kept.
yann@852
    23
      - uClibc has daily snapshots, and only the last 30-or-so are kept.
yann@852
    24
      
yann@852
    25
      So if you want to be able to re-build your toolchain later, you will
yann@852
    26
      have to save your C library tarball by yourself.
yann@852
    27
yann@1
    28
choice
yann@1
    29
    bool
yann@1
    30
    prompt "C-library to use:"
yann@1
    31
    default LIBC_GLIBC
yann@1
    32
yann@1
    33
config LIBC_GLIBC
yann@1
    34
    bool
yann@1
    35
    prompt "glibc"
yann@95
    36
    select LIBC_SUPPORT_NPTL
yann@95
    37
    select LIBC_SUPPORT_LINUXTHREADS
yann@1
    38
yann@787
    39
config LIBC_EGLIBC
yann@787
    40
    bool
yann@787
    41
    prompt "eglibc (EXPERIMENTAL)"
yann@787
    42
    select LIBC_SUPPORT_NPTL
yann@787
    43
    select LIBC_SUPPORT_LINUXTHREADS
yann@787
    44
    depends on EXPERIMENTAL
yann@815
    45
    help
yann@815
    46
      EGLIBC (Embedded GLIBC) is a variant of the standard GNU GLIBC
yann@815
    47
      that is designed to work well on embedded systems.  EGLIBC strives
yann@815
    48
      to be source and binary compatible with GLIBC.  Its goals include
yann@815
    49
      a reduced footprint, configurable components, and improved
yann@815
    50
      cross-compilation support.  EGLIBC also includes some embedded ports
yann@815
    51
      (such as e500/spe) that are normally separate add-ons of GLIBC.
yann@787
    52
yann@1
    53
config LIBC_UCLIBC
yann@1
    54
    bool
yann@1
    55
    prompt "uClibc"
yann@95
    56
    select LIBC_SUPPORT_LINUXTHREADS
yann@1
    57
yann@1
    58
endchoice
yann@1
    59
yann@852
    60
comment "Common C library options"
yann@1
    61
yann@95
    62
config LIBC_SUPPORT_NPTL
yann@95
    63
    bool
yann@95
    64
    default n
yann@95
    65
yann@95
    66
config LIBC_SUPPORT_LINUXTHREADS
yann@95
    67
    bool
yann@95
    68
    default n
yann@95
    69
yann@852
    70
config THREADS
yann@852
    71
    string
yann@852
    72
    default "nptl"          if THREADS_NPTL
yann@852
    73
    default "linuxthreads"  if THREADS_LINUXTHREADS
yann@852
    74
    default "none"          if THREADS_NONE
yann@852
    75
yann@802
    76
choice
yann@802
    77
    bool
yann@802
    78
    prompt "Threading implementation to use:"
yann@802
    79
    default THREADS_NPTL           if LIBC_SUPPORT_NPTL
yann@802
    80
    default THREADS_LINUXTHREADS   if LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
yann@802
    81
    default THREADS_NONE           if ! LIBC_SUPPORT_LINUXTHREADS && ! LIBC_SUPPORT_NPTL
yann@1
    82
yann@802
    83
config THREADS_NPTL
yann@802
    84
    bool
yann@802
    85
    prompt "nptl"
yann@802
    86
    depends on LIBC_SUPPORT_NPTL
yann@787
    87
yann@802
    88
config THREADS_LINUXTHREADS
yann@802
    89
    bool
yann@802
    90
    prompt "linuxthreads"
yann@802
    91
    depends on LIBC_SUPPORT_LINUXTHREADS
yann@802
    92
yann@802
    93
config THREADS_NONE
yann@802
    94
    bool
yann@802
    95
    prompt "none"
yann@802
    96
yann@802
    97
endchoice
yann@802
    98
yann@852
    99
if LIBC_GLIBC
yann@852
   100
source config/libc/glibc.in
yann@852
   101
endif
yann@1
   102
yann@852
   103
if LIBC_EGLIBC
yann@852
   104
source config/libc/eglibc.in
yann@852
   105
endif
yann@852
   106
yann@852
   107
# Hack: mconf does not allow to include a file multiple times,
yann@852
   108
# so include glibc and eglibc common options from here, rather
yann@852
   109
# than from each config files.
yann@852
   110
if LIBC_GLIBC || LIBC_EGLIBC
yann@852
   111
source config/libc/glibc-eglibc-common.in
yann@852
   112
endif
yann@852
   113
yann@852
   114
if LIBC_UCLIBC
yann@852
   115
source config/libc/uClibc.in
yann@852
   116
endif
yann@710
   117
yann@1
   118
endmenu
yann@850
   119
yann@850
   120
endif # ! BARE_METAL