This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by speexdsp configure 1.2.1, which was
generated by GNU Autoconf 2.71.  Invocation command line was

  $ ./configure

## --------- ##
## Platform. ##
## --------- ##

hostname = sadaf-specialist.c.googlers.com
uname -m = x86_64
uname -r = 5.19.11-1rodete1-amd64
uname -s = Linux
uname -v = #1 SMP PREEMPT_DYNAMIC Debian 5.19.11-1rodete1 (2022-10-31)

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = x86_64
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/out/host/linux-x86/bin/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/out/host/linux-x86/bin/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/clang/host/linux-x86/llvm-binutils-stable/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/asuite/acloud/linux-x86/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/asuite/aidegen/linux-x86/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/asuite/atest/linux-x86/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/jdk/jdk17/linux-x86/bin/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/vendor/google/tools/atest/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/build/bazel/bin/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/development/scripts/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/devtools/tools/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/misc/linux-x86/dtc/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/misc/linux-x86/libufdt/
PATH: /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/prebuilts/android-emulator/linux-x86_64/
PATH: /usr/lib/google-golang/bin/
PATH: /usr/local/buildtools/java/jdk/bin/
PATH: /usr/local/sbin/
PATH: /usr/local/bin/
PATH: /usr/sbin/
PATH: /usr/bin/
PATH: /sbin/
PATH: /bin/


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2656: looking for aux files: compile ltmain.sh config.guess config.sub missing install-sh
configure:2669:  trying ./
configure:2698:   ./compile found
configure:2698:   ./ltmain.sh found
configure:2698:   ./config.guess found
configure:2698:   ./config.sub found
configure:2698:   ./missing found
configure:2680:   ./install-sh found
configure:2825: checking whether make supports nested variables
configure:2843: result: yes
configure:2883: checking for a BSD-compatible install
configure:2956: result: /usr/bin/install -c
configure:2967: checking whether build environment is sane
configure:3022: result: yes
configure:3181: checking for a race-free mkdir -p
configure:3225: result: /usr/bin/mkdir -p
configure:3232: checking for gawk
configure:3253: found /usr/bin/gawk
configure:3264: result: gawk
configure:3275: checking whether make sets $(MAKE)
configure:3298: result: yes
configure:3437: checking whether to enable maintainer-specific portions of Makefiles
configure:3447: result: yes
configure:3467: checking build system type
configure:3482: result: x86_64-pc-linux-gnu
configure:3502: checking host system type
configure:3516: result: x86_64-pc-linux-gnu
configure:3914: checking how to print strings
configure:3941: result: printf
configure:3975: checking whether make supports the include directive
configure:3990: make -f confmf.GNU && cat confinc.out
this is the am__doit target
configure:3993: $? = 0
configure:4012: result: yes (GNU style)
configure:4088: checking for gcc
configure:4109: found /usr/bin/gcc
configure:4120: result: gcc
configure:4473: checking for C compiler version
configure:4482: gcc --version >&5
gcc (Debian 12.2.0-10) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

configure:4493: $? = 0
configure:4482: gcc -v >&5
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 12.2.0-10' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-12-hWCYKv/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-hWCYKv/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 12.2.0 (Debian 12.2.0-10) 
... rest of stderr output deleted ...
configure:4493: $? = 0
configure:4482: gcc -V >&5
gcc: error: unrecognized command-line option '-V'
gcc: fatal error: no input files
compilation terminated.
configure:4493: $? = 1
configure:4482: gcc -qversion >&5
gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'?
gcc: fatal error: no input files
compilation terminated.
configure:4493: $? = 1
configure:4482: gcc -version >&5
gcc: error: unrecognized command-line option '-version'
gcc: fatal error: no input files
compilation terminated.
configure:4493: $? = 1
configure:4513: checking whether the C compiler works
configure:4535: gcc    conftest.c  >&5
configure:4539: $? = 0
configure:4589: result: yes
configure:4592: checking for C compiler default output file name
configure:4594: result: a.out
configure:4600: checking for suffix of executables
configure:4607: gcc -o conftest    conftest.c  >&5
configure:4611: $? = 0
configure:4634: result: 
configure:4656: checking whether we are cross compiling
configure:4664: gcc -o conftest    conftest.c  >&5
configure:4668: $? = 0
configure:4675: ./conftest
configure:4679: $? = 0
configure:4694: result: no
configure:4699: checking for suffix of object files
configure:4722: gcc -c   conftest.c >&5
configure:4726: $? = 0
configure:4748: result: o
configure:4752: checking whether the compiler supports GNU C
configure:4772: gcc -c   conftest.c >&5
configure:4772: $? = 0
configure:4782: result: yes
configure:4793: checking whether gcc accepts -g
configure:4814: gcc -c -g  conftest.c >&5
configure:4814: $? = 0
configure:4858: result: yes
configure:4878: checking for gcc option to enable C11 features
configure:4893: gcc  -c -g -O2  conftest.c >&5
configure:4893: $? = 0
configure:4911: result: none needed
configure:5027: checking whether gcc understands -c and -o together
configure:5050: gcc -c conftest.c -o conftest2.o
configure:5053: $? = 0
configure:5050: gcc -c conftest.c -o conftest2.o
configure:5053: $? = 0
configure:5065: result: yes
configure:5084: checking dependency style of gcc
configure:5196: result: gcc3
configure:5211: checking for a sed that does not truncate output
configure:5281: result: /usr/bin/sed
configure:5299: checking for grep that handles long lines and -e
configure:5363: result: /usr/bin/grep
configure:5368: checking for egrep
configure:5436: result: /usr/bin/grep -E
configure:5441: checking for fgrep
configure:5509: result: /usr/bin/grep -F
configure:5545: checking for ld used by gcc
configure:5613: result: /usr/bin/ld
configure:5620: checking if the linker (/usr/bin/ld) is GNU ld
configure:5636: result: yes
configure:5648: checking for BSD- or MS-compatible name lister (nm)
configure:5703: result: /usr/bin/nm -B
configure:5843: checking the name lister (/usr/bin/nm -B) interface
configure:5851: gcc -c -g -O2  conftest.c >&5
configure:5854: /usr/bin/nm -B "conftest.o"
configure:5857: output
0000000000000000 B some_variable
configure:5864: result: BSD nm
configure:5867: checking whether ln -s works
configure:5871: result: yes
configure:5879: checking the maximum length of command line arguments
configure:6011: result: 1572864
configure:6059: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format
configure:6100: result: func_convert_file_noop
configure:6107: checking how to convert x86_64-pc-linux-gnu file names to toolchain format
configure:6128: result: func_convert_file_noop
configure:6135: checking for /usr/bin/ld option to reload object files
configure:6143: result: -r
configure:6222: checking for file
configure:6243: found /usr/bin/file
configure:6254: result: file
configure:6330: checking for objdump
configure:6362: result: objdump
configure:6391: checking how to recognize dependent libraries
configure:6592: result: pass_all
configure:6682: checking for dlltool
configure:6714: result: dlltool
configure:6744: checking how to associate runtime and link libraries
configure:6772: result: printf %s\n
configure:6838: checking for ar
configure:6859: found /usr/bin/ar
configure:6870: result: ar
configure:6923: checking for archiver @FILE support
configure:6941: gcc -c -g -O2  conftest.c >&5
configure:6941: $? = 0
configure:6945: ar cr libconftest.a @conftest.lst >&5
configure:6948: $? = 0
configure:6953: ar cr libconftest.a @conftest.lst >&5
ar: conftest.o: No such file or directory
configure:6956: $? = 1
configure:6968: result: @
configure:7031: checking for strip
configure:7052: found /usr/bin/strip
configure:7063: result: strip
configure:7140: checking for ranlib
configure:7161: found /usr/bin/ranlib
configure:7172: result: ranlib
configure:7274: checking command to parse /usr/bin/nm -B output from gcc object
configure:7428: gcc -c -g -O2  conftest.c >&5
configure:7431: $? = 0
configure:7435: /usr/bin/nm -B conftest.o | /usr/bin/sed -n -e 's/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | /usr/bin/sed '/ __gnu_lto/d' > conftest.nm
configure:7501: gcc -o conftest -g -O2   conftest.c conftstm.o >&5
configure:7504: $? = 0
configure:7542: result: ok
configure:7589: checking for sysroot
configure:7620: result: no
configure:7627: checking for a working dd
configure:7671: result: /usr/bin/dd
configure:7675: checking how to truncate binary pipes
configure:7691: result: /usr/bin/dd bs=4096 count=1
configure:7828: gcc -c -g -O2  conftest.c >&5
configure:7831: $? = 0
configure:8028: checking for mt
configure:8049: found /usr/bin/mt
configure:8060: result: mt
configure:8083: checking if mt is a manifest tool
configure:8090: mt '-?'
configure:8098: result: no
configure:8823: checking for stdio.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for stdlib.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for string.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for inttypes.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for stdint.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for strings.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for sys/stat.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for sys/types.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8823: checking for unistd.h
configure:8823: gcc -c -g -O2  conftest.c >&5
configure:8823: $? = 0
configure:8823: result: yes
configure:8848: checking for dlfcn.h
configure:8848: gcc -c -g -O2  conftest.c >&5
configure:8848: $? = 0
configure:8848: result: yes
configure:9105: checking for objdir
configure:9121: result: .libs
configure:9385: checking if gcc supports -fno-rtti -fno-exceptions
configure:9404: gcc -c -g -O2  -fno-rtti -fno-exceptions conftest.c >&5
cc1: warning: command-line option '-fno-rtti' is valid for C++/D/ObjC++ but not for C
configure:9408: $? = 0
configure:9421: result: no
configure:9785: checking for gcc option to produce PIC
configure:9793: result: -fPIC -DPIC
configure:9801: checking if gcc PIC flag -fPIC -DPIC works
configure:9820: gcc -c -g -O2  -fPIC -DPIC -DPIC conftest.c >&5
configure:9824: $? = 0
configure:9837: result: yes
configure:9866: checking if gcc static flag -static works
configure:9895: result: yes
configure:9910: checking if gcc supports -c -o file.o
configure:9932: gcc -c -g -O2  -o out/conftest2.o conftest.c >&5
configure:9936: $? = 0
configure:9958: result: yes
configure:9966: checking if gcc supports -c -o file.o
configure:10014: result: yes
configure:10047: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries
configure:11321: result: yes
configure:11358: checking whether -lc should be explicitly linked in
configure:11367: gcc -c -g -O2  conftest.c >&5
configure:11370: $? = 0
configure:11385: gcc -shared  -fPIC -DPIC conftest.o  -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /usr/bin/grep  -lc  \>/dev/null 2\>\&1
configure:11388: $? = 0
configure:11402: result: no
configure:11562: checking dynamic linker characteristics
configure:12144: gcc -o conftest -g -O2   -Wl,-rpath -Wl,/foo conftest.c  >&5
configure:12144: $? = 0
configure:12395: result: GNU/Linux ld.so
configure:12517: checking how to hardcode library paths into programs
configure:12542: result: immediate
configure:13094: checking whether stripping libraries is possible
configure:13103: result: yes
configure:13145: checking if libtool supports shared libraries
configure:13147: result: yes
configure:13150: checking whether to build shared libraries
configure:13175: result: yes
configure:13178: checking whether to build static libraries
configure:13182: result: yes
configure:13220: checking whether byte ordering is bigendian
configure:13236: gcc -c -g -O2  conftest.c >&5
conftest.c:22:16: error: unknown type name 'not'
   22 |                not a universal capable compiler
      |                ^~~
