+++ /dev/null
-#!/bin/sh\r
-# configure script for zlib.\r
-#\r
-# Normally configure builds both a static and a shared library.\r
-# If you want to build just a static library, use: ./configure --static\r
-#\r
-# To impose specific compiler or flags or install directory, use for example:\r
-# prefix=$HOME CC=cc CFLAGS="-O4" ./configure\r
-# or for csh/tcsh users:\r
-# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure)\r
-\r
-# Incorrect settings of CC or CFLAGS may prevent creating a shared library.\r
-# If you have problems, try without defining CC and CFLAGS before reporting\r
-# an error.\r
-\r
-# start off configure.log\r
-echo -------------------- >> configure.log\r
-echo $0 $* >> configure.log\r
-date >> configure.log\r
-\r
-# set command prefix for cross-compilation\r
-if [ -n "${CHOST}" ]; then\r
- uname="`echo "${CHOST}" | sed -e 's/^[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)$/\1/' -e 's/^[^-]*-[^-]*-\([^-]*\)-.*$/\1/'`"\r
- CROSS_PREFIX="${CHOST}-"\r
-fi\r
-\r
-# destination name for static library\r
-STATICLIB=libz.a\r
-\r
-# extract zlib version numbers from zlib.h\r
-VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`\r
-VER3=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < zlib.h`\r
-VER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h`\r
-VER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h`\r
-\r
-# establish commands for library building\r
-if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then\r
- AR=${AR-"${CROSS_PREFIX}ar"}\r
- test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log\r
-else\r
- AR=${AR-"ar"}\r
- test -n "${CROSS_PREFIX}" && echo Using ${AR} | tee -a configure.log\r
-fi\r
-ARFLAGS=${ARFLAGS-"rc"}\r
-if "${CROSS_PREFIX}ranlib" --version >/dev/null 2>/dev/null || test $? -lt 126; then\r
- RANLIB=${RANLIB-"${CROSS_PREFIX}ranlib"}\r
- test -n "${CROSS_PREFIX}" && echo Using ${RANLIB} | tee -a configure.log\r
-else\r
- RANLIB=${RANLIB-"ranlib"}\r
-fi\r
-if "${CROSS_PREFIX}nm" --version >/dev/null 2>/dev/null || test $? -lt 126; then\r
- NM=${NM-"${CROSS_PREFIX}nm"}\r
- test -n "${CROSS_PREFIX}" && echo Using ${NM} | tee -a configure.log\r
-else\r
- NM=${NM-"nm"}\r
-fi\r
-\r
-# set defaults before processing command line options\r
-LDCONFIG=${LDCONFIG-"ldconfig"}\r
-LDSHAREDLIBC="${LDSHAREDLIBC--lc}"\r
-ARCHS=\r
-prefix=${prefix-/usr/local}\r
-exec_prefix=${exec_prefix-'${prefix}'}\r
-libdir=${libdir-'${exec_prefix}/lib'}\r
-sharedlibdir=${sharedlibdir-'${libdir}'}\r
-includedir=${includedir-'${prefix}/include'}\r
-mandir=${mandir-'${prefix}/share/man'}\r
-shared_ext='.so'\r
-shared=1\r
-solo=0\r
-cover=0\r
-zprefix=0\r
-zconst=0\r
-build64=0\r
-gcc=0\r
-old_cc="$CC"\r
-old_cflags="$CFLAGS"\r
-OBJC='$(OBJZ) $(OBJG)'\r
-PIC_OBJC='$(PIC_OBJZ) $(PIC_OBJG)'\r
-\r
-# leave this script, optionally in a bad way\r
-leave()\r
-{\r
- if test "$*" != "0"; then\r
- echo "** $0 aborting." | tee -a configure.log\r
- fi\r
- rm -f $test.[co] $test $test$shared_ext $test.gcno ./--version\r
- echo -------------------- >> configure.log\r
- echo >> configure.log\r
- echo >> configure.log\r
- exit $1\r
-}\r
-\r
-# process command line options\r
-while test $# -ge 1\r
-do\r
-case "$1" in\r
- -h* | --help)\r
- echo 'usage:' | tee -a configure.log\r
- echo ' configure [--const] [--zprefix] [--prefix=PREFIX] [--eprefix=EXPREFIX]' | tee -a configure.log\r
- echo ' [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log\r
- echo ' [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log\r
- exit 0 ;;\r
- -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;\r
- -e*=* | --eprefix=*) exec_prefix=`echo $1 | sed 's/.*=//'`; shift ;;\r
- -l*=* | --libdir=*) libdir=`echo $1 | sed 's/.*=//'`; shift ;;\r
- --sharedlibdir=*) sharedlibdir=`echo $1 | sed 's/.*=//'`; shift ;;\r
- -i*=* | --includedir=*) includedir=`echo $1 | sed 's/.*=//'`;shift ;;\r
- -u*=* | --uname=*) uname=`echo $1 | sed 's/.*=//'`;shift ;;\r
- -p* | --prefix) prefix="$2"; shift; shift ;;\r
- -e* | --eprefix) exec_prefix="$2"; shift; shift ;;\r
- -l* | --libdir) libdir="$2"; shift; shift ;;\r
- -i* | --includedir) includedir="$2"; shift; shift ;;\r
- -s* | --shared | --enable-shared) shared=1; shift ;;\r
- -t | --static) shared=0; shift ;;\r
- --solo) solo=1; shift ;;\r
- --cover) cover=1; shift ;;\r
- -z* | --zprefix) zprefix=1; shift ;;\r
- -6* | --64) build64=1; shift ;;\r
- -a*=* | --archs=*) ARCHS=`echo $1 | sed 's/.*=//'`; shift ;;\r
- --sysconfdir=*) echo "ignored option: --sysconfdir" | tee -a configure.log; shift ;;\r
- --localstatedir=*) echo "ignored option: --localstatedir" | tee -a configure.log; shift ;;\r
- -c* | --const) zconst=1; shift ;;\r
- *)\r
- echo "unknown option: $1" | tee -a configure.log\r
- echo "$0 --help for help" | tee -a configure.log\r
- leave 1;;\r
- esac\r
-done\r
-\r
-# temporary file name\r
-test=ztest$$\r
-\r
-# put arguments in log, also put test file in log if used in arguments\r
-show()\r
-{\r
- case "$*" in\r
- *$test.c*)\r
- echo === $test.c === >> configure.log\r
- cat $test.c >> configure.log\r
- echo === >> configure.log;;\r
- esac\r
- echo $* >> configure.log\r
-}\r
-\r
-# check for gcc vs. cc and set compile and link flags based on the system identified by uname\r
-cat > $test.c <<EOF\r
-extern int getchar();\r
-int hello() {return getchar();}\r
-EOF\r
-\r
-test -z "$CC" && echo Checking for ${CROSS_PREFIX}gcc... | tee -a configure.log\r
-cc=${CC-${CROSS_PREFIX}gcc}\r
-cflags=${CFLAGS-"-O3"}\r
-# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure\r
-case "$cc" in\r
- *gcc*) gcc=1 ;;\r
- *clang*) gcc=1 ;;\r
-esac\r
-case `$cc -v 2>&1` in\r
- *gcc*) gcc=1 ;;\r
-esac\r
-\r
-show $cc -c $test.c\r
-if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then\r
- echo ... using gcc >> configure.log\r
- CC="$cc"\r
- CFLAGS="${CFLAGS--O3} ${ARCHS}"\r
- SFLAGS="${CFLAGS--O3} -fPIC"\r
- LDFLAGS="${LDFLAGS} ${ARCHS}"\r
- if test $build64 -eq 1; then\r
- CFLAGS="${CFLAGS} -m64"\r
- SFLAGS="${SFLAGS} -m64"\r
- fi\r
- if test "${ZLIBGCCWARN}" = "YES"; then\r
- if test "$zconst" -eq 1; then\r
- CFLAGS="${CFLAGS} -Wall -Wextra -Wcast-qual -pedantic -DZLIB_CONST"\r
- else\r
- CFLAGS="${CFLAGS} -Wall -Wextra -pedantic"\r
- fi\r
- fi\r
- if test -z "$uname"; then\r
- uname=`(uname -s || echo unknown) 2>/dev/null`\r
- fi\r
- case "$uname" in\r
- Linux* | linux* | GNU | GNU/* | solaris*)\r
- LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"} ;;\r
- *BSD | *bsd* | DragonFly)\r
- LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}\r
- LDCONFIG="ldconfig -m" ;;\r
- CYGWIN* | Cygwin* | cygwin* | OS/2*)\r
- EXE='.exe' ;;\r
- MINGW* | mingw*)\r
-# temporary bypass\r
- rm -f $test.[co] $test $test$shared_ext\r
- echo "Please use win32/Makefile.gcc instead." | tee -a configure.log\r
- leave 1\r
- LDSHARED=${LDSHARED-"$cc -shared"}\r
- LDSHAREDLIBC=""\r
- EXE='.exe' ;;\r
- QNX*) # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4\r
- # (alain.bonnefoy@icbt.com)\r
- LDSHARED=${LDSHARED-"$cc -shared -Wl,-hlibz.so.1"} ;;\r
- HP-UX*)\r
- LDSHARED=${LDSHARED-"$cc -shared $SFLAGS"}\r
- case `(uname -m || echo unknown) 2>/dev/null` in\r
- ia64)\r
- shared_ext='.so'\r
- SHAREDLIB='libz.so' ;;\r
- *)\r
- shared_ext='.sl'\r
- SHAREDLIB='libz.sl' ;;\r
- esac ;;\r
- Darwin* | darwin*)\r
- shared_ext='.dylib'\r
- SHAREDLIB=libz$shared_ext\r
- SHAREDLIBV=libz.$VER$shared_ext\r
- SHAREDLIBM=libz.$VER1$shared_ext\r
- LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}\r
- if libtool -V 2>&1 | grep Apple > /dev/null; then\r
- AR="libtool"\r
- else\r
- AR="/usr/bin/libtool"\r
- fi\r
- ARFLAGS="-o" ;;\r
- *) LDSHARED=${LDSHARED-"$cc -shared"} ;;\r
- esac\r
-else\r
- # find system name and corresponding cc options\r
- CC=${CC-cc}\r
- gcc=0\r
- echo ... using $CC >> configure.log\r
- if test -z "$uname"; then\r
- uname=`(uname -sr || echo unknown) 2>/dev/null`\r
- fi\r
- case "$uname" in\r
- HP-UX*) SFLAGS=${CFLAGS-"-O +z"}\r
- CFLAGS=${CFLAGS-"-O"}\r
-# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"}\r
- LDSHARED=${LDSHARED-"ld -b"}\r
- case `(uname -m || echo unknown) 2>/dev/null` in\r
- ia64)\r
- shared_ext='.so'\r
- SHAREDLIB='libz.so' ;;\r
- *)\r
- shared_ext='.sl'\r
- SHAREDLIB='libz.sl' ;;\r
- esac ;;\r
- IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."}\r
- CFLAGS=${CFLAGS-"-ansi -O2"}\r
- LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so.1"} ;;\r
- OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"}\r
- CFLAGS=${CFLAGS-"-O -std1"}\r
- LDFLAGS="${LDFLAGS} -Wl,-rpath,."\r
- LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"} ;;\r
- OSF1*) SFLAGS=${CFLAGS-"-O -std1"}\r
- CFLAGS=${CFLAGS-"-O -std1"}\r
- LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so.1"} ;;\r
- QNX*) SFLAGS=${CFLAGS-"-4 -O"}\r
- CFLAGS=${CFLAGS-"-4 -O"}\r
- LDSHARED=${LDSHARED-"cc"}\r
- RANLIB=${RANLIB-"true"}\r
- AR="cc"\r
- ARFLAGS="-A" ;;\r
- SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "}\r
- CFLAGS=${CFLAGS-"-O3"}\r
- LDSHARED=${LDSHARED-"cc -dy -KPIC -G"} ;;\r
- SunOS\ 5* | solaris*)\r
- LDSHARED=${LDSHARED-"cc -G -h libz$shared_ext.$VER1"}\r
- SFLAGS=${CFLAGS-"-fast -KPIC"}\r
- CFLAGS=${CFLAGS-"-fast"}\r
- if test $build64 -eq 1; then\r
- # old versions of SunPRO/Workshop/Studio don't support -m64,\r
- # but newer ones do. Check for it.\r
- flag64=`$CC -flags | egrep -- '^-m64'`\r
- if test x"$flag64" != x"" ; then\r
- CFLAGS="${CFLAGS} -m64"\r
- SFLAGS="${SFLAGS} -m64"\r
- else\r
- case `(uname -m || echo unknown) 2>/dev/null` in\r
- i86*)\r
- SFLAGS="$SFLAGS -xarch=amd64"\r
- CFLAGS="$CFLAGS -xarch=amd64" ;;\r
- *)\r
- SFLAGS="$SFLAGS -xarch=v9"\r
- CFLAGS="$CFLAGS -xarch=v9" ;;\r
- esac\r
- fi\r
- fi\r
- ;;\r
- SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"}\r
- CFLAGS=${CFLAGS-"-O2"}\r
- LDSHARED=${LDSHARED-"ld"} ;;\r
- SunStudio\ 9*) SFLAGS=${CFLAGS-"-fast -xcode=pic32 -xtarget=ultra3 -xarch=v9b"}\r
- CFLAGS=${CFLAGS-"-fast -xtarget=ultra3 -xarch=v9b"}\r
- LDSHARED=${LDSHARED-"cc -xarch=v9b"} ;;\r
- UNIX_System_V\ 4.2.0)\r
- SFLAGS=${CFLAGS-"-KPIC -O"}\r
- CFLAGS=${CFLAGS-"-O"}\r
- LDSHARED=${LDSHARED-"cc -G"} ;;\r
- UNIX_SV\ 4.2MP)\r
- SFLAGS=${CFLAGS-"-Kconform_pic -O"}\r
- CFLAGS=${CFLAGS-"-O"}\r
- LDSHARED=${LDSHARED-"cc -G"} ;;\r
- OpenUNIX\ 5)\r
- SFLAGS=${CFLAGS-"-KPIC -O"}\r
- CFLAGS=${CFLAGS-"-O"}\r
- LDSHARED=${LDSHARED-"cc -G"} ;;\r
- AIX*) # Courtesy of dbakker@arrayasolutions.com\r
- SFLAGS=${CFLAGS-"-O -qmaxmem=8192"}\r
- CFLAGS=${CFLAGS-"-O -qmaxmem=8192"}\r
- LDSHARED=${LDSHARED-"xlc -G"} ;;\r
- # send working options for other systems to zlib@gzip.org\r
- *) SFLAGS=${CFLAGS-"-O"}\r
- CFLAGS=${CFLAGS-"-O"}\r
- LDSHARED=${LDSHARED-"cc -shared"} ;;\r
- esac\r
-fi\r
-\r
-# destination names for shared library if not defined above\r
-SHAREDLIB=${SHAREDLIB-"libz$shared_ext"}\r
-SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}\r
-SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}\r
-\r
-echo >> configure.log\r
-\r
-# define functions for testing compiler and library characteristics and logging the results\r
-\r
-cat > $test.c <<EOF\r
-#error error\r
-EOF\r
-if ($CC -c $CFLAGS $test.c) 2>/dev/null; then\r
- try()\r
- {\r
- show $*\r
- test "`( $* ) 2>&1 | tee -a configure.log`" = ""\r
- }\r
- echo - using any output from compiler to indicate an error >> configure.log\r
-else\r
-try()\r
-{\r
- show $*\r
- ( $* ) >> configure.log 2>&1\r
- ret=$?\r
- if test $ret -ne 0; then\r
- echo "(exit code "$ret")" >> configure.log\r
- fi\r
- return $ret\r
-}\r
-fi\r
-\r
-tryboth()\r
-{\r
- show $*\r
- got=`( $* ) 2>&1`\r
- ret=$?\r
- printf %s "$got" >> configure.log\r
- if test $ret -ne 0; then\r
- return $ret\r
- fi\r
- test "$got" = ""\r
-}\r
-\r
-cat > $test.c << EOF\r
-int foo() { return 0; }\r
-EOF\r
-echo "Checking for obsessive-compulsive compiler options..." >> configure.log\r
-if try $CC -c $CFLAGS $test.c; then\r
- :\r
-else\r
- echo "Compiler error reporting is too harsh for $0 (perhaps remove -Werror)." | tee -a configure.log\r
- leave 1\r
-fi\r
-\r
-echo >> configure.log\r
-\r
-# see if shared library build supported\r
-cat > $test.c <<EOF\r
-extern int getchar();\r
-int hello() {return getchar();}\r
-EOF\r
-if test $shared -eq 1; then\r
- echo Checking for shared library support... | tee -a configure.log\r
- # we must test in two steps (cc then ld), required at least on SunOS 4.x\r
- if try $CC -w -c $SFLAGS $test.c &&\r
- try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then\r
- echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log\r
- elif test -z "$old_cc" -a -z "$old_cflags"; then\r
- echo No shared library support. | tee -a configure.log\r
- shared=0;\r
- else\r
- echo 'No shared library support; try without defining CC and CFLAGS' | tee -a configure.log\r
- shared=0;\r
- fi\r
-fi\r
-if test $shared -eq 0; then\r
- LDSHARED="$CC"\r
- ALL="static"\r
- TEST="all teststatic"\r
- SHAREDLIB=""\r
- SHAREDLIBV=""\r
- SHAREDLIBM=""\r
- echo Building static library $STATICLIB version $VER with $CC. | tee -a configure.log\r
-else\r
- ALL="static shared"\r
- TEST="all teststatic testshared"\r
-fi\r
-\r
-# check for underscores in external names for use by assembler code\r
-CPP=${CPP-"$CC -E"}\r
-case $CFLAGS in\r
- *ASMV*)\r
- echo >> configure.log\r
- show "$NM $test.o | grep _hello"\r
- if test "`$NM $test.o | grep _hello | tee -a configure.log`" = ""; then\r
- CPP="$CPP -DNO_UNDERLINE"\r
- echo Checking for underline in external names... No. | tee -a configure.log\r
- else\r
- echo Checking for underline in external names... Yes. | tee -a configure.log\r
- fi ;;\r
-esac\r
-\r
-echo >> configure.log\r
-\r
-# check for large file support, and if none, check for fseeko()\r
-cat > $test.c <<EOF\r
-#include <sys/types.h>\r
-off64_t dummy = 0;\r
-EOF\r
-if try $CC -c $CFLAGS -D_LARGEFILE64_SOURCE=1 $test.c; then\r
- CFLAGS="${CFLAGS} -D_LARGEFILE64_SOURCE=1"\r
- SFLAGS="${SFLAGS} -D_LARGEFILE64_SOURCE=1"\r
- ALL="${ALL} all64"\r
- TEST="${TEST} test64"\r
- echo "Checking for off64_t... Yes." | tee -a configure.log\r
- echo "Checking for fseeko... Yes." | tee -a configure.log\r
-else\r
- echo "Checking for off64_t... No." | tee -a configure.log\r
- echo >> configure.log\r
- cat > $test.c <<EOF\r
-#include <stdio.h>\r
-int main(void) {\r
- fseeko(NULL, 0, 0);\r
- return 0;\r
-}\r
-EOF\r
- if try $CC $CFLAGS -o $test $test.c; then\r
- echo "Checking for fseeko... Yes." | tee -a configure.log\r
- else\r
- CFLAGS="${CFLAGS} -DNO_FSEEKO"\r
- SFLAGS="${SFLAGS} -DNO_FSEEKO"\r
- echo "Checking for fseeko... No." | tee -a configure.log\r
- fi\r
-fi\r
-\r
-echo >> configure.log\r
-\r
-# check for strerror() for use by gz* functions\r
-cat > $test.c <<EOF\r
-#include <string.h>\r
-#include <errno.h>\r
-int main() { return strlen(strerror(errno)); }\r
-EOF\r
-if try $CC $CFLAGS -o $test $test.c; then\r
- echo "Checking for strerror... Yes." | tee -a configure.log\r
-else\r
- CFLAGS="${CFLAGS} -DNO_STRERROR"\r
- SFLAGS="${SFLAGS} -DNO_STRERROR"\r
- echo "Checking for strerror... No." | tee -a configure.log\r
-fi\r
-\r
-# copy clean zconf.h for subsequent edits\r
-cp -p zconf.h.in zconf.h\r
-\r
-echo >> configure.log\r
-\r
-# check for unistd.h and save result in zconf.h\r
-cat > $test.c <<EOF\r
-#include <unistd.h>\r
-int main() { return 0; }\r
-EOF\r
-if try $CC -c $CFLAGS $test.c; then\r
- sed < zconf.h "/^#ifdef HAVE_UNISTD_H.* may be/s/def HAVE_UNISTD_H\(.*\) may be/ 1\1 was/" > zconf.temp.h\r
- mv zconf.temp.h zconf.h\r
- echo "Checking for unistd.h... Yes." | tee -a configure.log\r
-else\r
- echo "Checking for unistd.h... No." | tee -a configure.log\r
-fi\r
-\r
-echo >> configure.log\r
-\r
-# check for stdarg.h and save result in zconf.h\r
-cat > $test.c <<EOF\r
-#include <stdarg.h>\r
-int main() { return 0; }\r
-EOF\r
-if try $CC -c $CFLAGS $test.c; then\r
- sed < zconf.h "/^#ifdef HAVE_STDARG_H.* may be/s/def HAVE_STDARG_H\(.*\) may be/ 1\1 was/" > zconf.temp.h\r
- mv zconf.temp.h zconf.h\r
- echo "Checking for stdarg.h... Yes." | tee -a configure.log\r
-else\r
- echo "Checking for stdarg.h... No." | tee -a configure.log\r
-fi\r
-\r
-# if the z_ prefix was requested, save that in zconf.h\r
-if test $zprefix -eq 1; then\r
- sed < zconf.h "/#ifdef Z_PREFIX.* may be/s/def Z_PREFIX\(.*\) may be/ 1\1 was/" > zconf.temp.h\r
- mv zconf.temp.h zconf.h\r
- echo >> configure.log\r
- echo "Using z_ prefix on all symbols." | tee -a configure.log\r
-fi\r
-\r
-# if --solo compilation was requested, save that in zconf.h and remove gz stuff from object lists\r
-if test $solo -eq 1; then\r
- sed '/#define ZCONF_H/a\\r
-#define Z_SOLO\r
-\r
-' < zconf.h > zconf.temp.h\r
- mv zconf.temp.h zconf.h\r
-OBJC='$(OBJZ)'\r
-PIC_OBJC='$(PIC_OBJZ)'\r
-fi\r
-\r
-# if code coverage testing was requested, use older gcc if defined, e.g. "gcc-4.2" on Mac OS X\r
-if test $cover -eq 1; then\r
- CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"\r
- if test -n "$GCC_CLASSIC"; then\r
- CC=$GCC_CLASSIC\r
- fi\r
-fi\r
-\r
-echo >> configure.log\r
-\r
-# conduct a series of tests to resolve eight possible cases of using "vs" or "s" printf functions\r
-# (using stdarg or not), with or without "n" (proving size of buffer), and with or without a\r
-# return value. The most secure result is vsnprintf() with a return value. snprintf() with a\r
-# return value is secure as well, but then gzprintf() will be limited to 20 arguments.\r
-cat > $test.c <<EOF\r
-#include <stdio.h>\r
-#include <stdarg.h>\r
-#include "zconf.h"\r
-int main()\r
-{\r
-#ifndef STDC\r
- choke me\r
-#endif\r
- return 0;\r
-}\r
-EOF\r
-if try $CC -c $CFLAGS $test.c; then\r
- echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()." | tee -a configure.log\r
-\r
- echo >> configure.log\r
- cat > $test.c <<EOF\r
-#include <stdio.h>\r
-#include <stdarg.h>\r
-int mytest(const char *fmt, ...)\r
-{\r
- char buf[20];\r
- va_list ap;\r
- va_start(ap, fmt);\r
- vsnprintf(buf, sizeof(buf), fmt, ap);\r
- va_end(ap);\r
- return 0;\r
-}\r
-int main()\r
-{\r
- return (mytest("Hello%d\n", 1));\r
-}\r
-EOF\r
- if try $CC $CFLAGS -o $test $test.c; then\r
- echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log\r
-\r
- echo >> configure.log\r
- cat >$test.c <<EOF\r
-#include <stdio.h>\r
-#include <stdarg.h>\r
-int mytest(const char *fmt, ...)\r
-{\r
- int n;\r
- char buf[20];\r
- va_list ap;\r
- va_start(ap, fmt);\r
- n = vsnprintf(buf, sizeof(buf), fmt, ap);\r
- va_end(ap);\r
- return n;\r
-}\r
-int main()\r
-{\r
- return (mytest("Hello%d\n", 1));\r
-}\r
-EOF\r
-\r
- if try $CC -c $CFLAGS $test.c; then\r
- echo "Checking for return value of vsnprintf()... Yes." | tee -a configure.log\r
- else\r
- CFLAGS="$CFLAGS -DHAS_vsnprintf_void"\r
- SFLAGS="$SFLAGS -DHAS_vsnprintf_void"\r
- echo "Checking for return value of vsnprintf()... No." | tee -a configure.log\r
- echo " WARNING: apparently vsnprintf() does not return a value. zlib" | tee -a configure.log\r
- echo " can build but will be open to possible string-format security" | tee -a configure.log\r
- echo " vulnerabilities." | tee -a configure.log\r
- fi\r
- else\r
- CFLAGS="$CFLAGS -DNO_vsnprintf"\r
- SFLAGS="$SFLAGS -DNO_vsnprintf"\r
- echo "Checking for vsnprintf() in stdio.h... No." | tee -a configure.log\r
- echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" | tee -a configure.log\r
- echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log\r
- echo " vulnerabilities." | tee -a configure.log\r
-\r
- echo >> configure.log\r
- cat >$test.c <<EOF\r
-#include <stdio.h>\r
-#include <stdarg.h>\r
-int mytest(const char *fmt, ...)\r
-{\r
- int n;\r
- char buf[20];\r
- va_list ap;\r
- va_start(ap, fmt);\r
- n = vsprintf(buf, fmt, ap);\r
- va_end(ap);\r
- return n;\r
-}\r
-int main()\r
-{\r
- return (mytest("Hello%d\n", 1));\r
-}\r
-EOF\r
-\r
- if try $CC -c $CFLAGS $test.c; then\r
- echo "Checking for return value of vsprintf()... Yes." | tee -a configure.log\r
- else\r
- CFLAGS="$CFLAGS -DHAS_vsprintf_void"\r
- SFLAGS="$SFLAGS -DHAS_vsprintf_void"\r
- echo "Checking for return value of vsprintf()... No." | tee -a configure.log\r
- echo " WARNING: apparently vsprintf() does not return a value. zlib" | tee -a configure.log\r
- echo " can build but will be open to possible string-format security" | tee -a configure.log\r
- echo " vulnerabilities." | tee -a configure.log\r
- fi\r
- fi\r
-else\r
- echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()." | tee -a configure.log\r
-\r
- echo >> configure.log\r
- cat >$test.c <<EOF\r
-#include <stdio.h>\r
-int mytest()\r
-{\r
- char buf[20];\r
- snprintf(buf, sizeof(buf), "%s", "foo");\r
- return 0;\r
-}\r
-int main()\r
-{\r
- return (mytest());\r
-}\r
-EOF\r
-\r
- if try $CC $CFLAGS -o $test $test.c; then\r
- echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log\r
-\r
- echo >> configure.log\r
- cat >$test.c <<EOF\r
-#include <stdio.h>\r
-int mytest()\r
-{\r
- char buf[20];\r
- return snprintf(buf, sizeof(buf), "%s", "foo");\r
-}\r
-int main()\r
-{\r
- return (mytest());\r
-}\r
-EOF\r
-\r
- if try $CC -c $CFLAGS $test.c; then\r
- echo "Checking for return value of snprintf()... Yes." | tee -a configure.log\r
- else\r
- CFLAGS="$CFLAGS -DHAS_snprintf_void"\r
- SFLAGS="$SFLAGS -DHAS_snprintf_void"\r
- echo "Checking for return value of snprintf()... No." | tee -a configure.log\r
- echo " WARNING: apparently snprintf() does not return a value. zlib" | tee -a configure.log\r
- echo " can build but will be open to possible string-format security" | tee -a configure.log\r
- echo " vulnerabilities." | tee -a configure.log\r
- fi\r
- else\r
- CFLAGS="$CFLAGS -DNO_snprintf"\r
- SFLAGS="$SFLAGS -DNO_snprintf"\r
- echo "Checking for snprintf() in stdio.h... No." | tee -a configure.log\r
- echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" | tee -a configure.log\r
- echo " can build but will be open to possible buffer-overflow security" | tee -a configure.log\r
- echo " vulnerabilities." | tee -a configure.log\r
-\r
- echo >> configure.log\r
- cat >$test.c <<EOF\r
-#include <stdio.h>\r
-int mytest()\r
-{\r
- char buf[20];\r
- return sprintf(buf, "%s", "foo");\r
-}\r
-int main()\r
-{\r
- return (mytest());\r
-}\r
-EOF\r
-\r
- if try $CC -c $CFLAGS $test.c; then\r
- echo "Checking for return value of sprintf()... Yes." | tee -a configure.log\r
- else\r
- CFLAGS="$CFLAGS -DHAS_sprintf_void"\r
- SFLAGS="$SFLAGS -DHAS_sprintf_void"\r
- echo "Checking for return value of sprintf()... No." | tee -a configure.log\r
- echo " WARNING: apparently sprintf() does not return a value. zlib" | tee -a configure.log\r
- echo " can build but will be open to possible string-format security" | tee -a configure.log\r
- echo " vulnerabilities." | tee -a configure.log\r
- fi\r
- fi\r
-fi\r
-\r
-# see if we can hide zlib internal symbols that are linked between separate source files\r
-if test "$gcc" -eq 1; then\r
- echo >> configure.log\r
- cat > $test.c <<EOF\r
-#define ZLIB_INTERNAL __attribute__((visibility ("hidden")))\r
-int ZLIB_INTERNAL foo;\r
-int main()\r
-{\r
- return 0;\r
-}\r
-EOF\r
- if tryboth $CC -c $CFLAGS $test.c; then\r
- CFLAGS="$CFLAGS -DHAVE_HIDDEN"\r
- SFLAGS="$SFLAGS -DHAVE_HIDDEN"\r
- echo "Checking for attribute(visibility) support... Yes." | tee -a configure.log\r
- else\r
- echo "Checking for attribute(visibility) support... No." | tee -a configure.log\r
- fi\r
-fi\r
-\r
-# show the results in the log\r
-echo >> configure.log\r
-echo ALL = $ALL >> configure.log\r
-echo AR = $AR >> configure.log\r
-echo ARFLAGS = $ARFLAGS >> configure.log\r
-echo CC = $CC >> configure.log\r
-echo CFLAGS = $CFLAGS >> configure.log\r
-echo CPP = $CPP >> configure.log\r
-echo EXE = $EXE >> configure.log\r
-echo LDCONFIG = $LDCONFIG >> configure.log\r
-echo LDFLAGS = $LDFLAGS >> configure.log\r
-echo LDSHARED = $LDSHARED >> configure.log\r
-echo LDSHAREDLIBC = $LDSHAREDLIBC >> configure.log\r
-echo OBJC = $OBJC >> configure.log\r
-echo PIC_OBJC = $PIC_OBJC >> configure.log\r
-echo RANLIB = $RANLIB >> configure.log\r
-echo SFLAGS = $SFLAGS >> configure.log\r
-echo SHAREDLIB = $SHAREDLIB >> configure.log\r
-echo SHAREDLIBM = $SHAREDLIBM >> configure.log\r
-echo SHAREDLIBV = $SHAREDLIBV >> configure.log\r
-echo STATICLIB = $STATICLIB >> configure.log\r
-echo TEST = $TEST >> configure.log\r
-echo VER = $VER >> configure.log\r
-echo Z_U4 = $Z_U4 >> configure.log\r
-echo exec_prefix = $exec_prefix >> configure.log\r
-echo includedir = $includedir >> configure.log\r
-echo libdir = $libdir >> configure.log\r
-echo mandir = $mandir >> configure.log\r
-echo prefix = $prefix >> configure.log\r
-echo sharedlibdir = $sharedlibdir >> configure.log\r
-echo uname = $uname >> configure.log\r
-\r
-# udpate Makefile with the configure results\r
-sed < Makefile.in "\r
-/^CC *=/s#=.*#=$CC#\r
-/^CFLAGS *=/s#=.*#=$CFLAGS#\r
-/^SFLAGS *=/s#=.*#=$SFLAGS#\r
-/^LDFLAGS *=/s#=.*#=$LDFLAGS#\r
-/^LDSHARED *=/s#=.*#=$LDSHARED#\r
-/^CPP *=/s#=.*#=$CPP#\r
-/^STATICLIB *=/s#=.*#=$STATICLIB#\r
-/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#\r
-/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#\r
-/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#\r
-/^AR *=/s#=.*#=$AR#\r
-/^ARFLAGS *=/s#=.*#=$ARFLAGS#\r
-/^RANLIB *=/s#=.*#=$RANLIB#\r
-/^LDCONFIG *=/s#=.*#=$LDCONFIG#\r
-/^LDSHAREDLIBC *=/s#=.*#=$LDSHAREDLIBC#\r
-/^EXE *=/s#=.*#=$EXE#\r
-/^prefix *=/s#=.*#=$prefix#\r
-/^exec_prefix *=/s#=.*#=$exec_prefix#\r
-/^libdir *=/s#=.*#=$libdir#\r
-/^sharedlibdir *=/s#=.*#=$sharedlibdir#\r
-/^includedir *=/s#=.*#=$includedir#\r
-/^mandir *=/s#=.*#=$mandir#\r
-/^OBJC *=/s#=.*#= $OBJC#\r
-/^PIC_OBJC *=/s#=.*#= $PIC_OBJC#\r
-/^all: */s#:.*#: $ALL#\r
-/^test: */s#:.*#: $TEST#\r
-" > Makefile\r
-\r
-# create zlib.pc with the configure results\r
-sed < zlib.pc.in "\r
-/^CC *=/s#=.*#=$CC#\r
-/^CFLAGS *=/s#=.*#=$CFLAGS#\r
-/^CPP *=/s#=.*#=$CPP#\r
-/^LDSHARED *=/s#=.*#=$LDSHARED#\r
-/^STATICLIB *=/s#=.*#=$STATICLIB#\r
-/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#\r
-/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#\r
-/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#\r
-/^AR *=/s#=.*#=$AR#\r
-/^ARFLAGS *=/s#=.*#=$ARFLAGS#\r
-/^RANLIB *=/s#=.*#=$RANLIB#\r
-/^EXE *=/s#=.*#=$EXE#\r
-/^prefix *=/s#=.*#=$prefix#\r
-/^exec_prefix *=/s#=.*#=$exec_prefix#\r
-/^libdir *=/s#=.*#=$libdir#\r
-/^sharedlibdir *=/s#=.*#=$sharedlibdir#\r
-/^includedir *=/s#=.*#=$includedir#\r
-/^mandir *=/s#=.*#=$mandir#\r
-/^LDFLAGS *=/s#=.*#=$LDFLAGS#\r
-" | sed -e "\r
-s/\@VERSION\@/$VER/g;\r
-" > zlib.pc\r
-\r
-# done\r
-leave 0\r