Changeset 5670:c566dfc0ea28 in roaraudio
- Timestamp:
- 09/23/12 14:40:08 (12 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 4 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
configure
r5669 r5670 1 1 #!/bin/sh 2 2 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 3 CWD="`pwd`" 4 ROAR_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" 10 10 11 11 PATH="$PATH":/sbin:/usr/sbin:/usr/local/sbin:/usr/pkg/sbin # Ensure superuser paths 12 12 PATH="$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=C18 LC_CTYPE=C19 LC_NUMERIC=C20 LC_TIME=C21 LC_COLLATE=C22 LC_MONETARY=C23 13 24 14 #set -x … … 29 19 #-------- 30 20 31 DISTRIBUTION_VERSION_STRING=''32 33 34 TF_C=testit.c35 TF_E=./testit36 LDPATH=''37 INCPATH=''38 39 OPTI_O=240 41 CROSS_COMPILE=false42 43 SYSNAME='unknown'44 SHARED='-shared'45 SHARED_CF=''46 SHARED_SUFFIX='.so'47 21 COMPBIN_SUFFIX='.r' 48 fPIC=true49 Wextra=false50 rdynamic=true51 MMCU=''52 LINK_DEPS=auto53 PKG_CONFIG=false54 22 RUNTIME_DETECT=false 55 23 56 NEED_GNU_SOURCE=false57 58 PREFIX='/usr/local'59 PREFIX_BIN=''60 PREFIX_LIB=''61 PREFIX_INC=''62 PREFIX_MAN=''63 PREFIX_PC=''64 24 PREFIX_COMP_LIBS='' 65 25 PREFIX_COMP_BINS='' … … 75 35 TTY_DEV="" 76 36 77 ROOT_UID=''78 79 37 VORBIS_BITS=32 80 38 … … 127 85 WITHOUT_DCOMP='' 128 86 129 HAVE_MAIN_ARGS=true130 131 MINIMAL=false132 BETA=true133 EXPERIMENTAL=true134 135 TARGET_WIN32=false136 TARGET_MICROCONTROLLER=false137 TARGET_CYGWIN=false138 139 EXEC_HELPER=''140 141 87 ROAR_DRIVER_DEFAULT='' 142 88 ROAR_DRIVER_CODEC='' … … 148 94 no_lib_ssl=true 149 95 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 96 test_pkgversion 97 test_buildstamp 98 test_cc 99 test_ranlib 100 test_pkgconfig 101 test_sysname 208 102 209 103 #Makefile.conf not yet open, write it later 210 211 echo -n "checking for sysname... "212 SYSNAME=$(uname -s)213 echo "$SYSNAME"214 104 215 105 while [ "$1" != '' ] 216 106 do 107 parse_option "$@" 108 shift $SHIFT_COUNT 109 $HANDLED && continue; 110 217 111 case "$1" in 218 112 '--help') … … 341 235 exit 0; 342 236 ;; 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 ;;386 237 '--cdrom') 387 238 CDROM="$2" … … 415 266 DEFAULT_GRP="$2" 416 267 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=true425 ;;426 '--maybe-'*)427 lib=$(echo "$1" | sed 's/^--maybe-//' | to_escaped)428 eval unset no_lib_$lib429 268 ;; 430 269 '--runtime-detect') … … 524 363 '--without-listen') 525 364 NO_LISTEN=true 526 ;;527 '--distribution-version-string')528 DISTRIBUTION_VERSION_STRING="$2"529 shift;530 365 ;; 531 366 '--roard-cfreq') … … 570 405 WITHOUT_DCOMP="$WITHOUT_DCOMP"' sources ssynth cb midi light raw rdtcs cdriver emul_esd emul_simple emul_rsound emul_rplay emul_gopher mixer' 571 406 ;; 572 '--without-beta')573 BETA=false574 EXPERIMENTAL=false575 ;;576 '--without-experimental')577 EXPERIMENTAL=false578 ;;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 ;;603 407 # we should remove --prefix-comp soon 604 408 '--prefix-comp'|'--prefix-comp-libs') … … 616 420 #################################### 617 421 # 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 ;;636 422 '--prefix-comp-libs='*) 637 423 PREFIX_COMP_LIBS=$(echo "$1" | cut -d= -f2) … … 644 430 ;; 645 431 #################################### 646 '--mmcu')647 MMCU="$2"648 shift;649 ;;650 432 '--cross-compile') 651 433 CROSS_COMPILE=true 652 434 RUNTIME_DETECT=true 653 ;;654 '--exec-helper')655 EXEC_HELPER="$2"656 shift;657 435 ;; 658 436 '--target-microcontroller') … … 666 444 WITHOUT_VIO="$WITHOUT_VIO"' cmd' 667 445 ;; 668 '--target-win32')669 TARGET_WIN32=true670 ;;671 446 esac; 672 447 … … 694 469 fi 695 470 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` 471 open_configure_files 472 update_target 1401 473 1402 474 if $TARGET_WIN32 … … 1414 486 fi 1415 487 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' ] 488 if [ "$SYSNAME" = 'FreeBSD' ] 1426 489 then 1427 490 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=false1432 elif [ "$SYSNAME" = 'FreeBSD' ]1433 then1434 echo "Adding $SYSNAME search path arguments..."1435 LDPATH="$LDPATH -L/usr/local/lib/"1436 INCPATH="$INCPATH -I/usr/local/include/"1437 491 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='wheel' 1438 492 elif $TARGET_WIN32 1439 493 then 1440 494 echo "Adding win32 build arguments..." 1441 rdynamic=false1442 fPIC=false1443 SHARED_SUFFIX='.dll'1444 495 COMPBIN_SUFFIX='.bat' 1445 496 elif $TARGET_CYGWIN 1446 497 then 1447 498 echo "Adding cygwin build arguments..." 1448 rdynamic=false1449 fPIC=false1450 SHARED_SUFFIX='.dll'1451 499 COMPBIN_SUFFIX='.bat' 1452 500 fi 1453 501 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/" 502 test_crosscompile 503 504 update_prefixes 1498 505 [ "$PREFIX_COMP_LIBS" = '' ] && PREFIX_COMP_LIBS="$PREFIX_LIB/roaraudio/complibs/" 1499 506 [ "$PREFIX_COMP_BINS" = '' ] && PREFIX_COMP_BINS="$PREFIX_LIB/roaraudio/compbins/" … … 1502 509 [ "$DEFAULT_GRP" = '' ] && DEFAULT_GRP='audio' 1503 510 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 511 update_ccft 512 update_cc 513 514 test_wextra 1523 515 1524 516 # now write the cc name to Makefile.conf 517 write_header_makefileconf 1525 518 { 1526 echo "VERSION=$VERSION"1527 519 echo "DEV_VENDOR=$DEV_VENDOR" 1528 520 echo "DEV_VENDOR_NAME=$DEV_VENDOR_NAME" 1529 521 echo "DEV_VENDOR_STRING=$DEV_VENDOR/$DEV_VENDOR_NAME" 1530 echo "DISTRIBUTION_VERSION_STRING=$DISTRIBUTION_VERSION_STRING"1531 522 echo 1532 echo "SHARED=$SHARED"1533 echo "SHARED_CF=$SHARED_CF"1534 echo "SHARED_SUFFIX=$SHARED_SUFFIX"1535 523 echo "COMPBIN_SUFFIX=$COMPBIN_SUFFIX" 1536 $rdynamic && echo 'rdynamic=-rdynamic'1537 $fPIC && echo 'fPIC=-fPIC'1538 $Wextra && echo 'Wextra=-Wextra'1539 524 echo 1540 echo "CC=$CC"1541 echo "RANLIB=$RANLIB"1542 echo "LDPATH=$LDPATH"1543 echo "INCPATH=$INCPATH"1544 echo1545 echo "OPTI_O=-O$OPTI_O"1546 echo1547 [ "$CFLAGS" != '' ] && echo "CFLAGS += $CFLAGS"1548 [ "$LDFLAGS" != '' ] && echo "LDFLAGS += $LDFLAGS"1549 echo1550 echo "EXEC_HELPER=$EXEC_HELPER"1551 echo "CROSS_COMPILE=$CROSS_COMPILE"1552 echo1553 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"1559 525 echo "PREFIX_COMP_LIBS=$PREFIX_COMP_LIBS" 1560 526 echo "PREFIX_COMP_BINS=$PREFIX_COMP_BINS" … … 1571 537 } >&4 1572 538 539 write_header_configlog RUNTIME_DETECT 540 write_header_configh _ROARAUDIO_CONFIG_H_ 541 1573 542 { 1574 cat <<'EOF'1575 //config.log:1576 1577 /*1578 * Logfile for configure script $Revision$ of RoarAudio1579 */1580 1581 EOF1582 echo '/* uname: ' $(uname -a) '*/'1583 echo '/* Date : ' $(date) '*/'1584 echo1585 1586 echo1587 echo1588 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_HELPER1594 do1595 eval echo "BASICCONF\($i\): \$$i";1596 done1597 1598 echo1599 echo1600 } >&51601 1602 cat >&3 << EOF1603 //config.h:1604 1605 #ifndef _ROARAUDIO_CONFIG_H_1606 #define _ROARAUDIO_CONFIG_H_1607 1608 EOF1609 1610 {1611 echo '/* uname: ' $(uname -a) '*/'1612 echo '/* Date : ' $(date) '*/'1613 echo1614 543 echo "#define ROAR_VERSION_STRING \"$VERSION\"" 1615 544 grep -E '^COMMON_V_(MAJOR|MINOR|REV) *= [0-9]*$' Makefile.inc | sed 's/^COMMON_V_/#define ROAR_VERSION_/; s/=//' … … 1676 605 # test binary format. 1677 606 test_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" 607 test_linkdeps 1691 608 1692 609 # #define name cmds... … … 2486 1403 fi 2487 1404 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 1405 test_cp_v 2498 1406 2499 1407 echo -n 'checking for cdrom device... ' … … 2731 1639 #define ROAR_HAVE_LIBCELT 2732 1640 #endif 2733 2734 #endif2735 2736 //ll2737 1641 EOF 2738 2739 echo >&52740 echo '//ll' >&52741 2742 echo >&42743 echo >&42744 1642 2745 1643 cd plugins … … 2794 1692 cd .. 2795 1693 2796 rm -f $TF_C $TF_E 1694 cleanup_ccft 1695 1696 write_footer_makefileconf 1697 write_footer_configlog 1698 write_footer_configh 2797 1699 2798 1700 mv config.h include/roaraudio/ 2799 1701 echo 'config.h created and moved into include/roaraudio/' 2800 1702 2801 if [ "$TARGET_CYGWIN" = 'true' -o "$TARGET_WIN32" = 'true' ]2802 then2803 echo "Deleting win32 specific temp files: $TF_E.exe"2804 rm -f $TF_E.exe2805 fi2806 2807 1703 #ll
Note: See TracChangeset
for help on using the changeset viewer.