conftest.c:22:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'universal'
   22 |                not a universal capable compiler
      |                      ^~~~~~~~~
conftest.c:22:22: error: unknown type name 'universal'
configure:13236: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "speexdsp"
| #define PACKAGE_TARNAME "speexdsp"
| #define PACKAGE_VERSION "1.2.1"
| #define PACKAGE_STRING "speexdsp 1.2.1"
| #define PACKAGE_BUGREPORT "speex-dev@xiph.org"
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #ifndef __APPLE_CC__
| 	       not a universal capable compiler
| 	     #endif
| 	     typedef int dummy;
| 
configure:13282: gcc -c -g -O2  conftest.c >&5
configure:13282: $? = 0
configure:13301: gcc -c -g -O2  conftest.c >&5
conftest.c: In function 'main':
conftest.c:28:18: error: unknown type name 'not'; did you mean 'ino_t'?
   28 |                  not big endian
      |                  ^~~
      |                  ino_t
conftest.c:28:26: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'endian'
   28 |                  not big endian
      |                          ^~~~~~
configure:13301: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "speexdsp"
| #define PACKAGE_TARNAME "speexdsp"
| #define PACKAGE_VERSION "1.2.1"
| #define PACKAGE_STRING "speexdsp 1.2.1"
| #define PACKAGE_BUGREPORT "speex-dev@xiph.org"
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| /* end confdefs.h.  */
| #include <sys/types.h>
| 		#include <sys/param.h>
| 
| int
| main (void)
| {
| #if BYTE_ORDER != BIG_ENDIAN
| 		 not big endian
| 		#endif
| 
|   ;
|   return 0;
| }
configure:13435: result: no
configure:13453: checking for an ANSI C-conforming const
configure:13520: gcc -c -g -O2  conftest.c >&5
configure:13520: $? = 0
configure:13528: result: yes
configure:13536: checking for inline
configure:13553: gcc -c -g -O2  conftest.c >&5
configure:13553: $? = 0
configure:13562: result: inline
configure:13580: checking for C/C++ restrict keyword
configure:13610: gcc -c -g -O2  conftest.c >&5
configure:13610: $? = 0
configure:13619: result: __restrict__
configure:13632: checking for C99 variable-size arrays
configure:13649: gcc -c -g -O2  conftest.c >&5
configure:13649: $? = 0
configure:13660: result: yes
configure:13663: checking for SSE in current arch/CFLAGS
configure:13682: gcc -o conftest -g -O2   conftest.c  >&5
configure:13682: $? = 0
configure:13695: result: yes
configure:13698: checking for SSE2 in current arch/CFLAGS
configure:13717: gcc -o conftest -g -O2   conftest.c  >&5
configure:13717: $? = 0
configure:13730: result: yes
configure:13733: checking for NEON in current arch/CFLAGS
configure:13752: gcc -o conftest -g -O2   conftest.c  >&5
conftest.c:25:10: fatal error: arm_neon.h: No such file or directory
   25 | #include <arm_neon.h>
      |          ^~~~~~~~~~~~
