?? configure.host
字號:
# configure.host# This shell script handles all host based configuration for newlib.# It sets various shell variables based on the the host and the# configuration options. You can modify this shell script without# needing to rerun autoconf.# This shell script should be invoked as# . configure.host# If it encounters an error, it will exit with a message.# FIXME: This script is too complicated. It does things in too many# different ways. This was taken from the old Cygnus configure script# with only minor changes. It should be cleaned up.# FIXME: The general approach of picking and choosing which# directories to configure, other than machine_dir and sys_dir, is# potentially confusing.# It uses the following shell variables:# host The configuration host# host_cpu The configuration host CPU# newlib_mb --enable-newlib-mb ("yes", "no")# target_optspace --enable-target-optspace ("yes", "no", "")# It sets the following shell variables:# newlib_cflags Special CFLAGS to use when building# machine_dir Subdirectory of libc/machine to configure# sys_dir Subdirectory of libc/sys to configure# posix_dir "posix" to build libc/posix, "" otherwise# signal_dir "signal" to build libc/signal, "" otherwise# syscall_dir "syscalls" to build libc/syscalls, "" otherwise# unix_dir "unix" to build libc/unix, "" otherwise# use_libtool flag: use libtool to build newlib?# aext library extension - needed for libtool support# oext object file extension - needed for libtool supportnewlib_cflags=libm_machine_dir=machine_dir=sys_dir=posix_dir=signal_dir=signalsyscall_dir=unix_dir=mach_add_setjmp=use_libtool=noaext=aoext=ocase "${target_optspace}:${host}" in yes:*) newlib_cflags="${newlib_cflags} -Os" ;; :m32r-* | :d10v-* | :d30v-* | :avr-*) newlib_cflags="${newlib_cflags} -Os" ;; no:* | :*) newlib_cflags="${newlib_cflags} -O2" ;;esac# Get the source directories to use for the CPU type.# machine_dir should supply CPU dependent routines, such as setjmp.# newlib_cflags is passed to gcc when compiling.# THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY.case "${host_cpu}" in a29k) machine_dir=a29k ;; arc) machine_dir= ;; arm) machine_dir=arm ;; avr*) newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mcall-prologues" ;; d10v*) machine_dir=d10v ;; d30v*) machine_dir=d30v ;; fr30) machine_dir=fr30 ;; h8300) machine_dir=h8300 ;; h8500) machine_dir=h8500 ;; hppa*) machine_dir=hppa ;; i960) machine_dir=i960 ;; i[3456]86) # Don't use for these since they provide their own setjmp. case ${host} in *-*-go32 | *-*-sco* | *-*-cygwin*) libm_machine_dir=i386 machine_dir=i386 ;; *) libm_machine_dir=i386 machine_dir=i386 mach_add_setjmp=true ;; esac ;; ia64*) ;; m32r*) machine_dir=m32r ;; m68*) machine_dir=m68k ;; m88k) machine_dir=m88k newlib_cflags="${newlib_cflags} -m88000" ;; m88110) machine_dir=m88k newlib_cflags="${newlib_cflags} -m88110" ;; mcore) ;; mips*) machine_dir=mips ;; mmix) ;; mn10200) machine_dir=mn10200 ;; mn10300) machine_dir=mn10300 ;; or16) ;; or32) ;; powerpc*) machine_dir=powerpc ;; sh) machine_dir=sh ;; sparc*) machine_dir=sparc # FIXME: Might wish to make MALLOC_ALIGNMENT more generic. newlib_cflags="${newlib_cflags} -DMALLOC_ALIGNMENT=8" ;; strongarm) machine_dir=arm ;; xscale) machine_dir=xscale ;; thumb) machine_dir=arm ;; tic80*) machine_dir=tic80 ;; v70) ;; v810) ;; v850) machine_dir=v850 newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 " ;; v850e) machine_dir=v850 newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 " ;; v850ea) machine_dir=v850 newlib_cflags="${newlib_cflags} -DPREFER_SIZE_OVER_SPEED -mv850 " ;; w65*) machine_dir=w65 ;; z8k) machine_dir=z8k ;; *) echo '***' "Newlib does not support CPU ${host_cpu}" 1>&2 exit 1 ;;esac# Enable multibyte support if requested.if [ "${newlib_mb}" = "yes" ] ; then newlib_cflags="${newlib_cflags} -DMB_CAPABLE"fi# Verify if shared newlib support is allowed and set appropriate variables# We don't want to use libtool for platforms that we are not going to# support shared libraries. This is because it adds executable tests which# we don't want for most embedded platforms.case "${host}" in i[3456]86-pc-linux-*) use_libtool=yes oext=lo aext=la ;; *) ;; #shared library not supported for ${host}esac# Get the source directories to use for the host. unix_dir is set# to unix to get some standard Unix routines. posix_dir is set to get some# standard Posix routines. sys_dir should supply system dependent routines# including crt0.# THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY.case "${host}" in *-*-cygwin*) sys_dir=cygwin posix_dir=posix ;; *-*-netware*) signal_dir= sys_dir=netware ;; *-*-rtems*) # generic RTEMS support sys_dir=rtems # RTEMS POSIX support is all inside RTEMS ;; a29k-*-*) sys_dir=a29khif signal_dir= ;; arc-*-*) sys_dir=arc ;; arm-*-*) sys_dir=arm ;; d10v*) sys_dir=d10v ;; d30v*) sys_dir= ;; h8300-*-hms*) sys_dir=h8300hms ;; h8300-*-elf*) sys_dir=h8300hms ;; h8300-*-xray*) sys_dir=h8300xray ;; h8500-*-hms*) sys_dir=h8500hms ;; h8500-*-elf*) sys_dir=h8500hms ;; i[3456]86-*-go32) sys_dir=go32 ;; i[3456]86-*-sco*) sys_dir=sysvi386 unix_dir=unix ;; i[3456]86-pc-linux-*) sys_dir=linux unix_dir=unix posix_dir=posix gcc_dir=`gcc -print-search-dirs | awk '/^install:/{print $2}'` #newlib_cflags="${newlib_cflags} -Werror" # DEBUGGING ONLY;BREAKS BUILD newlib_cflags="${newlib_cflags} -Wall" newlib_cflags="${newlib_cflags} -D_I386MACH_ALLOW_HW_INTERRUPTS" newlib_cflags="${newlib_cflags} -D_LOOSE_KERNEL_NAMES -DHAVE_FCNTL" # --- Required when building a shared library ------------------------ newlib_cflags="${newlib_cflags} -fPIC -D_I386MACH_NEED_SOTYPE_FUNCTION" # --- The three lines below are optional ------------------------------ ##newlib_cflags="${newlib_cflags} -nostdinc" ##newlib_cflags="${newlib_cflags} -I`newlib-flags --kernel-dir`/include" ##newlib_cflags="${newlib_cflags} -idirafter ${gcc_dir}include" ;; m68k-sun-sunos*) unix_dir=unix ;; m8*-bug-*) sys_dir=m88kbug ;; mips*-dec-*) sys_dir=decstation ;; mmix-knuth-mmixware) sys_dir=mmixware ;; powerpcle-*-pe) sys_dir=cygwin posix_dir=posix ;; sh*-*) sys_dir=sh ;; sparc-sun-sunos*) sys_dir=sun4 unix_dir=unix ;; sparc64*) sys_dir=sparc64 unix_dir=unix ;; strongarm-*-*) sys_dir=arm ;; xscale-*-*) sys_dir=arm ;; thumb-*-*) sys_dir=arm ;; tic80*) sys_dir=tic80 ;; v70-nec-*) sys_dir=sysvnecv70 ;; v810-*-*) sys_dir=sysnec810 ;; v850-*-*) sys_dir=sysnecv850 ;; v850e-*-*) sys_dir=sysnecv850 ;; v850ea-*-*) sys_dir=sysnecv850 ;; *-*-visopsys*) sys_dir=visopsys ;; w65-*-*) sys_dir=w65 ;; z8k-*-coff) sys_dir=z8ksim ;;esac# Host specific flag settings -- usually for features that are not# general enough or broad enough to be handled above.# THIS TABLE IS ALPHA SORTED. KEEP IT THAT WAY.case "${host}" in *-*-cygwin*) newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DSIGNAL_PROVIDED -DWANT_IO_LONG_DBL -DWANT_PRINTF_LONG_LONG -D_COMPILING_NEWLIB -DHAVE_FCNTL"# CYGWIN provides its own malloc if --enable-malloc-debugging is set if [ "x${malloc_debugging}" = "xyes" ] ; then newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED" fi syscall_dir=syscalls ;;# RTEMS supplies its own versions of some routines:# malloc() (reentrant version)# exit() RTEMS has a "global" reent to flush# signal()/raise() RTEMS has its own including pthread signals# _XYZ_r() RTEMS has its own reentrant routines## NOTE: When newlib malloc uses a semaphore, RTEMS will switch to that. *-*-rtems*) newlib_cflags="${newlib_cflags} -DHAVE_GETTIMEOFDAY -DMALLOC_PROVIDED -DEXIT_PROVIDED -DMISSING_SYSCALL_NAMES -DSIGNAL_PROVIDED -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_OPENDIR -DNO_EXEC -DWANT_PRINTF_LONG_LONG -DHAVE_FCNTL" ;;# VxWorks supplies its own version of malloc, and the newlib one# doesn't work because VxWorks does not have sbrk. *-wrs-vxworks*) newlib_cflags="${newlib_cflags} -DMALLOC_PROVIDED -DMISSING_SYSCALL_NAMES -DHAVE_FCNTL" ;;# UDI doesn't have exec, so system() should fail the right way a29k-amd-udi) newlib_cflags="${newlib_cflags} -DNO_EXEC" syscall_dir=syscalls ;; arc-*-*) syscall_dir=syscalls ;; arm-*-pe) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"# Don't use the debugging protocols just yet. ;; arm-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"# Select which debug protocol is being used.# ARM_RDP_MONITOR selects the Demon monitor.# ARM_RDI_MONITOR selects the Angel monitor.# If neither are defined, then hard coded defaults will be used# to create the program's environment.# See also thumb below.# newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" ;; avr*) newlib_cflags="${newlib_cflags} -DNO_EXEC -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" ;; d10v*) newlib_cflags="${newlib_cflags} -DSMALL_MEMORY" syscall_dir=syscalls ;; d30v*) newlib_cflags="${newlib_cflags} -DABORT_MESSAGE -DSMALL_MEMORY -DMISSING_SYSCALL_NAMES" syscall_dir= ;; fr30-*-*) newlib_cflags="${newlib_cflags}" syscall_dir=syscalls ;; h8300*-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" ;; h8500-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" ;; i[3456]86-*-sco*) newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED -DHAVE_FCNTL" ;; i[3456]86-*-netware*) newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC -DABORT_PROVIDED -DCLOCK_PROVIDED -DMALLOC_PROVIDED -DHAVE_FCNTL" ;; i[3456]86-*-go32) newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES -DNO_EXEC -DHAVE_FCNTL" ;; m32r-*-*) # Pass -msdata=sdata so _impure_ptr goes in .sdata. # We don't generate sda relocs however for upward compatibility. # FIXME: This is necessary because the default multilib doesn't # use --print-multi-lib. newlib_cflags="${newlib_cflags} -msdata=sdata" syscall_dir=syscalls ;; mcore-*-*) newlib_cflags="${newlib_cflags}" syscall_dir=syscalls ;; mmix-*) syscall_dir=syscalls # We need every symbol 32-bit aligned, so the invalid # construct with attribute ((alias ("_ctype_b+127"))) breaks. newlib_cflags="${newlib_cflags} -DCOMPACT_CTYPE" ;; mn10?00-*-*) syscall_dir=syscalls ;; powerpc*-*-eabi* | \ powerpc*-*-elf* | \ powerpc*-*-linux* | \ powerpc*-*-rtem* | \ powerpc*-*-sysv* | \ powerpc*-*-solaris*) newlib_cflags="${newlib_cflags} -mrelocatable-lib -mno-eabi -mstrict-align -DMISSING_SYSCALL_NAMES" ;; powerpcle-*-pe) newlib_cflags="${newlib_cflags} -DHAVE_OPENDIR -DHAVE_RENAME -DHAVE_FCNTL" syscall_dir=syscalls ;; sh*-*-*) newlib_cflags="${newlib_cflags} -DHAVE_GETTIMEOFDAY" syscall_dir=syscalls ;; sparc-sun-sunos*) newlib_cflags="${newlib_cflags} -DSIGNAL_PROVIDED" ;; sparc64-*-*) newlib_cflags="${newlib_cflags} -DREENTRANT_SYSCALLS_PROVIDED -DHAVE_BLKSIZE -DHAVE_GETTIMEOFDAY -DHAVE_FCNTL" # This either belongs elsewhere or nowhere. But I need *something*, # so for now it's here ... case "${host_os}" in aoutv8 | *32p) newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=32" ;; *) newlib_cflags="${newlib_cflags} -DTARGET_PTR_SIZE=64" ;; esac ;; strongarm-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" ;; xscale-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY" newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" ;; thumb-*-pe) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"# Don't use the debugging protocols just yet. ;; thumb-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DABORT_PROVIDED -DHAVE_GETTIMEOFDAY"# Select which debug protocol is being used.# ARM_RDP_MONITOR selects the Demon monitor.# ARM_RDI_MONITOR selects the Angel monitor.# If neither are defined, then hard coded defaults will be used# to create the program's environment.# See also arm and strongarm above.# newlib_cflags="${newlib_cflags} -DARM_RDP_MONITOR" newlib_cflags="${newlib_cflags} -DARM_RDI_MONITOR" ;; tic80*) syscall_dir=syscalls ;; v850-*-*) syscall_dir=syscalls ;; v850e-*-*) syscall_dir=syscalls ;; v850ea-*-*) syscall_dir=syscalls ;; w65-*-*) syscall_dir=syscalls newlib_cflags="${newlib_cflags} -DSMALL_DTOA -DSMALL_MEMORY" ;; z8k-*-*) syscall_dir=syscalls ;; *) newlib_cflags="${newlib_cflags} -DMISSING_SYSCALL_NAMES" syscall_dir= ;;esac
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -