######################################################################## # # configure.host -- JACK Audio Connection Kit version. # # This script and the system-dependent header directories it uses were # adapted for JACK from gcc/libstdc++-v3/configure.host. # # We've tried to keep it as close to the original as possible, while # removing a bunch of os-specific files that didn't seem relevant. # The primary goal has been to avoid changing the cpu-dependent # atomicity.h headers. # # If you need to make changes, the relevant GCC documentation may # prove helpful, , especially # the # discussion of . # ######################################################################## # This shell script handles all host based configuration for libstdc++. # 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/aclocal/etc. This file is "sourced" not executed. # # You should read docs/html/17_intro/porting.* to make sense of this file. # # # It uses the following shell variables as set by config.guess: # host The configuration host (full CPU-vendor-OS triplet) # host_cpu The configuration host CPU # host_os The configuration host OS # # # It sets the following shell variables: # # cpu_include_dir CPU-specific directory, defaults to cpu/generic # if cpu/host_cpu doesn't exist. This is # used to set atomicity_include_dir. # # os_include_dir OS-specific directory, defaults to os/generic. # # atomicity_include_dir location of atomicity.h, # defaults to cpu_include_dir # # It possibly modifies the following variables: # # OS_LDFLAGS extra flags to pass when linking the library, of # the form '-Wl,blah' # (defaults to empty in acinclude.m4) # # If the defaults will not work for your platform, you need only change the # variables that won't work, i.e., you do not need to explicitly set a # working variable to its default. Most hosts only need to change the two # *_include_dir variables. # DEFAULTS # Try to guess a default cpu_include_dir based on the name of the CPU. We # cannot do this for os_include_dir; there are too many portable operating # systems out there. :-) # HOST-SPECIFIC OVERRIDES # Set any CPU-dependent bits. # Here we override defaults and catch more general cases due to naming # conventions (e.g., chip_name* to catch all variants). # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host_cpu}" in alpha*) try_cpu=alpha ;; i[3567]86 | x86_64 | amd64) # Note that this causes us to compile i386 using i486 # instructions. This is done for binary distributions, which # typically compile for i386 as the lowest common denominator. # Since JACK is unlikely to actually be used on a real i386, we # substitute i486 as our common denominator. That way the atomic # instructions work properly. try_cpu=i486 ;; hppa*) try_cpu=hppa ;; mips*) # NB: cpu/mips/atomicity.h needs MIPS II or above. # Of course, there is no sane way to test for this, no ABI macro, # and no consistent host_cpu name differentiation. Therefore, only # use it where it is known to be safe, ie it runs linux (see below). try_cpu=generic ;; m680[246]0) try_cpu=m68k ;; powerpc* | rs6000) try_cpu=powerpc ;; s390x) try_cpu=s390 ;; sparc* | ultrasparc) try_cpu=sparc ;; *) if test -d $srcdir/config/cpu/${host_cpu}; then try_cpu=${host_cpu} else try_cpu=generic fi ;; esac # Now look for the file(s) usually tied to a CPU model, and make # default choices for those if they haven't been explicitly set # already. cpu_include_dir="cpu/${try_cpu}" atomicity_include_dir=$cpu_include_dir # Set any OS-dependent bits. # Set the os_include_dir. # If atomic ops and/or numeric limits are OS-specific rather than # CPU-specifc, set those here too. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host_os}" in aix4.[3456789]* | aix[56789]*) # We set os_include_dir to os/aix only on AIX 4.3 and newer, but # os/aix/atomicity.h works on earlier versions of AIX 4.*, so we # explicitly duplicate the directory for 4.[<3]. os_include_dir="os/aix" atomicity_include_dir="os/aix" OS_LDFLAGS="-Wl,-G" ;; aix4.*) os_include_dir="os/generic" atomicity_include_dir="os/aix" ;; aix*) os_include_dir="os/generic" atomicity_include_dir="cpu/generic" ;; gnu* | linux* | kfreebsd*-gnu | knetbsd*-gnu) os_include_dir="os/gnu-linux" ;; freebsd*) # current FreeBSD header files conflict with the OSS driver's # barrier code, this may be fixed in 5.3, stay tuned. os_include_dir="os/generic" USE_BARRIER="no" ;; irix*) os_include_dir="os/irix" atomicity_include_dir=$os_include_dir ;; darwin*) os_include_dir="os/macosx" JACK_THREAD_STACK_TOUCH=10000 # need small realtime stack JACK_CPP_VARARGS_BROKEN=1 JACK_DO_NOT_MLOCK=1 JACK_USE_MACH_THREADS=1 OS_LDFLAGS="-framework CoreAudio" TRY_POSIX_SHM=yes # POSIX shm works better ;; *) os_include_dir="os/generic" ;; esac # Set any OS-dependent and CPU-dependent bits. # THIS TABLE IS SORTED. KEEP IT THAT WAY. case "${host}" in mips*-*-linux*) atomicity_include_dir="cpu/mips" ;; esac