compilation terminated.
configure:13752: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "speexdsp"
| #define PACKAGE_TARNAME "speexdsp"
| #define PACKAGE_VERSION "1.2.1"
| #define PACKAGE_STRING "speexdsp 1.2.1"
| #define PACKAGE_BUGREPORT "speex-dev@xiph.org"
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| #define VAR_ARRAYS /**/
| /* end confdefs.h.  */
| 
| 
| #include <arm_neon.h>
| int32x4_t testfunc(int16_t *a, int16_t *b) {
|       return vmull_s16(vld1_s16(a), vld1_s16(b));
| }
| 
| int
| main (void)
| {
| 
|   ;
|   return 0;
| }
configure:13765: result: no
configure:13770: checking for ELF visibility
configure:13788: gcc -c -g -O2 -fvisibility=hidden  conftest.c >&5
configure:13788: $? = 0
configure:13807: result: yes
configure:13810: checking for sys/soundcard.h
configure:13810: gcc -c -g -O2 -fvisibility=hidden  conftest.c >&5
configure:13810: $? = 0
configure:13810: result: yes
configure:13816: checking for sys/audioio.h
configure:13816: gcc -c -g -O2 -fvisibility=hidden  conftest.c >&5
conftest.c:53:10: fatal error: sys/audioio.h: No such file or directory
   53 | #include <sys/audioio.h>
      |          ^~~~~~~~~~~~~~~
