19e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#!/bin/sh
2381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes# configure script for zlib.
39e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#
4381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes# Normally configure builds both a static and a shared library.
5381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes# If you want to build just a static library, use: ./configure --static
69e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#
79e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# To impose specific compiler or flags or install directory, use for example:
89e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#    prefix=$HOME CC=cc CFLAGS="-O4" ./configure
99e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# or for csh/tcsh users:
109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#    (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure)
119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# Incorrect settings of CC or CFLAGS may prevent creating a shared library.
139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# If you have problems, try without defining CC and CFLAGS before reporting
149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# an error.
159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
1609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# start off configure.log
17ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho -------------------- >> configure.log
18ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho $0 $* >> configure.log
19ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesdate >> configure.log
20ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
2109eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# set command prefix for cross-compilation
22381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesif [ -n "${CHOST}" ]; then
23ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`"
24381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    CROSS_PREFIX="${CHOST}-"
25381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesfi
26381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
2709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# destination name for static library
28381716e9396b55b1adb8235b020c37344f60ab07Elliott HughesSTATICLIB=libz.a
2909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes
3009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# extract zlib version numbers from zlib.h
319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectVER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`
32381716e9396b55b1adb8235b020c37344f60ab07Elliott HughesVER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < zlib.h`
339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectVER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h`
349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectVER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h`
3509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes
3609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# establish commands for library building
37381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesif "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
38381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    AR=${AR-"${CROSS_PREFIX}ar"}
39ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
40381716e9396b55b1adb8235b020c37344f60ab07Elliott Hugheselse
41381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    AR=${AR-"ar"}
42ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log
43381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesfi
44ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesARFLAGS=${ARFLAGS-"rc"}
45381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesif "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then
46381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}
47ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log
48381716e9396b55b1adb8235b020c37344f60ab07Elliott Hugheselse
49381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    RANLIB=${RANLIB-"ranlib"}
50381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesfi
51381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesif "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then
52381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    NM=${NM-"${CROSS_PREFIX}nm"}
53ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log
54381716e9396b55b1adb8235b020c37344f60ab07Elliott Hugheselse
55381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    NM=${NM-"nm"}
56381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesfi
5709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes
5809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# set defaults before processing command line options
59381716e9396b55b1adb8235b020c37344f60ab07Elliott HughesLDCONFIG=${LDCONFIG-"ldconfig"}
60381716e9396b55b1adb8235b020c37344f60ab07Elliott HughesLDSHAREDLIBC="${LDSHAREDLIBC--lc}"
61ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesARCHS=
629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectprefix=${prefix-/usr/local}
639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectexec_prefix=${exec_prefix-'${prefix}'}
649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectlibdir=${libdir-'${exec_prefix}/lib'}
65381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughessharedlibdir=${sharedlibdir-'${libdir}'}
669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectincludedir=${includedir-'${prefix}/include'}
679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectmandir=${mandir-'${prefix}/share/man'}
689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectshared_ext='.so'
69381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesshared=1
70ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughessolo=0
71ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughescover=0
72381716e9396b55b1adb8235b020c37344f60ab07Elliott Hugheszprefix=0
7304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hugheszconst=0
74381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesbuild64=0
759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectgcc=0
769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectold_cc="$CC"
779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectold_cflags="$CFLAGS"
78ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesOBJC='$(OBJZ) $(OBJG)'
79ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesPIC_OBJC='$(PIC_OBJZ) $(PIC_OBJG)'
809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
8104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes# leave this script, optionally in a bad way
8204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesleave()
8304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes{
8404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  if test "$*" != "0"; then
8504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    echo "** $0 aborting." | tee -a configure.log
8604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  fi
8704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  rm -f $test.[co] $test $test$shared_ext $test.gcno ./--version
8804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  echo -------------------- >> configure.log
8904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  echo >> configure.log
9004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  echo >> configure.log
9104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  exit $1
9204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes}
9304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
9409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# process command line options
959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectwhile test $# -ge 1
969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdo
979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectcase "$1" in
98381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -h* | --help)
99ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo 'usage:' | tee -a configure.log
10004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes      echo '  configure [--const] [--zprefix] [--prefix=PREFIX]  [--eprefix=EXPREFIX]' | tee -a configure.log
101ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo '    [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
102ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo '    [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
103381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        exit 0 ;;
104381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
105381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;
106381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -l*=* | --libdir=*) libdir=`echo $1 | sed 's/.*=//'`; shift ;;
107381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    --sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/.*=//'`; shift ;;
108381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -i*=* | --includedir=*) includedir=`echo $1 | sed 's/.*=//'`;shift ;;
109381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -u*=* | --uname=*) uname=`echo $1 | sed 's/.*=//'`;shift ;;
110381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -p* | --prefix) prefix="$2"; shift; shift ;;
111381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -e* | --eprefix) exec_prefix="$2"; shift; shift ;;
112381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -l* | --libdir) libdir="$2"; shift; shift ;;
113381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -i* | --includedir) includedir="$2"; shift; shift ;;
114381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -s* | --shared | --enable-shared) shared=1; shift ;;
115381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -t | --static) shared=0; shift ;;
116ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    --solo) solo=1; shift ;;
117ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    --cover) cover=1; shift ;;
118381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -z* | --zprefix) zprefix=1; shift ;;
119381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    -6* | --64) build64=1; shift ;;
120ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;
121ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    --sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;
122ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    --localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;
12304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    -c* | --const) zconst=1; shift ;;
12404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    *)
12504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes      echo "unknown option: $1" | tee -a configure.log
12604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes      echo "$0 --help for help" | tee -a configure.log
12704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes      leave 1;;
1289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    esac
1299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectdone
1309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
13104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes# temporary file name
1329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projecttest=ztest$$
133ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
13404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes# put arguments in log, also put test file in log if used in arguments
135ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesshow()
136ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes{
137ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  case "$*" in
138ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    *$test.c*)
139ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo === $test.c === >> configure.log
140ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      cat $test.c >> configure.log
141ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo === >> configure.log;;
142ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  esac
143ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo $* >> configure.log
144ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes}
145ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
14609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# check for gcc vs. cc and set compile and link flags based on the system identified by uname
1479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectcat > $test.c <<EOF
1489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectextern int getchar();
1499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint hello() {return getchar();}
1509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
1519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
152ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughestest -z "$CC" && echo Checking for ${CROSS_PREFIX}gcc... | tee -a configure.log
153381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughescc=${CC-${CROSS_PREFIX}gcc}
1549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectcflags=${CFLAGS-"-O3"}
1559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
1569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectcase "$cc" in
157381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  *gcc*) gcc=1 ;;
15809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  *clang*) gcc=1 ;;
1599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectesac
160ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughescase `$cc -v 2>&1` in
161ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  *gcc*) gcc=1 ;;
162ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesesac
1639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
16404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesshow $cc -c $test.c
16504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesif test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
166ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo ... using gcc >> configure.log
1679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  CC="$cc"
168ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  CFLAGS="${CFLAGS--O3} ${ARCHS}"
169381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  SFLAGS="${CFLAGS--O3} -fPIC"
170ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  LDFLAGS="${LDFLAGS} ${ARCHS}"
171381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  if test $build64 -eq 1; then
172381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    CFLAGS="${CFLAGS} -m64"
173381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    SFLAGS="${SFLAGS} -m64"
174381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fi
175381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  if test "${ZLIBGCCWARN}" = "YES"; then
17604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    if test "$zconst" -eq 1; then
17704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes      CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual -pedantic -DZLIB_CONST"
17804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    else
17904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes      CFLAGS="${CFLAGS} -Wall -Wextra -pedantic"
18004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    fi
181381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fi
182381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  if test -z "$uname"; then
183381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    uname=`(uname -s || echo unknown) 2>/dev/null`
184381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fi
185381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  case "$uname" in
186ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  Linux* | linux* | GNU | GNU/* | solaris*)
187ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes        LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} ;;
188ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  *BSD | *bsd* | DragonFly)
189ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes        LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}
190ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes        LDCONFIG="ldconfig -m" ;;
191381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  CYGWIN* | Cygwin* | cygwin* | OS/2*)
192381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        EXE='.exe' ;;
193ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  MINGW* | mingw*)
194381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes# temporary bypass
195381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        rm -f $test.[co] $test $test$shared_ext
196ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes        echo "Please use win32/Makefile.gcc instead." | tee -a configure.log
19704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes        leave 1
198381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        LDSHARED=${LDSHARED-"$cc -shared"}
199381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        LDSHAREDLIBC=""
200381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes        EXE='.exe' ;;
2019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  QNX*)  # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4
2029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         # (alain.bonnefoy@icbt.com)
203381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes                 LDSHARED=${LDSHARED-"$cc -shared -Wl,-hlibz.so.1"} ;;
2049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  HP-UX*)
2059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         LDSHARED=${LDSHARED-"$cc -shared $SFLAGS"}
2069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         case `(uname -m || echo unknown) 2>/dev/null` in
2079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         ia64)
2089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                 shared_ext='.so'
209381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes                 SHAREDLIB='libz.so' ;;
2109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         *)
2119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project                 shared_ext='.sl'
212381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes                 SHAREDLIB='libz.sl' ;;
213381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes         esac ;;
214ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  Darwin* | darwin*)
215ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes             shared_ext='.dylib'
2169e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SHAREDLIB=libz$shared_ext
2179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SHAREDLIBV=libz.$VER$shared_ext
2189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SHAREDLIBM=libz.$VER1$shared_ext
219ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes             LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}
22004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes             if libtool -V 2>&1 | grep Apple > /dev/null; then
22104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes                 AR="libtool"
22204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes             else
22304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes                 AR="/usr/bin/libtool"
22404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes             fi
225ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes             ARFLAGS="-o" ;;
226381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  *)             LDSHARED=${LDSHARED-"$cc -shared"} ;;
2279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  esac
2289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectelse
2299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  # find system name and corresponding cc options
2309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  CC=${CC-cc}
231381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  gcc=0
232ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo ... using $CC >> configure.log
233381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  if test -z "$uname"; then
234381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    uname=`(uname -sr || echo unknown) 2>/dev/null`
235381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fi
236381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  case "$uname" in
2379e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  HP-UX*)    SFLAGS=${CFLAGS-"-O +z"}
2389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O"}
2399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#            LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"}
2409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             LDSHARED=${LDSHARED-"ld -b"}
2419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         case `(uname -m || echo unknown) 2>/dev/null` in
2429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         ia64)
2439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             shared_ext='.so'
244381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             SHAREDLIB='libz.so' ;;
2459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project         *)
2469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             shared_ext='.sl'
247381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             SHAREDLIB='libz.sl' ;;
248381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes         esac ;;
2499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  IRIX*)     SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."}
2509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-ansi -O2"}
251381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so.1"} ;;
2529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"}
2539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O -std1"}
254381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDFLAGS="${LDFLAGS} -Wl,-rpath,."
255381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -shared  -Wl,-soname,libz.so -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"} ;;
2569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  OSF1*)     SFLAGS=${CFLAGS-"-O -std1"}
2579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O -std1"}
258381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so.1"} ;;
2599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  QNX*)      SFLAGS=${CFLAGS-"-4 -O"}
2609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-4 -O"}
2619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             LDSHARED=${LDSHARED-"cc"}
2629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             RANLIB=${RANLIB-"true"}
263ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes             AR="cc"
264ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes             ARFLAGS="-A" ;;
2659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "}
2669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O3"}
267381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -dy -KPIC -G"} ;;
268ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  SunOS\ 5* | solaris*)
26909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes         LDSHARED=${LDSHARED-"cc -G -h libz$shared_ext.$VER1"}
27009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes         SFLAGS=${CFLAGS-"-fast -KPIC"}
27109eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes         CFLAGS=${CFLAGS-"-fast"}
27209eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes         if test $build64 -eq 1; then
27309eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes             # old versions of SunPRO/Workshop/Studio don't support -m64,
27409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes             # but newer ones do.  Check for it.
27509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes             flag64=`$CC -flags | egrep -- '^-m64'`
27609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes             if test x"$flag64" != x"" ; then
27709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                 CFLAGS="${CFLAGS} -m64"
27809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                 SFLAGS="${SFLAGS} -m64"
27909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes             else
28009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                 case `(uname -m || echo unknown) 2>/dev/null` in
28109eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                   i86*)
28209eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                     SFLAGS="$SFLAGS -xarch=amd64"
28309eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                     CFLAGS="$CFLAGS -xarch=amd64" ;;
28409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                   *)
28509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                     SFLAGS="$SFLAGS -xarch=v9"
28609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                     CFLAGS="$CFLAGS -xarch=v9" ;;
28709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes                 esac
28809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes             fi
28909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes         fi
29009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes         ;;
2919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"}
2929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O2"}
293381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"ld"} ;;
294381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  SunStudio\ 9*) SFLAGS=${CFLAGS-"-fast -xcode=pic32 -xtarget=ultra3 -xarch=v9b"}
295381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             CFLAGS=${CFLAGS-"-fast -xtarget=ultra3 -xarch=v9b"}
296381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -xarch=v9b"} ;;
2979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  UNIX_System_V\ 4.2.0)
2989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SFLAGS=${CFLAGS-"-KPIC -O"}
2999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O"}
300381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -G"} ;;
3019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  UNIX_SV\ 4.2MP)
3029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SFLAGS=${CFLAGS-"-Kconform_pic -O"}
3039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O"}
304381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -G"} ;;
3059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  OpenUNIX\ 5)
3069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SFLAGS=${CFLAGS-"-KPIC -O"}
3079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O"}
308381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -G"} ;;
3099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  AIX*)  # Courtesy of dbakker@arrayasolutions.com
3109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             SFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
3119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
312381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"xlc -G"} ;;
313381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  # send working options for other systems to zlib@gzip.org
3149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  *)         SFLAGS=${CFLAGS-"-O"}
3159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project             CFLAGS=${CFLAGS-"-O"}
316381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes             LDSHARED=${LDSHARED-"cc -shared"} ;;
3179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  esac
3189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectfi
3199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
32009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# destination names for shared library if not defined above
3219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectSHAREDLIB=${SHAREDLIB-"libz$shared_ext"}
3229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectSHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}
3239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectSHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}
3249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
325ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho >> configure.log
326ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
32704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes# define functions for testing compiler and library characteristics and logging the results
32804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
32904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughescat > $test.c <<EOF
33004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes#error error
33104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott HughesEOF
33204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesif ($CC -c $CFLAGS $test.c) 2>/dev/null; then
33304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  try()
33404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  {
33504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    show $*
33604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    test "`( $* ) 2>&1 | tee -a configure.log`" = ""
33704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  }
33804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  echo - using any output from compiler to indicate an error >> configure.log
33904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hugheselse
34004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughestry()
34104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes{
34204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  show $*
34304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  ( $* ) >> configure.log 2>&1
34404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  ret=$?
34504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  if test $ret -ne 0; then
34604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    echo "(exit code "$ret")" >> configure.log
34704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  fi
34804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  return $ret
34904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes}
35004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesfi
35104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
35204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughestryboth()
35304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes{
35404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  show $*
35504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  got=`( $* ) 2>&1`
35604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  ret=$?
35704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  printf %s "$got" >> configure.log
35804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  if test $ret -ne 0; then
35904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes    return $ret
36004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  fi
36104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  test "$got" = ""
36204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes}
36304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
36404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughescat > $test.c << EOF
36504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesint foo() { return 0; }
36604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott HughesEOF
36704351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesecho "Checking for obsessive-compulsive compiler options..." >> configure.log
36804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesif try $CC -c $CFLAGS $test.c; then
36904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  :
37004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hugheselse
37104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  echo "Compiler error reporting is too harsh for $0 (perhaps remove -Werror)." | tee -a configure.log
37204351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes  leave 1
37304351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesfi
37404351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
37504351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesecho >> configure.log
37604351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
37709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# see if shared library build supported
37804351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughescat > $test.c <<EOF
37904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesextern int getchar();
38004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesint hello() {return getchar();}
38104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott HughesEOF
3829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectif test $shared -eq 1; then
383ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo Checking for shared library support... | tee -a configure.log
3849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  # we must test in two steps (cc then ld), required at least on SunOS 4.x
385ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  if try $CC -w -c $SFLAGS $test.c &&
386ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes     try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
387ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
3889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  elif test -z "$old_cc" -a -z "$old_cflags"; then
389ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo No shared library support. | tee -a configure.log
3909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    shared=0;
3919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  else
392ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo 'No shared library support; try without defining CC and CFLAGS' | tee -a configure.log
3939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    shared=0;
3949e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  fi
3959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectfi
3969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectif test $shared -eq 0; then
3979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  LDSHARED="$CC"
398381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  ALL="static"
399381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  TEST="all teststatic"
400381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  SHAREDLIB=""
401381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  SHAREDLIBV=""
402381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  SHAREDLIBM=""
403ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo Building static library $STATICLIB version $VER with $CC. | tee -a configure.log
4049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectelse
405381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  ALL="static shared"
406381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  TEST="all teststatic testshared"
4079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectfi
4089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
40909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# check for underscores in external names for use by assembler code
410ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesCPP=${CPP-"$CC -E"}
411ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughescase $CFLAGS in
412ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  *ASMV*)
413ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo >> configure.log
414ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    show "$NM $test.o | grep _hello"
415ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    if test "`$NM $test.o | grep _hello | tee -a configure.log`" = ""; then
416ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      CPP="$CPP -DNO_UNDERLINE"
417ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo Checking for underline in external names... No. | tee -a configure.log
418ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    else
419ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo Checking for underline in external names... Yes. | tee -a configure.log
420ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    fi ;;
421ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesesac
422ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
423ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho >> configure.log
424ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
42509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# check for large file support, and if none, check for fseeko()
4269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectcat > $test.c <<EOF
427381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#include <sys/types.h>
428381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesoff64_t dummy = 0;
429381716e9396b55b1adb8235b020c37344f60ab07Elliott HughesEOF
430ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesif try $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c; then
431381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  CFLAGS="${CFLAGS} -D_LARGEFILE64_SOURCE=1"
432381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1"
433381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  ALL="${ALL} all64"
434381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  TEST="${TEST} test64"
435ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for off64_t... Yes." | tee -a configure.log
436ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for fseeko... Yes." | tee -a configure.log
437381716e9396b55b1adb8235b020c37344f60ab07Elliott Hugheselse
438ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for off64_t... No." | tee -a configure.log
439ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo >> configure.log
440381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  cat > $test.c <<EOF
441381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes#include <stdio.h>
442381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint main(void) {
443381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fseeko(NULL, 0, 0);
444381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  return 0;
445381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes}
446381716e9396b55b1adb8235b020c37344f60ab07Elliott HughesEOF
447ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  if try $CC $CFLAGS -o $test $test.c; then
448ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for fseeko... Yes." | tee -a configure.log
449381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  else
450381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    CFLAGS="${CFLAGS} -DNO_FSEEKO"
451381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    SFLAGS="${SFLAGS} -DNO_FSEEKO"
452ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for fseeko... No." | tee -a configure.log
453381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fi
454381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesfi
455381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
45609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughesecho >> configure.log
45709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes
45809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# check for strerror() for use by gz* functions
45909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughescat > $test.c <<EOF
46009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes#include <string.h>
46109eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes#include <errno.h>
46209eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughesint main() { return strlen(strerror(errno)); }
46309eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott HughesEOF
46409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughesif try $CC $CFLAGS -o $test $test.c; then
46509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  echo "Checking for strerror... Yes." | tee -a configure.log
46609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hugheselse
46709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  CFLAGS="${CFLAGS} -DNO_STRERROR"
46809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  SFLAGS="${SFLAGS} -DNO_STRERROR"
46909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  echo "Checking for strerror... No." | tee -a configure.log
47009eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughesfi
47109eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes
47209eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# copy clean zconf.h for subsequent edits
473381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughescp -p zconf.h.in zconf.h
474381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
475ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho >> configure.log
476ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
47709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# check for unistd.h and save result in zconf.h
478381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughescat > $test.c <<EOF
4799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <unistd.h>
4809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main() { return 0; }
4819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
482ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesif try $CC -c $CFLAGS $test.c; then
483381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
484381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  mv zconf.temp.h zconf.h
485ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for unistd.h... Yes." | tee -a configure.log
486ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hugheselse
487ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for unistd.h... No." | tee -a configure.log
488ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesfi
489ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
490ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho >> configure.log
491ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
49209eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# check for stdarg.h and save result in zconf.h
493ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughescat > $test.c <<EOF
494ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes#include <stdarg.h>
495ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesint main() { return 0; }
496ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesEOF
497ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesif try $CC -c $CFLAGS $test.c; then
498ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h
499ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  mv zconf.temp.h zconf.h
500ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for stdarg.h... Yes." | tee -a configure.log
5019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectelse
502ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking for stdarg.h... No." | tee -a configure.log
5039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectfi
5049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
50509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# if the z_ prefix was requested, save that in zconf.h
506381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesif test $zprefix -eq 1; then
507381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h
508381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  mv zconf.temp.h zconf.h
509ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo >> configure.log
510ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Using z_ prefix on all symbols." | tee -a configure.log
511381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesfi
512381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
51309eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# if --solo compilation was requested, save that in zconf.h and remove gz stuff from object lists
514ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesif test $solo -eq 1; then
515ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  sed '/#define ZCONF_H/a\
516ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes#define Z_SOLO
517ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
518ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes' < zconf.h > zconf.temp.h
519ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  mv zconf.temp.h zconf.h
520ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesOBJC='$(OBJZ)'
521ee9e11d0d4e3361533860bf04896abb86a291bfbElliott HughesPIC_OBJC='$(PIC_OBJZ)'
522ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesfi
523ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
52409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# if code coverage testing was requested, use older gcc if defined, e.g. "gcc-4.2" on Mac OS X
525ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesif test $cover -eq 1; then
526ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
52709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  if test -n "$GCC_CLASSIC"; then
52809eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes    CC=$GCC_CLASSIC
52909eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  fi
530ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesfi
531ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
532ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho >> configure.log
533ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes
53409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# conduct a series of tests to resolve eight possible cases of using "vs" or "s" printf functions
53509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# (using stdarg or not), with or without "n" (proving size of buffer), and with or without a
53609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# return value.  The most secure result is vsnprintf() with a return value.  snprintf() with a
53709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# return value is secure as well, but then gzprintf() will be limited to 20 arguments.
5389e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectcat > $test.c <<EOF
5399e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
5409e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdarg.h>
5419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include "zconf.h"
5429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
5439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
5449e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#ifndef STDC
5459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  choke me
5469e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#endif
5479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return 0;
5489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
5499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
550ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesif try $CC -c $CFLAGS $test.c; then
551ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()." | tee -a configure.log
5529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
553ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo >> configure.log
5549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  cat > $test.c <<EOF
5559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
5569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdarg.h>
557381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint mytest(const char *fmt, ...)
5589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
5599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  char buf[20];
5609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_list ap;
5619e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_start(ap, fmt);
5629e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  vsnprintf(buf, sizeof(buf), fmt, ap);
5639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_end(ap);
5649e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return 0;
5659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
5669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
5679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
5689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return (mytest("Hello%d\n", 1));
5699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
5709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
571ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  if try $CC $CFLAGS -o $test $test.c; then
572ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
5739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
574ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo >> configure.log
5759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    cat >$test.c <<EOF
5769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
5779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdarg.h>
578381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint mytest(const char *fmt, ...)
5799e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
5809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  int n;
5819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  char buf[20];
5829e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_list ap;
5839e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_start(ap, fmt);
5849e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  n = vsnprintf(buf, sizeof(buf), fmt, ap);
5859e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_end(ap);
5869e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return n;
5879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
5889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
5899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
5909e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return (mytest("Hello%d\n", 1));
5919e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
5929e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
5939e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
594ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    if try $CC -c $CFLAGS $test.c; then
595ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of vsnprintf()... Yes." | tee -a configure.log
5969e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    else
5979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project      CFLAGS="$CFLAGS -DHAS_vsnprintf_void"
598381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes      SFLAGS="$SFLAGS -DHAS_vsnprintf_void"
599ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of vsnprintf()... No." | tee -a configure.log
600ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  WARNING: apparently vsnprintf() does not return a value. zlib" | tee -a configure.log
601ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  can build but will be open to possible string-format security" | tee -a configure.log
602ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  vulnerabilities." | tee -a configure.log
6039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    fi
6049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  else
6059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    CFLAGS="$CFLAGS -DNO_vsnprintf"
606381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    SFLAGS="$SFLAGS -DNO_vsnprintf"
607ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for vsnprintf() in stdio.h... No." | tee -a configure.log
608ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "  WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log
609ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "  can build but will be open to possible buffer-overflow security" | tee -a configure.log
610ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "  vulnerabilities." | tee -a configure.log
6119e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
612ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo >> configure.log
6139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    cat >$test.c <<EOF
6149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
6159e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdarg.h>
616381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint mytest(const char *fmt, ...)
6179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
6189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  int n;
6199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  char buf[20];
6209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_list ap;
6219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_start(ap, fmt);
6229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  n = vsprintf(buf, fmt, ap);
6239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  va_end(ap);
6249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return n;
6259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
6269e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
6279e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
6289e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return (mytest("Hello%d\n", 1));
6299e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
6309e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
6319e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
632ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    if try $CC -c $CFLAGS $test.c; then
633ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of vsprintf()... Yes." | tee -a configure.log
6349e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    else
6359e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project      CFLAGS="$CFLAGS -DHAS_vsprintf_void"
636381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes      SFLAGS="$SFLAGS -DHAS_vsprintf_void"
637ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of vsprintf()... No." | tee -a configure.log
638ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  WARNING: apparently vsprintf() does not return a value. zlib" | tee -a configure.log
639ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  can build but will be open to possible string-format security" | tee -a configure.log
640ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  vulnerabilities." | tee -a configure.log
6419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    fi
6429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  fi
6439e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectelse
644ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()." | tee -a configure.log
6459e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
646ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo >> configure.log
6479e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  cat >$test.c <<EOF
6489e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
6499e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint mytest()
6509e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
6519e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  char buf[20];
6529e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  snprintf(buf, sizeof(buf), "%s", "foo");
6539e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return 0;
6549e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
6559e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
6569e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
6579e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return (mytest());
6589e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
6599e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
6609e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
661ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  if try $CC $CFLAGS -o $test $test.c; then
662ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
6639e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
664ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo >> configure.log
6659e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    cat >$test.c <<EOF
6669e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
6679e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint mytest()
6689e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
6699e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  char buf[20];
6709e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return snprintf(buf, sizeof(buf), "%s", "foo");
6719e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
6729e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
6739e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
6749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return (mytest());
6759e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
6769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
6779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
678ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    if try $CC -c $CFLAGS $test.c; then
679ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of snprintf()... Yes." | tee -a configure.log
6809e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    else
6819e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project      CFLAGS="$CFLAGS -DHAS_snprintf_void"
682381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes      SFLAGS="$SFLAGS -DHAS_snprintf_void"
683ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of snprintf()... No." | tee -a configure.log
684ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  WARNING: apparently snprintf() does not return a value. zlib" | tee -a configure.log
685ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  can build but will be open to possible string-format security" | tee -a configure.log
686ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  vulnerabilities." | tee -a configure.log
6879e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    fi
6889e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  else
6899e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    CFLAGS="$CFLAGS -DNO_snprintf"
690381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes    SFLAGS="$SFLAGS -DNO_snprintf"
691ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for snprintf() in stdio.h... No." | tee -a configure.log
692ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "  WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log
693ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "  can build but will be open to possible buffer-overflow security" | tee -a configure.log
694ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "  vulnerabilities." | tee -a configure.log
6959e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
696ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo >> configure.log
6979e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    cat >$test.c <<EOF
6989e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project#include <stdio.h>
6999e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint mytest()
7009e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
7019e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  char buf[20];
7029e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return sprintf(buf, "%s", "foo");
7039e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
7049e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectint main()
7059e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project{
7069e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  return (mytest());
7079e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
7089e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
7099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
710ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    if try $CC -c $CFLAGS $test.c; then
711ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of sprintf()... Yes." | tee -a configure.log
7129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    else
7139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project      CFLAGS="$CFLAGS -DHAS_sprintf_void"
714381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes      SFLAGS="$SFLAGS -DHAS_sprintf_void"
715ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "Checking for return value of sprintf()... No." | tee -a configure.log
716ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  WARNING: apparently sprintf() does not return a value. zlib" | tee -a configure.log
717ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  can build but will be open to possible string-format security" | tee -a configure.log
718ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes      echo "  vulnerabilities." | tee -a configure.log
7199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project    fi
7209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project  fi
7219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectfi
7229e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
72309eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# see if we can hide zlib internal symbols that are linked between separate source files
724381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesif test "$gcc" -eq 1; then
725ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes  echo >> configure.log
726381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  cat > $test.c <<EOF
72709eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes#define ZLIB_INTERNAL __attribute__((visibility ("hidden")))
728381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint ZLIB_INTERNAL foo;
729381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughesint main()
730381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes{
731381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  return 0;
7329e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project}
7339e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source ProjectEOF
73409eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes  if tryboth $CC -c $CFLAGS $test.c; then
73509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes    CFLAGS="$CFLAGS -DHAVE_HIDDEN"
73609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes    SFLAGS="$SFLAGS -DHAVE_HIDDEN"
737ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for attribute(visibility) support... Yes." | tee -a configure.log
738381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  else
739ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes    echo "Checking for attribute(visibility) support... No." | tee -a configure.log
740381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes  fi
7419e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectfi
7429e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
743ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes# show the results in the log
744ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho >> configure.log
745ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho ALL = $ALL >> configure.log
746ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho AR = $AR >> configure.log
747ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho ARFLAGS = $ARFLAGS >> configure.log
748ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho CC = $CC >> configure.log
749ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho CFLAGS = $CFLAGS >> configure.log
750ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho CPP = $CPP >> configure.log
751ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho EXE = $EXE >> configure.log
752ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho LDCONFIG = $LDCONFIG >> configure.log
753ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho LDFLAGS = $LDFLAGS >> configure.log
754ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho LDSHARED = $LDSHARED >> configure.log
755ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho LDSHAREDLIBC = $LDSHAREDLIBC >> configure.log
756ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho OBJC = $OBJC >> configure.log
757ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho PIC_OBJC = $PIC_OBJC >> configure.log
758ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho RANLIB = $RANLIB >> configure.log
759ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho SFLAGS = $SFLAGS >> configure.log
760ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho SHAREDLIB = $SHAREDLIB >> configure.log
761ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho SHAREDLIBM = $SHAREDLIBM >> configure.log
762ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho SHAREDLIBV = $SHAREDLIBV >> configure.log
763ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho STATICLIB = $STATICLIB >> configure.log
764ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho TEST = $TEST >> configure.log
765ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho VER = $VER >> configure.log
76609eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughesecho Z_U4 = $Z_U4 >> configure.log
767ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho exec_prefix = $exec_prefix >> configure.log
768ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho includedir = $includedir >> configure.log
769ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho libdir = $libdir >> configure.log
770ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho mandir = $mandir >> configure.log
771ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho prefix = $prefix >> configure.log
772ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho sharedlibdir = $sharedlibdir >> configure.log
773ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughesecho uname = $uname >> configure.log
7749e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project
77509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# udpate Makefile with the configure results
7769e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Projectsed < Makefile.in "
7779e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^CC *=/s#=.*#=$CC#
7789e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^CFLAGS *=/s#=.*#=$CFLAGS#
779381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^SFLAGS *=/s#=.*#=$SFLAGS#
780381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^LDFLAGS *=/s#=.*#=$LDFLAGS#
781381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^LDSHARED *=/s#=.*#=$LDSHARED#
782381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^CPP *=/s#=.*#=$CPP#
783381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^STATICLIB *=/s#=.*#=$STATICLIB#
784381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
785381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
786381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
787ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes/^AR *=/s#=.*#=$AR#
788ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes/^ARFLAGS *=/s#=.*#=$ARFLAGS#
789381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^RANLIB *=/s#=.*#=$RANLIB#
790381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^LDCONFIG *=/s#=.*#=$LDCONFIG#
791381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^LDSHAREDLIBC *=/s#=.*#=$LDSHAREDLIBC#
792381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^EXE *=/s#=.*#=$EXE#
793381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^prefix *=/s#=.*#=$prefix#
794381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^exec_prefix *=/s#=.*#=$exec_prefix#
795381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^libdir *=/s#=.*#=$libdir#
796381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^sharedlibdir *=/s#=.*#=$sharedlibdir#
797381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^includedir *=/s#=.*#=$includedir#
798381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^mandir *=/s#=.*#=$mandir#
799ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes/^OBJC *=/s#=.*#= $OBJC#
800ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes/^PIC_OBJC *=/s#=.*#= $PIC_OBJC#
801381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^all: */s#:.*#: $ALL#
802381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^test: */s#:.*#: $TEST#
803381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes" > Makefile
804381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes
80509eb358bbbb9aad3fe48dd3368c8a7a481cbda1cElliott Hughes# create zlib.pc with the configure results
806381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughessed < zlib.pc.in "
807381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^CC *=/s#=.*#=$CC#
808381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^CFLAGS *=/s#=.*#=$CFLAGS#
8099e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^CPP *=/s#=.*#=$CPP#
8109e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^LDSHARED *=/s#=.*#=$LDSHARED#
811381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^STATICLIB *=/s#=.*#=$STATICLIB#
8129e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
8139e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
8149e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
815ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes/^AR *=/s#=.*#=$AR#
816ee9e11d0d4e3361533860bf04896abb86a291bfbElliott Hughes/^ARFLAGS *=/s#=.*#=$ARFLAGS#
8179e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^RANLIB *=/s#=.*#=$RANLIB#
8189e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^EXE *=/s#=.*#=$EXE#
8199e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^prefix *=/s#=.*#=$prefix#
8209e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^exec_prefix *=/s#=.*#=$exec_prefix#
8219e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^libdir *=/s#=.*#=$libdir#
822381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes/^sharedlibdir *=/s#=.*#=$sharedlibdir#
8239e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^includedir *=/s#=.*#=$includedir#
8249e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^mandir *=/s#=.*#=$mandir#
8259e38dfa2f95fce609707a0941f10af9a785288deThe Android Open Source Project/^LDFLAGS *=/s#=.*#=$LDFLAGS#
826381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes" | sed -e "
827381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughess/\@VERSION\@/$VER/g;
828381716e9396b55b1adb8235b020c37344f60ab07Elliott Hughes" > zlib.pc
82904351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes
83004351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughes# done
83104351a92ecc8429c999acbfc5dfe5aa8bee1d19dElliott Hughesleave 0
832