Changeset 5670:c566dfc0ea28 in roaraudio


Ignore:
Timestamp:
09/23/12 14:40:08 (12 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

prepare for closing #325: move some parts of configure in a subdir

Files:
4 added
1 edited

Legend:

Unmodified
Added
Removed
  • configure

    r5669 r5670  
    11#!/bin/sh 
    22 
    3 # check for bash... 
    4  
    5 if [ "$(echo -n)" = '-n' ] 
    6 then 
    7  SHELL=$(which bash ksh sh 2> /dev/null | grep ^/ | head -n 1) 
    8  exec $SHELL $0 "$@" 
    9 fi 
     3CWD="`pwd`" 
     4ROAR_BUILDSYSTEM_DIR="$CWD/build-system" 
     5 
     6. "$ROAR_BUILDSYSTEM_DIR/configure.early" 
     7. "$ROAR_BUILDSYSTEM_DIR/configure.vars" 
     8. "$ROAR_BUILDSYSTEM_DIR/configure.lib" 
     9. "$ROAR_BUILDSYSTEM_DIR/configure.tests" 
    1010 
    1111PATH="$PATH":/sbin:/usr/sbin:/usr/local/sbin:/usr/pkg/sbin # Ensure superuser paths 
    1212PATH="$PATH":/usr/lib/ssh:/usr/lib/openssh                 # Ensure SSH paths 
    13  
    14 # wine prints errors to stdout so stderr redirects do not work. 
    15 # To avoid common problems with wine and $LANG/$LC_* we just reset them. 
    16  
    17 LANG=C 
    18 LC_CTYPE=C 
    19 LC_NUMERIC=C 
    20 LC_TIME=C 
    21 LC_COLLATE=C 
    22 LC_MONETARY=C 
    2313 
    2414#set -x 
     
    2919#-------- 
    3020 
    31 DISTRIBUTION_VERSION_STRING='' 
    32  
    33  
    34 TF_C=testit.c 
    35 TF_E=./testit 
    36 LDPATH='' 
    37 INCPATH='' 
    38  
    39 OPTI_O=2 
    40  
    41 CROSS_COMPILE=false 
    42  
    43 SYSNAME='unknown' 
    44 SHARED='-shared' 
    45 SHARED_CF='' 
    46 SHARED_SUFFIX='.so' 
    4721COMPBIN_SUFFIX='.r' 
    48 fPIC=true 
    49 Wextra=false 
    50 rdynamic=true 
    51 MMCU='' 
    52 LINK_DEPS=auto 
    53 PKG_CONFIG=false 
    5422RUNTIME_DETECT=false 
    5523 
    56 NEED_GNU_SOURCE=false 
    57  
    58 PREFIX='/usr/local' 
    59 PREFIX_BIN='' 
    60 PREFIX_LIB='' 
    61 PREFIX_INC='' 
    62 PREFIX_MAN='' 
    63 PREFIX_PC='' 
    6424PREFIX_COMP_LIBS='' 
    6525PREFIX_COMP_BINS='' 
     
    7535TTY_DEV="" 
    7636 
    77 ROOT_UID='' 
    78  
    7937VORBIS_BITS=32 
    8038 
     
    12785WITHOUT_DCOMP='' 
    12886 
    129 HAVE_MAIN_ARGS=true 
    130  
    131 MINIMAL=false 
    132 BETA=true 
    133 EXPERIMENTAL=true 
    134  
    135 TARGET_WIN32=false 
    136 TARGET_MICROCONTROLLER=false 
    137 TARGET_CYGWIN=false 
    138  
    139 EXEC_HELPER='' 
    140  
    14187ROAR_DRIVER_DEFAULT='' 
    14288ROAR_DRIVER_CODEC='' 
     
    14894no_lib_ssl=true 
    14995 
    150 _CARGS="$@"; 
    151  
    152 # other stuff we need to reset: 
    153 infotext='' 
    154  
    155 # some very basic string functions: 
    156 to_upper() { 
    157  tr 'a-z' 'A-Z' 
    158 } 
    159  
    160 to_escaped() { 
    161  tr 'A-Z/.+-' 'a-z____' 
    162 } 
    163  
    164 echo -n "checking for version of this package... " 
    165 VERSION=`head -n 1 ChangeLog | cut -d' ' -f2` 
    166 echo "$VERSION" 
    167  
    168 echo -n "checking for build stamp of this package... " 
    169 BUILD_STAMP="`date -u +'%F %X'` (`id -un`@`uname -n`)" 
    170 echo "$BUILD_STAMP" 
    171  
    172 echo -n "checking for C compiler... " 
    173 if [ "$CC" != '' ] 
    174 then 
    175  echo $CC 
    176 else 
    177  CC=$(which gcc cc 2> /dev/null | grep ^/ | head -n 1) 
    178  if [ "$CC" = '' ] 
    179  then 
    180   echo 'none' 
    181   exit 1; 
    182  fi 
    183  echo $CC 
    184 fi 
    185  
    186 echo -n "checking for ranlib... " 
    187 if [ "$RANLIB" != '' ] 
    188 then 
    189  echo $RANLIB 
    190 else 
    191  _guess=`echo $CC | sed 's/[gp]*cc\(-.*\)*//'` 
    192  RANLIB=$(which ${_guess}ranlib ranlib 2> /dev/null | grep ^/ | head -n 1) 
    193  if [ "$RANLIB" = '' ] 
    194  then 
    195   echo 'none' 
    196  fi 
    197  echo $RANLIB 
    198 fi 
    199  
    200 echo -n "checking for pkg-config... " 
    201 PKG_CONFIG=$(which pkg-config false 2> /dev/null | grep ^/ | head -n 1) 
    202 if $PKG_CONFIG --help > /dev/null 2> /dev/null 
    203 then 
    204  echo $PKG_CONFIG 
    205 else 
    206  echo no 
    207 fi 
     96test_pkgversion 
     97test_buildstamp 
     98test_cc 
     99test_ranlib 
     100test_pkgconfig 
     101test_sysname 
    208102 
    209103#Makefile.conf not yet open, write it later 
    210  
    211 echo -n "checking for sysname... " 
    212 SYSNAME=$(uname -s) 
    213 echo "$SYSNAME" 
    214104 
    215105while [ "$1" != '' ] 
    216106do 
     107 parse_option "$@" 
     108 shift $SHIFT_COUNT 
     109 $HANDLED && continue; 
     110 
    217111 case "$1" in 
    218112  '--help') 
     
    341235   exit 0; 
    342236  ;; 
    343   '--ldpath') 
    344    LDPATH="$LDPATH -L$2" 
    345    shift; 
    346   ;; 
    347   '--incpath') 
    348    INCPATH="$INCPATH -I$2" 
    349    shift; 
    350   ;; 
    351   '--addpath') 
    352    LDPATH="$LDPATH -L$2/lib/" 
    353    INCPATH="$INCPATH -I$2/include/" 
    354    shift; 
    355   ;; 
    356   '--root') 
    357    LDPATH="$LDPATH -L$2/lib/" 
    358    INCPATH="$INCPATH -I$2/include/" 
    359    PREFIX="$2" 
    360    shift; 
    361   ;; 
    362   '--cflags') 
    363    CFLAGS="$2" 
    364    shift; 
    365   ;; 
    366   '--ldflags') 
    367    LDFLAGS="$2" 
    368    shift; 
    369   ;; 
    370   '--opti') 
    371    OPTI_O="$2" 
    372    shift; 
    373   ;; 
    374   '--link-deps') 
    375    LINK_DEPS="$2" 
    376    shift; 
    377   ;; 
    378   '--cc') 
    379    CC="$2" 
    380    shift; 
    381   ;; 
    382   '--ranlib') 
    383    RANLIB="$2" 
    384    shift; 
    385   ;; 
    386237  '--cdrom') 
    387238   CDROM="$2" 
     
    415266   DEFAULT_GRP="$2" 
    416267   shift; 
    417   ;; 
    418   '--root-uid') 
    419    ROOT_UID="$2" 
    420    shift; 
    421   ;; 
    422   '--no-'*) 
    423    lib=$(echo "$1" | sed 's/^--no-//' | to_escaped) 
    424    eval no_lib_$lib=true 
    425   ;; 
    426   '--maybe-'*) 
    427    lib=$(echo "$1" | sed 's/^--maybe-//' | to_escaped) 
    428    eval unset no_lib_$lib 
    429268  ;; 
    430269  '--runtime-detect') 
     
    524363  '--without-listen') 
    525364   NO_LISTEN=true 
    526   ;; 
    527   '--distribution-version-string') 
    528    DISTRIBUTION_VERSION_STRING="$2" 
    529    shift; 
    530365  ;; 
    531366  '--roard-cfreq') 
     
    570405   WITHOUT_DCOMP="$WITHOUT_DCOMP"' sources ssynth cb midi light raw rdtcs cdriver emul_esd emul_simple emul_rsound emul_rplay emul_gopher mixer' 
    571406  ;; 
    572   '--without-beta') 
    573    BETA=false 
    574    EXPERIMENTAL=false 
    575   ;; 
    576   '--without-experimental') 
    577    EXPERIMENTAL=false 
    578   ;; 
    579   '--prefix') 
    580    PREFIX="$2" 
    581    shift; 
    582   ;; 
    583   '--prefix-bin') 
    584    PREFIX_BIN="$2" 
    585    shift; 
    586   ;; 
    587   '--prefix-lib') 
    588    PREFIX_LIB="$2" 
    589    shift; 
    590   ;; 
    591   '--prefix-inc') 
    592    PREFIX_INC="$2" 
    593    shift; 
    594   ;; 
    595   '--prefix-man') 
    596    PREFIX_MAN="$2" 
    597    shift; 
    598   ;; 
    599   '--prefix-pc') 
    600    PREFIX_PC="$2" 
    601    shift; 
    602   ;; 
    603407  # we should remove --prefix-comp soon 
    604408  '--prefix-comp'|'--prefix-comp-libs') 
     
    616420#################################### 
    617421# autof* options block: 
    618   '--prefix='*) 
    619    PREFIX=$(echo "$1" | cut -d= -f2) 
    620   ;; 
    621   '--prefix-bin='*) 
    622    PREFIX_BIN=$(echo "$1" | cut -d= -f2) 
    623   ;; 
    624   '--prefix-lib='*) 
    625    PREFIX_LIB=$(echo "$1" | cut -d= -f2) 
    626   ;; 
    627   '--prefix-inc='*) 
    628    PREFIX_INC=$(echo "$1" | cut -d= -f2) 
    629   ;; 
    630   '--prefix-man='*) 
    631    PREFIX_MAN=$(echo "$1" | cut -d= -f2) 
    632   ;; 
    633   '--prefix-pc='*) 
    634    PREFIX_PC=$(echo "$1" | cut -d= -f2) 
    635   ;; 
    636422  '--prefix-comp-libs='*) 
    637423   PREFIX_COMP_LIBS=$(echo "$1" | cut -d= -f2) 
     
    644430  ;; 
    645431#################################### 
    646   '--mmcu') 
    647    MMCU="$2" 
    648    shift; 
    649   ;; 
    650432  '--cross-compile') 
    651433   CROSS_COMPILE=true 
    652434   RUNTIME_DETECT=true 
    653   ;; 
    654   '--exec-helper') 
    655    EXEC_HELPER="$2" 
    656    shift; 
    657435  ;; 
    658436  '--target-microcontroller') 
     
    666444   WITHOUT_VIO="$WITHOUT_VIO"' cmd' 
    667445  ;; 
    668   '--target-win32') 
    669    TARGET_WIN32=true 
    670   ;; 
    671446 esac; 
    672447 
     
    694469fi 
    695470 
    696 CCTF="false" 
    697  
    698 test_lib () { 
    699  _have_libs=false 
    700  _have_headers=false 
    701  _defs='' 
    702  echo > $TF_C 
    703  
    704  $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE" 
    705  
    706  name="$1" 
    707  echo -n "checking for $name... " 
    708  echo "TEST LIB: $name" >&5 
    709  shift; 
    710  
    711  if [ "$infotext" = '' ] 
    712  then 
    713   _info='' 
    714  else 
    715   _info=" ($infotext)" 
    716  fi 
    717  
    718  LIBS='' 
    719  
    720  while [ "$1" != '--' ] 
    721  do 
    722   echo "LIB($name) HAS LIB INFO: $1" >&5 
    723   case "$1" in 
    724    'c'|'-lc') 
    725     :; # no need to do anything 
    726    ;; 
    727    '-'*) 
    728     LIBS="$LIBS $1" 
    729     _have_libs=true 
    730    ;; 
    731    *) 
    732     LIBS="$LIBS -l$1" 
    733     _have_libs=true 
    734    ;; 
    735   esac 
    736   shift; 
    737  done 
    738  
    739  shift; 
    740  
    741  echo "LIB($name) IS TESTED USING LIBS: $LIBS" >&5 
    742  
    743  while [ "$1" != '' ] 
    744  do 
    745   _h="$1"; 
    746   shift; 
    747   _envname=`echo "$_h" | to_escaped` 
    748   eval "_t=\$libname_$_envname" 
    749   echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5 
    750   if [ "$_t" = 'false' ] 
    751   then 
    752    echo "// not including <$_h> as it was tested as not present"  >> $TF_C 
    753   else 
    754    echo "#include <$_h>"  >> $TF_C 
    755    _have_headers=true 
    756   fi 
    757  done 
    758  
    759  echo 'int main (void) { return 0; }' >> $TF_C 
    760  
    761  if [ "$_have_libs" = 'false' -a "$_have_headers" = 'false' ] 
    762  then 
    763   echo "no (nothing left to test)$_info" 
    764   echo "LIB($name) HAS NOTHING TO TEST" >&5 
    765   return 1 
    766  fi 
    767  
    768  echo "LIB($name) IS TESTED USING TEST CODE:" >&5 
    769  echo "--- BEGIN OF CODE BLOCK ---" >&5 
    770  cat $TF_C >&5 
    771  echo "--- END OF CODE BLOCK ---" >&5 
    772  
    773  echo "LIB($name) HAS COMPILER/LINKER OUTPUT:" >&5 
    774  echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5 
    775  $CCTF $_defs $LIBS >&5 2>&5; 
    776  R=$? 
    777  echo "--- END OF CHILD OUTPUT BLOCK ---" >&5 
    778  
    779  if [ "$R" = '0' ] 
    780  then 
    781   echo "yes$_info" 
    782   echo "LIB($name) WAS FOUND" >&5 
    783  else 
    784   echo "no$_info" 
    785   echo "LIB($name) NOT FOUND" >&5 
    786  fi 
    787  
    788  return $R 
    789 } 
    790  
    791 test_lib_defmake () { 
    792  def="$1" 
    793  subdir="$2" 
    794  shift 
    795  shift 
    796  name="$1" 
    797  lib="$2" 
    798  shift 
    799  
    800  echo "TEST LIB: $name" >&5 
    801  
    802  [ "$subdir" = '%' ] && subdir='' 
    803  
    804  envlib=`echo "$lib"   | cut -d/ -f1 | to_escaped` 
    805  envname=`echo "$name" | to_escaped` 
    806  
    807  if [ "$envlib" = 'c' ] 
    808  then 
    809   envlib="$envname" 
    810  fi 
    811  
    812  echo "LIB($name) HAS envlib='$envlib', envname='$envname'" >&5 
    813  
    814  if [ "$lib" != '--' ] 
    815  then 
    816   echo "EVAL: _no=\$no_lib_$envlib" >&5 
    817   eval _no="\$no_lib_$envlib"; 
    818   $MINIMAL && _no='XXX' 
    819  
    820   if [ "$_no" != '' ] 
    821   then 
    822     echo "checking for $name... disabled by user" 
    823     echo "LIB($name) IS DISABLED BY USER" >&5 
    824    [ "$subdir" != '' ] && \ 
    825     echo "subdir_$subdir=" >&4 
    826    echo "lib_$envlib=" >&4 
    827    return; 
    828   fi 
    829  fi 
    830  
    831  lib="$lib/" 
    832  
    833  libn=`echo $lib | cut -d/ -f1` 
    834  is_fatal=`echo $lib | cut -d/ -f2` 
    835  
    836  lib="$libn" 
    837  
    838 # echo "is_fatal(i)=$is_fatal" >&5 
    839  
    840  if [ "$is_fatal" = '' -o "$is_fatal" = 'no' -o "$is_fatal" = 'false' ] 
    841  then 
    842   is_fatal=false 
    843  else 
    844   is_fatal=true 
    845   shift; # maybe we have a pkg name, not a lib 
    846  fi 
    847  
    848  echo "LIB($name) HAS FATAL FLAG SET TO $is_fatal" >&5 
    849  
    850 # echo "is_fatal(b)=$is_fatal" >&5 
    851  
    852  LIBS=$($PKG_CONFIG --silence-errors --cflags --libs $lib 2> /dev/null) 
    853  if [ "$?" != '0' ] 
    854  then 
    855   if $is_fatal 
    856   then 
    857    echo "checking for $name... no (fatal config errors)" 
    858    echo "LIB($name) HAS FATAL ERRORS" >&5 
    859    echo "LIB($name) NOT FOUND" >&5 
    860    [ "$subdir" != '' ] && \ 
    861     echo "subdir_$subdir=" >&4 
    862    echo "lib_$envlib=" >&4 
    863    return 
    864   fi 
    865   LIBS="-l$lib" 
    866  fi 
    867  
    868  echo "LIB($name) HAS LIBS: $LIBS" >&5 
    869  
    870  if test_lib "$name" $LIBS "$@" 
    871  then 
    872   subdir_var='subdir_'"`echo $subdir | to_escaped`" 
    873   echo "#define $def"            >&3 
    874   [ "$subdir" != '' ] && \ 
    875    echo "$subdir_var=$subdir" >&4 
    876   [ "$lib" != 'c' ] && \ 
    877    echo "lib_$envlib=$LIBS" >&4 
    878   if [ "$lib" != 'c' ] 
    879   then 
    880    eval "lib_$envlib='$LIBS'" 
    881   else 
    882    echo "LIB($name) SETS libname_$envname=true" >&5 
    883    eval "libname_$envname=true" 
    884   fi 
    885  else 
    886   [ "$subdir" != '' ] && \ 
    887    echo "subdir_$subdir=" >&4 
    888   [ "$lib" != 'c' ] && \ 
    889    echo "lib_$envlib=" >&4 
    890   echo "LIB($name) SETS libname_$envname=false" >&5 
    891   eval "libname_$envname=false" 
    892  fi 
    893  echo >&5 
    894  echo >&5 
    895 } 
    896  
    897 test_tool_defmake () { 
    898  DEF="$1" 
    899  NAME="$2" 
    900  shift; 
    901  shift; 
    902  echo -n "checking for $NAME... " 
    903  
    904  echo "TEST TOOL: $NAME" >&5 
    905  
    906  if $RUNTIME_DETECT 
    907  then 
    908   echo "$1 (runtime detect)" 
    909   echo "TOOL($NAME) WILL BE RUNTIME DETECTED" >&5 
    910   echo "#define $DEF "\""$1"\" >&3 
    911  elif $MINIMAL 
    912  then 
    913   echo "disabled by user (minimalstic build)" 
    914   echo "TOOL($NAME) IS DISABLED BY USER" >&5 
    915  else 
    916  
    917   LIST=$(which "$@" 2> /dev/null | grep ^/ | head -n 1) 
    918  
    919   if [ "$LIST" = '' ] 
    920   then 
    921    echo 'no' 
    922    echo "TOOL($NAME) NOT FOUND" >&5 
    923   else 
    924    echo $LIST 
    925    echo "#define $DEF "\""$LIST"\" >&3 
    926    echo "TOOL($NAME) IS AT $LIST" >&5 
    927   fi 
    928  fi 
    929 } 
    930  
    931 test_func_defmake () { 
    932  _defs='' 
    933  DEF="$1" 
    934  NAME="$2" 
    935  shift; 
    936  shift; 
    937  echo -n "checking for $NAME()... " 
    938  
    939  CALL="$1" 
    940  shift; 
    941  
    942  $NEED_GNU_SOURCE && _defs="$_defs -D_GNU_SOURCE" 
    943  
    944  if [ "$infotext" = '' ] 
    945  then 
    946   _info='' 
    947  else 
    948   _info=" ($infotext)" 
    949  fi 
    950  
    951  LIBS='' 
    952  
    953  _funcname=`echo "$NAME" | to_escaped` 
    954  
    955  while [ "$1" != '--' ] 
    956  do 
    957   case "$1" in 
    958    'c'|'-lc') 
    959     :; # no need to do anything 
    960    ;; 
    961    '-'*) 
    962     LIBS="$LIBS $1" 
    963    ;; 
    964    *) 
    965     LIBS="-l$1" 
    966    ;; 
    967   esac 
    968   shift; 
    969  done 
    970  
    971  shift; # skip '--' 
    972  
    973  echo "TEST FUNCTION: $NAME" >&5 
    974  
    975  { 
    976   while [ "$1" != '' ] 
    977   do 
    978    _h="$1"; 
    979    shift; 
    980    _envname=`echo "$_h" | to_escaped` 
    981    eval "_t=\$libname_$_envname" 
    982    echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5 
    983    if [ "$_t" = 'false' ] 
    984    then 
    985     echo "// not including <$_h> as it was tested as not present" 
    986    else 
    987     echo "#include <$_h>" 
    988    fi 
    989   done 
    990  
    991   echo 'int main (void) {' 
    992   echo " $CALL;" 
    993   echo ' return 0;' 
    994   echo '}' 
    995  
    996  } > $TF_C 
    997  
    998  echo "--- BEGIN OF CODE BLOCK ---" >&5 
    999  cat $TF_C >&5 
    1000  echo "--- END OF CODE BLOCK ---" >&5 
    1001  
    1002  echo "FUNCTION($NAME) HAS COMPILER/LINKER OUTPUT:" >&5 
    1003  echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5 
    1004  $CCTF $_defs $LIBS >&5 2>&5; 
    1005  R=$? 
    1006  echo "--- END OF CHILD OUTPUT BLOCK ---" >&5 
    1007  
    1008  if [ "$R" = '0' ] 
    1009  then 
    1010   eval funcname_$_funcname=true 
    1011   echo "#define $DEF" >&3 
    1012   echo "FUNCTION($NAME) IS OK" >&5 
    1013   echo "yes$_info" 
    1014  else 
    1015   eval funcname_$_funcname=false 
    1016   echo "FUNCTION($NAME) IS NOT OK" >&5 
    1017   echo "no$_info" 
    1018  fi 
    1019  
    1020 } 
    1021  
    1022 test_const_defmake () { 
    1023  DEF="$1" 
    1024  NAME="$2" 
    1025  shift; 
    1026  shift; 
    1027  echo -n "checking for constant $NAME... " 
    1028  
    1029  TYPE="$1" 
    1030  CONST="$2" 
    1031  shift; 
    1032  shift; 
    1033  
    1034  LIBS='' 
    1035  
    1036  while [ "$1" != '--' ] 
    1037  do 
    1038   case "$1" in 
    1039    'c'|'-lc') 
    1040     :; # no need to do anything 
    1041    ;; 
    1042    '-'*) 
    1043     LIBS="$LIBS $1" 
    1044    ;; 
    1045    *) 
    1046     LIBS="-l$1" 
    1047    ;; 
    1048   esac 
    1049   shift; 
    1050  done 
    1051  
    1052  shift; # skip '--' 
    1053  
    1054  echo "TEST CONST: $NAME" >&5 
    1055  
    1056  { 
    1057   while [ "$1" != '' ] 
    1058   do 
    1059    _h="$1"; 
    1060    shift; 
    1061    _envname=`echo "$_h" | to_escaped` 
    1062    eval "_t=\$libname_$_envname" 
    1063    echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5 
    1064    if [ "$_t" = 'false' ] 
    1065    then 
    1066     echo "// not including <$_h> as it was tested as not present" 
    1067    else 
    1068     echo "#include <$_h>" 
    1069    fi 
    1070   done 
    1071  
    1072   case "$TYPE" in 
    1073    ':int') 
    1074     _type='int' 
    1075    ;; 
    1076    ':float') 
    1077     _type='float' 
    1078    ;; 
    1079    ':ptr') 
    1080     _type='void *' 
    1081    ;; 
    1082    *) 
    1083     _type="$TYPE" 
    1084    ;; 
    1085   esac 
    1086  
    1087   echo 'int main (void) {' 
    1088   echo " $_type x;" 
    1089   echo " x = ($_type)$CONST;" 
    1090   echo ' return 0;' 
    1091   echo '}' 
    1092  
    1093  } > $TF_C 
    1094  
    1095  echo "--- BEGIN OF CODE BLOCK ---" >&5 
    1096  cat $TF_C >&5 
    1097  echo "--- END OF CODE BLOCK ---" >&5 
    1098  
    1099  echo "CONST($NAME) HAS COMPILER/LINKER OUTPUT:" >&5 
    1100  echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5 
    1101  $CCTF $LIBS >&5 2>&5; 
    1102  R=$? 
    1103  echo "--- END OF CHILD OUTPUT BLOCK ---" >&5 
    1104  
    1105  if [ "$R" = '0' ] 
    1106  then 
    1107   echo "#define $DEF" >&3 
    1108   echo "CONST($NAME) IS OK" >&5 
    1109   echo yes 
    1110  else 
    1111   echo "CONST($NAME) IS NOT OK" >&5 
    1112   echo no 
    1113  fi 
    1114 } 
    1115  
    1116 test_var_defmake () { 
    1117  DEF="$1" 
    1118  NAME="$2" 
    1119  shift; 
    1120  shift; 
    1121  echo -n "checking for global variable $NAME... " 
    1122  
    1123  TYPE="$1" 
    1124  VAR="$2" 
    1125  shift; 
    1126  shift; 
    1127  
    1128  LIBS='' 
    1129  
    1130  while [ "$1" != '--' ] 
    1131  do 
    1132   case "$1" in 
    1133    'c'|'-lc') 
    1134     :; # no need to do anything 
    1135    ;; 
    1136    '-'*) 
    1137     LIBS="$LIBS $1" 
    1138    ;; 
    1139    *) 
    1140     LIBS="-l$1" 
    1141    ;; 
    1142   esac 
    1143   shift; 
    1144  done 
    1145  
    1146  shift; # skip '--' 
    1147  
    1148  echo "TEST VAR: $NAME" >&5 
    1149  
    1150  { 
    1151   while [ "$1" != '' ] 
    1152   do 
    1153    _h="$1"; 
    1154    shift; 
    1155    _envname=`echo "$_h" | to_escaped` 
    1156    eval "_t=\$libname_$_envname" 
    1157    echo "LIB($name) DEPENDS ON $_h($_envname) with state '$_t'" >&5 
    1158    if [ "$_t" = 'false' ] 
    1159    then 
    1160     echo "// not including <$_h> as it was tested as not present" 
    1161    else 
    1162     echo "#include <$_h>" 
    1163    fi 
    1164   done 
    1165  
    1166   case "$TYPE" in 
    1167    ':int') 
    1168     _type='int' 
    1169    ;; 
    1170    ':float') 
    1171     _type='float' 
    1172    ;; 
    1173    ':ptr') 
    1174     _type='void *' 
    1175    ;; 
    1176    *) 
    1177     _type="$TYPE" 
    1178    ;; 
    1179   esac 
    1180  
    1181   echo 'int main (void) {' 
    1182   echo " $_type x;" 
    1183   echo " x = ($_type)$VAR;" 
    1184   echo " $VAR = x;" 
    1185   echo ' return 0;' 
    1186   echo '}' 
    1187  
    1188  } > $TF_C 
    1189  
    1190  echo "--- BEGIN OF CODE BLOCK ---" >&5 
    1191  cat $TF_C >&5 
    1192  echo "--- END OF CODE BLOCK ---" >&5 
    1193  
    1194  echo "VAR($NAME) HAS COMPILER/LINKER OUTPUT:" >&5 
    1195  echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5 
    1196  $CCTF $LIBS >&5 2>&5; 
    1197  R=$? 
    1198  echo "--- END OF CHILD OUTPUT BLOCK ---" >&5 
    1199  
    1200  if [ "$R" = '0' ] 
    1201  then 
    1202   echo "#define $DEF" >&3 
    1203   echo "VAR($NAME) IS OK" >&5 
    1204   echo yes 
    1205  else 
    1206   echo "VAR($NAME) IS NOT OK" >&5 
    1207   echo no 
    1208  fi 
    1209 } 
    1210  
    1211 test_version () { 
    1212  DEF="$1" 
    1213  NAME="$2" 
    1214  PKGNAME="$3" 
    1215  
    1216  echo -n "checking for version of $NAME... " 
    1217  
    1218  _ver=$($PKG_CONFIG --modversion $PKGNAME 2> /dev/null) 
    1219  
    1220  if [ "$_ver" = '' ] 
    1221  then 
    1222   _ver=unknown 
    1223  fi 
    1224  
    1225  echo $_ver 
    1226  
    1227  _ver_def=$(echo $_ver | to_escaped | to_upper) 
    1228  echo "#define ${DEF}_$_ver_def" >&3 
    1229  
    1230  echo "$_ver" | if grep '^[0-9]*\.[0-9]*\.[0-9]*$' > /dev/null 
    1231  then 
    1232   _ver_vdef=$(echo "$_ver" | sed 's/^\([0-9]*\)\.\([0-9]*\)\.\([0-9]\)*$/_ROAR_MKVERSION(\1, \2, \3)/') 
    1233   echo "#define ${DEF} $_ver_vdef" >&3 
    1234  else 
    1235   echo "#define ${DEF} 0" >&3 
    1236  fi 
    1237  
    1238 } 
    1239  
    1240 test_type () { 
    1241  DEF="$1" 
    1242  NAME="$2" 
    1243  INITVAL="$3" 
    1244  DASHDASH="$4" 
    1245  shift; shift; 
    1246  
    1247  if [ "$#" -ge '2' ] 
    1248  then 
    1249   shift; shift; 
    1250  fi 
    1251  
    1252  HEADERS="stdint.h string.h unistd.h sys/types.h $*" #including headers here let 
    1253                                                      #them get checked for presence. 
    1254  
    1255  [ "$INITVAL" = '' ] && INITVAL='0' 
    1256  
    1257  echo -n "checking for type $NAME... " 
    1258  echo "TEST TYPE: $NAME" >&5 
    1259  
    1260  echo "// type test for type $NAME"  >  $TF_C # need a clean file, write something 
    1261  for _h in $HEADERS 
    1262  do 
    1263   _envname=`echo "$_h" | to_escaped` 
    1264   eval "_t=\$libname_$_envname" 
    1265   echo "TYPE($NAME) DEPENDS ON $_h($_envname) with state '$_t'" >&5 
    1266   if [ "$_t" = 'false' ] 
    1267   then 
    1268    echo "// not including <$_h> as it was tested as not present"  >> $TF_C 
    1269   else 
    1270    echo "#include <$_h>"  >> $TF_C 
    1271   fi 
    1272  done 
    1273  echo "int main (void) { $NAME _var = $INITVAL; return 0; }" >> $TF_C 
    1274  
    1275  echo "--- BEGIN OF CODE BLOCK ---" >&5 
    1276  cat $TF_C >&5 
    1277  echo "--- END OF CODE BLOCK ---" >&5 
    1278  
    1279  echo "TYPE($NAME) HAS COMPILER/LINKER OUTPUT:" >&5 
    1280  echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5 
    1281  $CCTF >&5 2>&5; 
    1282  R=$? 
    1283  echo "--- END OF CHILD OUTPUT BLOCK ---" >&5 
    1284  
    1285  if [ "$R" = '0' ] 
    1286  then 
    1287   echo "#define $DEF" >&3 
    1288   echo 'ok' 
    1289   echo "TYPE($NAME) IS OK" >&5 
    1290  else 
    1291   echo 'not found' 
    1292   echo "TYPE($NAME) NOT FOUND" >&5 
    1293  fi 
    1294 } 
    1295  
    1296 test_pa_type () { 
    1297  DEF="$1" 
    1298  NAME="$2" 
    1299  TYPE="$3" 
    1300  V0="$4" 
    1301  V1="$5" 
    1302  TEST="$6" 
    1303  shift; shift; shift; shift; shift; shift; 
    1304  HEADER="$*" 
    1305  RS='%s' 
    1306  
    1307  case "$TYPE" in 
    1308   'type') 
    1309    MSG="checking for type of $NAME()... " 
    1310   ;; 
    1311   'args:'*) 
    1312    MSG="checking for argument types of $NAME()... " 
    1313    RS=`echo "$TYPE" | cut -d: -f2` 
    1314   ;; 
    1315  esac; 
    1316  
    1317  echo -n "$MSG" 
    1318  echo '#include <pulse/pulseaudio.h>'  >  $TF_C 
    1319  for _h in $HEADERS 
    1320  do 
    1321   echo "#include <$_h>"  >> $TF_C 
    1322  done 
    1323  echo '#include <string.h>'           >> $TF_C 
    1324  echo 'int main (void) { return 0; }' >> $TF_C 
    1325  echo "$TEST"                         >> $TF_C 
    1326  
    1327  if $CCTF 2> /dev/null; 
    1328  then 
    1329   R="$V0" 
    1330  else 
    1331   R="$V1" 
    1332  fi 
    1333  
    1334  echo "#define $DEF $R" >&3 
    1335  printf "$RS\n" "$R" 
    1336 } 
    1337  
    1338 test_bin_format() { 
    1339  echo -n "checking for binary format... " 
    1340  echo "TEST BIN FORMAT:" >&5 
    1341  
    1342  { 
    1343   echo "#include <stdio.h>" 
    1344   echo 
    1345   echo "int main (void) {" 
    1346   echo " char buf[512];" 
    1347   echo " size_t len;" 
    1348   echo 
    1349   echo " len = fread(buf, 1, sizeof(buf), stdin);" 
    1350   echo " if ( len < 4 )" 
    1351   echo "  return 1;" 
    1352   echo 
    1353   echo " if ( buf[0] == '\\177' && buf[1] == 'E' && buf[2] == 'L' && buf[3] == 'F' ) {" 
    1354   echo '  printf("ELF\n");' 
    1355   echo "  return 0;" 
    1356   echo " }" 
    1357   echo 
    1358   echo " if ( buf[0] == 'M' && buf[1] == 'Z' ) {" 
    1359   echo '  printf("MZ\n");' 
    1360   echo "  return 0;" 
    1361   echo " }" 
    1362   echo 
    1363   echo " return 1;" 
    1364   echo "}" 
    1365  } > $TF_C 
    1366  
    1367  echo "--- BEGIN OF CODE BLOCK ---" >&5 
    1368  cat $TF_C >&5 
    1369  echo "--- END OF CODE BLOCK ---" >&5 
    1370  
    1371  echo "BIN FORMAT() HAS COMPILER/LINKER OUTPUT:" >&5 
    1372  echo "--- BEGIN OF CHILD OUTPUT BLOCK ---" >&5 
    1373  $CCTF >&5 2>&5; 
    1374  R=$? 
    1375  echo "--- END OF CHILD OUTPUT BLOCK ---" >&5 
    1376  
    1377  if [ "$R" = '0' ] 
    1378  then 
    1379   BIN_FORMAT=`$EXEC_HELPER $TF_E < $TF_E 2> /dev/null` 
    1380   R=$? 
    1381   if [ "$R" = '0' ] 
    1382   then 
    1383    echo "$BIN_FORMAT" 
    1384    echo "BIN FORMAT() IS '$BIN_FORMAT'" >&5 
    1385   else 
    1386    BIN_FORMAT=unknown 
    1387    echo 'unknown' 
    1388    echo "BIN FORMAT() NOT KNOWN" >&5 
    1389   fi 
    1390  else 
    1391   BIN_FORMAT=unknown 
    1392   echo 'unknown' 
    1393   echo "BIN FORMAT() NOT KNOWN" >&5 
    1394  fi 
    1395 } 
    1396  
    1397 exec 3> config.h 4> Makefile.conf 5> config.log 
    1398  
    1399 TARGET_CYGWIN=`echo "$SYSNAME" | if grep CYGWIN  > /dev/null; then echo true; else echo false; fi` 
    1400 TARGET_WIN32=`echo  "$SYSNAME" | if grep MINGW32 > /dev/null; then echo true; else echo $TARGET_WIN32; fi` 
     471open_configure_files 
     472update_target 
    1401473 
    1402474if $TARGET_WIN32 
     
    1414486fi 
    1415487 
    1416 if [ "$SYSNAME" = 'Darwin' ] 
    1417 then 
    1418  echo "Adding $SYSNAME shared lib arguments..." 
    1419  SHARED="$SHARED -fno-common -dynamiclib -compatibility_version 0.1 -current_version 0.1.0" 
    1420  SHARED_CF="$SHARED_CF -fno-common" 
    1421 elif [ "$SYSNAME" = 'NetBSD' ] 
    1422 then 
    1423  echo "Adding $SYSNAME libpath arguments..." 
    1424  LDPATH="$LDPATH -L/usr/local/lib/" 
    1425 elif [ "$SYSNAME" = 'OpenBSD' ] 
     488if [ "$SYSNAME" = 'FreeBSD' ] 
    1426489then 
    1427490 echo "Adding $SYSNAME search path arguments..." 
    1428  LDPATH="$LDPATH -L/usr/local/lib/" 
    1429  INCPATH="$INCPATH -I/usr/local/include/" 
    1430 # echo "Adding $SYSNAME build arguments..." 
    1431 # SNDIO_EMUL=false 
    1432 elif [ "$SYSNAME" = 'FreeBSD' ] 
    1433 then 
    1434  echo "Adding $SYSNAME search path arguments..." 
    1435  LDPATH="$LDPATH -L/usr/local/lib/" 
    1436  INCPATH="$INCPATH -I/usr/local/include/" 
    1437491 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel' 
    1438492elif $TARGET_WIN32 
    1439493then 
    1440494 echo "Adding win32 build arguments..." 
    1441  rdynamic=false 
    1442  fPIC=false 
    1443  SHARED_SUFFIX='.dll' 
    1444495 COMPBIN_SUFFIX='.bat' 
    1445496elif $TARGET_CYGWIN 
    1446497then 
    1447498 echo "Adding cygwin build arguments..." 
    1448  rdynamic=false 
    1449  fPIC=false 
    1450  SHARED_SUFFIX='.dll' 
    1451499 COMPBIN_SUFFIX='.bat' 
    1452500fi 
    1453501 
    1454 echo -n 'checking if we cross compile... ' 
    1455 if $CROSS_COMPILE 
    1456 then 
    1457  echo yes 
    1458  
    1459  echo -n "checking for exec helper... " 
    1460  if [ "$EXEC_HELPER" = '' ] 
    1461  then 
    1462   if $TARGET_WIN32 
    1463   then 
    1464    EXEC_HELPER=$(which wine 2> /dev/null | grep ^/ | head -n 1) 
    1465    if [ "$EXEC_HELPER" = '' ] 
    1466    then 
    1467     echo 'none (please install wine)' 
    1468    else 
    1469     echo "$EXEC_HELPER" 
    1470    fi 
    1471   else 
    1472    echo 'none (unknown)' 
    1473   fi 
    1474  else 
    1475   echo "$EXEC_HELPER" 
    1476  fi 
    1477  
    1478  echo -n "checking for sysname... " 
    1479  if $TARGET_CYGWIN 
    1480  then 
    1481   SYSNAME=cygwin 
    1482  elif $TARGET_WIN32 
    1483  then 
    1484   SYSNAME=win32 
    1485  else 
    1486   SYSNAME=unknown 
    1487  fi 
    1488  echo "$SYSNAME" 
    1489 else 
    1490  echo no 
    1491 fi 
    1492  
    1493 [ "$PREFIX_BIN"  = '' ] && PREFIX_BIN="$PREFIX/bin/" 
    1494 [ "$PREFIX_LIB"  = '' ] && PREFIX_LIB="$PREFIX/lib/" 
    1495 [ "$PREFIX_INC"  = '' ] && PREFIX_INC="$PREFIX/include/" 
    1496 [ "$PREFIX_MAN"  = '' ] && PREFIX_MAN="$PREFIX/share/man/" 
    1497 [ "$PREFIX_PC"   = '' ] && PREFIX_PC="$PREFIX_LIB/pkgconfig/" 
     502test_crosscompile 
     503 
     504update_prefixes 
    1498505[ "$PREFIX_COMP_LIBS" = '' ] && PREFIX_COMP_LIBS="$PREFIX_LIB/roaraudio/complibs/" 
    1499506[ "$PREFIX_COMP_BINS" = '' ] && PREFIX_COMP_BINS="$PREFIX_LIB/roaraudio/compbins/" 
     
    1502509[ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio' 
    1503510 
    1504 CCTF="$CC $CFLAGS $LDFLAGS $LDPATH $INCPATH -Iinclude/ -o $TF_E $TF_C" 
    1505  
    1506 if [ "$MMCU" != '' ] 
    1507 then 
    1508  CC="$CC -mmcu=$MMCU" 
    1509 fi 
    1510  
    1511 # Check for -Wextra 
    1512 #Wextra 
    1513 echo -n "checking if compiler supports -Wextra... " 
    1514 echo 'int main (void) { return 0; }' > $TF_C 
    1515 if $CCTF -Wextra 2> /dev/null; 
    1516 then 
    1517  echo yes 
    1518  Wextra=true 
    1519 else 
    1520  echo no 
    1521  Wextra=false 
    1522 fi 
     511update_ccft 
     512update_cc 
     513 
     514test_wextra 
    1523515 
    1524516# now write the cc name to Makefile.conf 
     517write_header_makefileconf 
    1525518{ 
    1526  echo "VERSION=$VERSION" 
    1527519 echo "DEV_VENDOR=$DEV_VENDOR" 
    1528520 echo "DEV_VENDOR_NAME=$DEV_VENDOR_NAME" 
    1529521 echo "DEV_VENDOR_STRING=$DEV_VENDOR/$DEV_VENDOR_NAME" 
    1530  echo "DISTRIBUTION_VERSION_STRING=$DISTRIBUTION_VERSION_STRING" 
    1531522 echo 
    1532  echo "SHARED=$SHARED" 
    1533  echo "SHARED_CF=$SHARED_CF" 
    1534  echo "SHARED_SUFFIX=$SHARED_SUFFIX" 
    1535523 echo "COMPBIN_SUFFIX=$COMPBIN_SUFFIX" 
    1536  $rdynamic && echo 'rdynamic=-rdynamic' 
    1537  $fPIC     && echo 'fPIC=-fPIC' 
    1538  $Wextra   && echo 'Wextra=-Wextra' 
    1539524 echo 
    1540  echo "CC=$CC" 
    1541  echo "RANLIB=$RANLIB" 
    1542  echo "LDPATH=$LDPATH" 
    1543  echo "INCPATH=$INCPATH" 
    1544  echo 
    1545  echo "OPTI_O=-O$OPTI_O" 
    1546  echo 
    1547  [ "$CFLAGS"  != '' ] && echo "CFLAGS  += $CFLAGS" 
    1548  [ "$LDFLAGS" != '' ] && echo "LDFLAGS += $LDFLAGS" 
    1549  echo 
    1550  echo "EXEC_HELPER=$EXEC_HELPER" 
    1551  echo "CROSS_COMPILE=$CROSS_COMPILE" 
    1552  echo 
    1553  echo "PREFIX=$PREFIX" 
    1554  echo "PREFIX_BIN=$PREFIX_BIN" 
    1555  echo "PREFIX_LIB=$PREFIX_LIB" 
    1556  echo "PREFIX_INC=$PREFIX_INC" 
    1557  echo "PREFIX_MAN=$PREFIX_MAN" 
    1558  echo "PREFIX_PC=$PREFIX_PC" 
    1559525 echo "PREFIX_COMP_LIBS=$PREFIX_COMP_LIBS" 
    1560526 echo "PREFIX_COMP_BINS=$PREFIX_COMP_BINS" 
     
    1571537} >&4 
    1572538 
     539write_header_configlog RUNTIME_DETECT 
     540write_header_configh _ROARAUDIO_CONFIG_H_ 
     541 
    1573542{ 
    1574  cat <<'EOF' 
    1575 //config.log: 
    1576  
    1577 /* 
    1578  * Logfile for configure script $Revision$ of RoarAudio 
    1579  */ 
    1580  
    1581 EOF 
    1582  echo '/* uname: ' $(uname -a) '*/' 
    1583  echo '/* Date : ' $(date)  '*/' 
    1584  echo 
    1585  
    1586  echo 
    1587  echo 
    1588  
    1589  echo "ARGS(): $_CARGS" 
    1590  
    1591  for i in PATH SHELL CC RANLIB PKG_CONFIG SYSNAME \ 
    1592           TARGET_CYGWIN TARGET_WIN32 TARGET_MICROCONTROLLER CROSS_COMPILE \ 
    1593           RUNTIME_DETECT MINIMAL EXEC_HELPER 
    1594  do 
    1595   eval echo "BASICCONF\($i\): \$$i"; 
    1596  done 
    1597  
    1598  echo 
    1599  echo 
    1600 } >&5 
    1601  
    1602 cat >&3 << EOF 
    1603 //config.h: 
    1604  
    1605 #ifndef _ROARAUDIO_CONFIG_H_ 
    1606 #define _ROARAUDIO_CONFIG_H_ 
    1607  
    1608 EOF 
    1609  
    1610 { 
    1611  echo '/* uname: ' $(uname -a) '*/' 
    1612  echo '/* Date : ' $(date)  '*/' 
    1613  echo 
    1614543 echo "#define ROAR_VERSION_STRING \"$VERSION\"" 
    1615544 grep -E '^COMMON_V_(MAJOR|MINOR|REV) *= [0-9]*$' Makefile.inc | sed 's/^COMMON_V_/#define ROAR_VERSION_/; s/=//' 
     
    1676605# test binary format. 
    1677606test_bin_format 
    1678  
    1679 if [ "$LINK_DEPS" = 'auto' ] 
    1680 then 
    1681  if [ "$BIN_FORMAT" = 'ELF' ] 
    1682  then 
    1683   LINK_DEPS='indirect' 
    1684  else 
    1685   LINK_DEPS='full' 
    1686  fi 
    1687 fi 
    1688  
    1689 echo "LINK_DEPS=$LINK_DEPS" >&4 
    1690 echo "checking for linkage model... $LINK_DEPS" 
     607test_linkdeps 
    1691608 
    1692609#                 #define                   name         cmds... 
     
    24861403fi 
    24871404 
    2488  
    2489 echo -n 'checking if cp supports -v... ' 
    2490 if cp -v --help > /dev/null 2> /dev/null 
    2491 then 
    2492  echo "cp_v=-v" >&4 
    2493  echo yes 
    2494 else 
    2495  echo "cp_v=" >&4 
    2496  echo no 
    2497 fi 
     1405test_cp_v 
    24981406 
    24991407echo -n 'checking for cdrom device... ' 
     
    27311639#define ROAR_HAVE_LIBCELT 
    27321640#endif 
    2733  
    2734 #endif 
    2735  
    2736 //ll 
    27371641EOF 
    2738  
    2739 echo >&5 
    2740 echo '//ll' >&5 
    2741  
    2742 echo >&4 
    2743 echo >&4 
    27441642 
    27451643cd plugins 
     
    27941692cd .. 
    27951693 
    2796 rm -f $TF_C $TF_E 
     1694cleanup_ccft 
     1695 
     1696write_footer_makefileconf 
     1697write_footer_configlog 
     1698write_footer_configh 
    27971699 
    27981700mv config.h include/roaraudio/ 
    27991701echo 'config.h created and moved into include/roaraudio/' 
    28001702 
    2801 if [ "$TARGET_CYGWIN" = 'true' -o "$TARGET_WIN32" = 'true' ] 
    2802 then 
    2803  echo "Deleting win32 specific temp files: $TF_E.exe" 
    2804  rm -f $TF_E.exe 
    2805 fi 
    2806  
    28071703#ll 
Note: See TracChangeset for help on using the changeset viewer.