compilation terminated.
configure:13816: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "speexdsp"
| #define PACKAGE_TARNAME "speexdsp"
| #define PACKAGE_VERSION "1.2.1"
| #define PACKAGE_STRING "speexdsp 1.2.1"
| #define PACKAGE_BUGREPORT "speex-dev@xiph.org"
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_DLFCN_H 1
| #define LT_OBJDIR ".libs/"
| #define restrict __restrict__
| #define VAR_ARRAYS /**/
| #define EXPORT __attribute__((visibility("default")))
| #define HAVE_SYS_SOUNDCARD_H 1
| /* end confdefs.h.  */
| #include <stddef.h>
| #ifdef HAVE_STDIO_H
| # include <stdio.h>
| #endif
| #ifdef HAVE_STDLIB_H
| # include <stdlib.h>
| #endif
| #ifdef HAVE_STRING_H
| # include <string.h>
| #endif
| #ifdef HAVE_INTTYPES_H
| # include <inttypes.h>
| #endif
| #ifdef HAVE_STDINT_H
| # include <stdint.h>
| #endif
| #ifdef HAVE_STRINGS_H
| # include <strings.h>
| #endif
| #ifdef HAVE_SYS_TYPES_H
| # include <sys/types.h>
| #endif
| #ifdef HAVE_SYS_STAT_H
| # include <sys/stat.h>
| #endif
| #ifdef HAVE_UNISTD_H
| # include <unistd.h>
| #endif
| #include <sys/audioio.h>
configure:13816: result: no
configure:13914: checking for cos in -lm
configure:13937: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c -lm   >&5
conftest.c:29:6: warning: conflicting types for built-in function 'cos'; expected 'double(double)' [-Wbuiltin-declaration-mismatch]
   29 | char cos ();
      |      ^~~
conftest.c:1:1: note: 'cos' is declared in header '<math.h>'
    1 | /* confdefs.h */
configure:13937: $? = 0
configure:13947: result: yes
configure:14214: checking for pkg-config
configure:14237: found /usr/bin/pkg-config
configure:14249: result: /usr/bin/pkg-config
configure:14274: checking pkg-config is at least version 0.9.0
configure:14277: result: yes
configure:14463: checking size of int16_t
configure:14469: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14469: $? = 0
configure:14469: ./conftest
configure:14469: $? = 0
configure:14484: result: 2
configure:14496: checking size of uint16_t
configure:14502: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14502: $? = 0
configure:14502: ./conftest
configure:14502: $? = 0
configure:14517: result: 2
configure:14529: checking size of u_int16_t
configure:14535: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14535: $? = 0
configure:14535: ./conftest
configure:14535: $? = 0
configure:14550: result: 2
configure:14562: checking size of int32_t
configure:14568: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14568: $? = 0
configure:14568: ./conftest
configure:14568: $? = 0
configure:14583: result: 4
configure:14595: checking size of uint32_t
configure:14601: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14601: $? = 0
configure:14601: ./conftest
configure:14601: $? = 0
configure:14616: result: 4
configure:14628: checking size of u_int32_t
configure:14634: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14634: $? = 0
configure:14634: ./conftest
configure:14634: $? = 0
configure:14649: result: 4
configure:14661: checking size of short
configure:14667: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14667: $? = 0
configure:14667: ./conftest
configure:14667: $? = 0
configure:14682: result: 2
configure:14694: checking size of int
configure:14700: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14700: $? = 0
configure:14700: ./conftest
configure:14700: $? = 0
configure:14715: result: 4
configure:14727: checking size of long
configure:14733: gcc -o conftest -g -O2 -fvisibility=hidden   conftest.c  >&5
configure:14733: $? = 0
configure:14733: ./conftest
configure:14733: $? = 0
configure:14748: result: 8
configure:14940: checking that generated files are newer than configure
configure:14946: result: done
configure:14990: creating ./config.status

## ---------------------- ##
## Running config.status. ##
## ---------------------- ##

This file was extended by speexdsp config.status 1.2.1, which was
generated by GNU Autoconf 2.71.  Invocation command line was

  CONFIG_FILES    = 
  CONFIG_HEADERS  = 
  CONFIG_LINKS    = 
  CONFIG_COMMANDS = 
  $ ./config.status 

on sadaf-specialist.c.googlers.com

config.status:1147: creating Makefile
config.status:1147: creating libspeexdsp/Makefile
config.status:1147: creating doc/Makefile
config.status:1147: creating SpeexDSP.spec
config.status:1147: creating include/Makefile
config.status:1147: creating include/speex/Makefile
config.status:1147: creating speexdsp.pc
config.status:1147: creating win32/Makefile
config.status:1147: creating win32/libspeexdsp/Makefile
config.status:1147: creating symbian/Makefile
config.status:1147: creating win32/VS2003/Makefile
config.status:1147: creating win32/VS2003/libspeexdsp/Makefile
config.status:1147: creating win32/VS2003/tests/Makefile
config.status:1147: creating win32/VS2005/Makefile
config.status:1147: creating win32/VS2005/libspeexdsp/Makefile
config.status:1147: creating win32/VS2005/tests/Makefile
config.status:1147: creating win32/VS2008/Makefile
config.status:1147: creating win32/VS2008/libspeexdsp/Makefile
config.status:1147: creating win32/VS2008/tests/Makefile
config.status:1147: creating include/speex/speexdsp_config_types.h
config.status:1147: creating ti/Makefile
config.status:1147: creating ti/speex_C54_test/Makefile
config.status:1147: creating ti/speex_C55_test/Makefile
config.status:1147: creating ti/speex_C64_test/Makefile
config.status:1147: creating config.h
config.status:1376: executing depfiles commands
config.status:1453: cd libspeexdsp       && sed -e '/# am--include-marker/d' Makefile         | make -f - am--depfiles
config.status:1458: $? = 0
config.status:1376: executing libtool commands

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_c_bigendian=no
ac_cv_c_compiler_gnu=yes
ac_cv_c_const=yes
ac_cv_c_inline=inline
ac_cv_c_restrict=__restrict__
ac_cv_env_CC_set=
ac_cv_env_CC_value=
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_FFT_CFLAGS_set=
ac_cv_env_FFT_CFLAGS_value=
ac_cv_env_FFT_LIBS_set=
ac_cv_env_FFT_LIBS_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_LT_SYS_LIBRARY_PATH_set=
ac_cv_env_LT_SYS_LIBRARY_PATH_value=
ac_cv_env_PKG_CONFIG_LIBDIR_set=
ac_cv_env_PKG_CONFIG_LIBDIR_value=
ac_cv_env_PKG_CONFIG_PATH_set=
ac_cv_env_PKG_CONFIG_PATH_value=
ac_cv_env_PKG_CONFIG_set=
ac_cv_env_PKG_CONFIG_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=
ac_cv_env_host_alias_value=
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_header_dlfcn_h=yes
ac_cv_header_inttypes_h=yes
ac_cv_header_stdint_h=yes
ac_cv_header_stdio_h=yes
ac_cv_header_stdlib_h=yes
ac_cv_header_string_h=yes
ac_cv_header_strings_h=yes
ac_cv_header_sys_audioio_h=no
ac_cv_header_sys_soundcard_h=yes
ac_cv_header_sys_stat_h=yes
ac_cv_header_sys_types_h=yes
ac_cv_header_unistd_h=yes
ac_cv_host=x86_64-pc-linux-gnu
ac_cv_lib_m_cos=yes
ac_cv_objext=o
ac_cv_path_EGREP='/usr/bin/grep -E'
ac_cv_path_FGREP='/usr/bin/grep -F'
ac_cv_path_GREP=/usr/bin/grep
ac_cv_path_SED=/usr/bin/sed
ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_lt_DD=/usr/bin/dd
ac_cv_path_mkdir=/usr/bin/mkdir
ac_cv_prog_AWK=gawk
ac_cv_prog_ac_ct_AR=ar
ac_cv_prog_ac_ct_CC=gcc
ac_cv_prog_ac_ct_DLLTOOL=dlltool
ac_cv_prog_ac_ct_FILECMD=file
ac_cv_prog_ac_ct_MANIFEST_TOOL=mt
ac_cv_prog_ac_ct_OBJDUMP=objdump
ac_cv_prog_ac_ct_RANLIB=ranlib
ac_cv_prog_ac_ct_STRIP=strip
ac_cv_prog_cc_c11=
ac_cv_prog_cc_g=yes
ac_cv_prog_cc_stdc=
ac_cv_prog_make_make_set=yes
ac_cv_sizeof_int16_t=2
ac_cv_sizeof_int32_t=4
ac_cv_sizeof_int=4
ac_cv_sizeof_long=8
ac_cv_sizeof_short=2
ac_cv_sizeof_u_int16_t=2
ac_cv_sizeof_u_int32_t=4
ac_cv_sizeof_uint16_t=2
ac_cv_sizeof_uint32_t=4
am_cv_CC_dependencies_compiler_type=gcc3
am_cv_make_support_nested_variables=yes
am_cv_prog_cc_c_o=yes
lt_cv_ar_at_file=@
lt_cv_archive_cmds_need_lc=no
lt_cv_deplibs_check_method=pass_all
lt_cv_file_magic_cmd='$MAGIC_CMD'
lt_cv_file_magic_test_file=
lt_cv_ld_reload_flag=-r
lt_cv_nm_interface='BSD nm'
lt_cv_objdir=.libs
lt_cv_path_LD=/usr/bin/ld
lt_cv_path_NM='/usr/bin/nm -B'
lt_cv_path_mainfest_tool=no
lt_cv_prog_compiler_c_o=yes
lt_cv_prog_compiler_pic='-fPIC -DPIC'
lt_cv_prog_compiler_pic_works=yes
lt_cv_prog_compiler_rtti_exceptions=no
lt_cv_prog_compiler_static_works=yes
lt_cv_prog_gnu_ld=yes
lt_cv_sharedlib_from_linklib_cmd='printf %s\n'
lt_cv_shlibpath_overrides_runpath=yes
lt_cv_sys_global_symbol_pipe='/usr/bin/sed -n -e '\''s/^.*[	 ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[	 ][	 ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | /usr/bin/sed '\''/ __gnu_lto/d'\'''
lt_cv_sys_global_symbol_to_c_name_address='/usr/bin/sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='/usr/bin/sed -n -e '\''s/^: \(.*\) .*$/  {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/  {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/  {"lib\1", (void *) \&\1},/p'\'''
lt_cv_sys_global_symbol_to_cdecl='/usr/bin/sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\'''
lt_cv_sys_global_symbol_to_import=
lt_cv_sys_max_cmd_len=1572864
lt_cv_to_host_file_cmd=func_convert_file_noop
lt_cv_to_tool_file_cmd=func_convert_file_noop
lt_cv_truncate_bin='/usr/bin/dd bs=4096 count=1'

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} '\''/usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/external/speex/missing'\'' aclocal-1.16'
AMDEPBACKSLASH='\'
AMDEP_FALSE='#'
AMDEP_TRUE=''
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
AR='ar'
AS='as'
AUTOCONF='${SHELL} '\''/usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/external/speex/missing'\'' autoconf'
AUTOHEADER='${SHELL} '\''/usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/external/speex/missing'\'' autoheader'
AUTOMAKE='${SHELL} '\''/usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/external/speex/missing'\'' automake-1.16'
AWK='gawk'
BUILD_EXAMPLES_FALSE='#'
BUILD_EXAMPLES_TRUE=''
BUILD_KISS_FFT_FALSE=''
BUILD_KISS_FFT_TRUE='#'
BUILD_SMALLFT_FALSE='#'
BUILD_SMALLFT_TRUE=''
CC='gcc'
CCDEPMODE='depmode=gcc3'
CFLAGS='-g -O2 -fvisibility=hidden'
CPPFLAGS=''
CSCOPE='cscope'
CTAGS='ctags'
CYGPATH_W='echo'
DEFS='-DHAVE_CONFIG_H'
DEPDIR='.deps'
DLLTOOL='dlltool'
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP='/usr/bin/grep -E'
ETAGS='etags'
EXEEXT=''
FFT_CFLAGS=''
FFT_LIBS=''
FFT_PKGCONFIG=''
FGREP='/usr/bin/grep -F'
FILECMD='file'
GREP='/usr/bin/grep'
INCLUDE_STDINT='#include <stdint.h>'
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD='/usr/bin/ld -m elf_x86_64'
LDFLAGS=''
LIBM='-lm'
LIBOBJS=''
LIBS=''
LIBTOOL='$(SHELL) $(top_builddir)/libtool'
LIPO=''
LN_S='ln -s'
LTLIBOBJS=''
LT_SYS_LIBRARY_PATH=''
MAINT=''
MAINTAINER_MODE_FALSE='#'
MAINTAINER_MODE_TRUE=''
MAKEINFO='${SHELL} '\''/usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/external/speex/missing'\'' makeinfo'
MANIFEST_TOOL=':'
MKDIR_P='/usr/bin/mkdir -p'
NM='/usr/bin/nm -B'
NMEDIT=''
OBJDUMP='objdump'
OBJEXT='o'
OTOOL64=''
OTOOL=''
PACKAGE='speexdsp'
PACKAGE_BUGREPORT='speex-dev@xiph.org'
PACKAGE_NAME='speexdsp'
PACKAGE_STRING='speexdsp 1.2.1'
PACKAGE_TARNAME='speexdsp'
PACKAGE_URL=''
PACKAGE_VERSION='1.2.1'
PATH_SEPARATOR=':'
PKG_CONFIG='/usr/bin/pkg-config'
PKG_CONFIG_LIBDIR=''
PKG_CONFIG_PATH=''
RANLIB='ranlib'
SED='/usr/bin/sed'
SET_MAKE=''
SHELL='/bin/sh'
SIZE16='int16_t'
SIZE32='int32_t'
SPEEXDSP_LT_AGE='5'
SPEEXDSP_LT_CURRENT='6'
SPEEXDSP_LT_REVISION='2'
STRIP='strip'
USIZE16='uint16_t'
USIZE32='uint32_t'
VERSION='1.2.1'
ac_ct_AR='ar'
ac_ct_CC='gcc'
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE='#'
am__fastdepCC_FALSE='#'
am__fastdepCC_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep='_no'
am__quote=''
am__tar='$${TAR-tar} chof - "$$tardir"'
am__untar='$${TAR-tar} xf -'
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='${prefix}'
host='x86_64-pc-linux-gnu'
host_alias=''
host_cpu='x86_64'
host_os='linux-gnu'
host_vendor='pc'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /usr/local/google/home/sadafebrahimi/aosp/forupdatesonly/aosp-master-with-phones/external/speex/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='$(MKDIR_P)'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/usr/local'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
src=''
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "speexdsp"
#define PACKAGE_TARNAME "speexdsp"
#define PACKAGE_VERSION "1.2.1"
#define PACKAGE_STRING "speexdsp 1.2.1"
#define PACKAGE_BUGREPORT "speex-dev@xiph.org"
#define PACKAGE_URL ""
#define HAVE_STDIO_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRINGS_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_UNISTD_H 1
#define STDC_HEADERS 1
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
#define restrict __restrict__
#define VAR_ARRAYS /**/
#define EXPORT __attribute__((visibility("default")))
#define HAVE_SYS_SOUNDCARD_H 1
#define FLOATING_POINT /**/
#define USE_SSE /**/
#define USE_SSE2 /**/
#define USE_SMALLFT /**/
#define SIZEOF_INT16_T 2
#define SIZEOF_UINT16_T 2
#define SIZEOF_U_INT16_T 2
#define SIZEOF_INT32_T 4
#define SIZEOF_UINT32_T 4
#define SIZEOF_U_INT32_T 4
#define SIZEOF_SHORT 2
#define SIZEOF_INT 4
#define SIZEOF_LONG 8

configure: exit 0
