1*10465441SEvalZero#!/bin/sh 2*10465441SEvalZero# configure script for zlib. This script is needed only if 3*10465441SEvalZero# you wish to build a shared library and your system supports them, 4*10465441SEvalZero# of if you need special compiler, flags or install directory. 5*10465441SEvalZero# Otherwise, you can just use directly "make test; make install" 6*10465441SEvalZero# 7*10465441SEvalZero# To create a shared library, use "configure --shared"; by default a static 8*10465441SEvalZero# library is created. If the primitive shared library support provided here 9*10465441SEvalZero# does not work, use ftp://prep.ai.mit.edu/pub/gnu/libtool-*.tar.gz 10*10465441SEvalZero# 11*10465441SEvalZero# To impose specific compiler or flags or install directory, use for example: 12*10465441SEvalZero# prefix=$HOME CC=cc CFLAGS="-O4" ./configure 13*10465441SEvalZero# or for csh/tcsh users: 14*10465441SEvalZero# (setenv prefix $HOME; setenv CC cc; setenv CFLAGS "-O4"; ./configure) 15*10465441SEvalZero# LDSHARED is the command to be used to create a shared library 16*10465441SEvalZero 17*10465441SEvalZero# Incorrect settings of CC or CFLAGS may prevent creating a shared library. 18*10465441SEvalZero# If you have problems, try without defining CC and CFLAGS before reporting 19*10465441SEvalZero# an error. 20*10465441SEvalZero 21*10465441SEvalZeroLIBS=libz.a 22*10465441SEvalZeroLDFLAGS="-L. ${LIBS}" 23*10465441SEvalZeroVER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h` 24*10465441SEvalZeroVER2=`sed -n -e '/VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < zlib.h` 25*10465441SEvalZeroVER1=`sed -n -e '/VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < zlib.h` 26*10465441SEvalZeroAR=${AR-"ar rc"} 27*10465441SEvalZeroRANLIB=${RANLIB-"ranlib"} 28*10465441SEvalZeroprefix=${prefix-/usr/local} 29*10465441SEvalZeroexec_prefix=${exec_prefix-'${prefix}'} 30*10465441SEvalZerolibdir=${libdir-'${exec_prefix}/lib'} 31*10465441SEvalZeroincludedir=${includedir-'${prefix}/include'} 32*10465441SEvalZeromandir=${mandir-'${prefix}/share/man'} 33*10465441SEvalZeroshared_ext='.so' 34*10465441SEvalZeroshared=0 35*10465441SEvalZerogcc=0 36*10465441SEvalZeroold_cc="$CC" 37*10465441SEvalZeroold_cflags="$CFLAGS" 38*10465441SEvalZero 39*10465441SEvalZerowhile test $# -ge 1 40*10465441SEvalZerodo 41*10465441SEvalZerocase "$1" in 42*10465441SEvalZero -h* | --h*) 43*10465441SEvalZero echo 'usage:' 44*10465441SEvalZero echo ' configure [--shared] [--prefix=PREFIX] [--exec_prefix=EXPREFIX]' 45*10465441SEvalZero echo ' [--libdir=LIBDIR] [--includedir=INCLUDEDIR]' 46*10465441SEvalZero exit 0;; 47*10465441SEvalZero -p*=* | --p*=*) prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; 48*10465441SEvalZero -e*=* | --e*=*) exec_prefix=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; 49*10465441SEvalZero -l*=* | --libdir=*) libdir=`echo $1 | sed 's/[-a-z_]*=//'`; shift;; 50*10465441SEvalZero -i*=* | --includedir=*) includedir=`echo $1 | sed 's/[-a-z_]*=//'`;shift;; 51*10465441SEvalZero -p* | --p*) prefix="$2"; shift; shift;; 52*10465441SEvalZero -e* | --e*) exec_prefix="$2"; shift; shift;; 53*10465441SEvalZero -l* | --l*) libdir="$2"; shift; shift;; 54*10465441SEvalZero -i* | --i*) includedir="$2"; shift; shift;; 55*10465441SEvalZero -s* | --s*) shared=1; shift;; 56*10465441SEvalZero *) echo "unknown option: $1"; echo "$0 --help for help"; exit 1;; 57*10465441SEvalZero esac 58*10465441SEvalZerodone 59*10465441SEvalZero 60*10465441SEvalZerotest=ztest$$ 61*10465441SEvalZerocat > $test.c <<EOF 62*10465441SEvalZeroextern int getchar(); 63*10465441SEvalZeroint hello() {return getchar();} 64*10465441SEvalZeroEOF 65*10465441SEvalZero 66*10465441SEvalZerotest -z "$CC" && echo Checking for gcc... 67*10465441SEvalZerocc=${CC-gcc} 68*10465441SEvalZerocflags=${CFLAGS-"-O3"} 69*10465441SEvalZero# to force the asm version use: CFLAGS="-O3 -DASMV" ./configure 70*10465441SEvalZerocase "$cc" in 71*10465441SEvalZero *gcc*) gcc=1;; 72*10465441SEvalZeroesac 73*10465441SEvalZero 74*10465441SEvalZeroif test "$gcc" -eq 1 && ($cc -c $cflags $test.c) 2>/dev/null; then 75*10465441SEvalZero CC="$cc" 76*10465441SEvalZero SFLAGS=${CFLAGS-"-fPIC -O3"} 77*10465441SEvalZero CFLAGS="$cflags" 78*10465441SEvalZero case `(uname -s || echo unknown) 2>/dev/null` in 79*10465441SEvalZero Linux | linux | GNU | GNU/*) LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1"};; 80*10465441SEvalZero CYGWIN* | Cygwin* | cygwin* | OS/2* ) 81*10465441SEvalZero EXE='.exe';; 82*10465441SEvalZero QNX*) # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4 83*10465441SEvalZero # ([email protected]) 84*10465441SEvalZero LDSHARED=${LDSHARED-"$cc -shared -Wl,-hlibz.so.1"};; 85*10465441SEvalZero HP-UX*) 86*10465441SEvalZero LDSHARED=${LDSHARED-"$cc -shared $SFLAGS"} 87*10465441SEvalZero case `(uname -m || echo unknown) 2>/dev/null` in 88*10465441SEvalZero ia64) 89*10465441SEvalZero shared_ext='.so' 90*10465441SEvalZero SHAREDLIB='libz.so';; 91*10465441SEvalZero *) 92*10465441SEvalZero shared_ext='.sl' 93*10465441SEvalZero SHAREDLIB='libz.sl';; 94*10465441SEvalZero esac;; 95*10465441SEvalZero Darwin*) shared_ext='.dylib' 96*10465441SEvalZero SHAREDLIB=libz$shared_ext 97*10465441SEvalZero SHAREDLIBV=libz.$VER$shared_ext 98*10465441SEvalZero SHAREDLIBM=libz.$VER1$shared_ext 99*10465441SEvalZero LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER"};; 100*10465441SEvalZero *) LDSHARED=${LDSHARED-"$cc -shared"};; 101*10465441SEvalZero esac 102*10465441SEvalZeroelse 103*10465441SEvalZero # find system name and corresponding cc options 104*10465441SEvalZero CC=${CC-cc} 105*10465441SEvalZero case `(uname -sr || echo unknown) 2>/dev/null` in 106*10465441SEvalZero HP-UX*) SFLAGS=${CFLAGS-"-O +z"} 107*10465441SEvalZero CFLAGS=${CFLAGS-"-O"} 108*10465441SEvalZero# LDSHARED=${LDSHARED-"ld -b +vnocompatwarnings"} 109*10465441SEvalZero LDSHARED=${LDSHARED-"ld -b"} 110*10465441SEvalZero case `(uname -m || echo unknown) 2>/dev/null` in 111*10465441SEvalZero ia64) 112*10465441SEvalZero shared_ext='.so' 113*10465441SEvalZero SHAREDLIB='libz.so';; 114*10465441SEvalZero *) 115*10465441SEvalZero shared_ext='.sl' 116*10465441SEvalZero SHAREDLIB='libz.sl';; 117*10465441SEvalZero esac;; 118*10465441SEvalZero IRIX*) SFLAGS=${CFLAGS-"-ansi -O2 -rpath ."} 119*10465441SEvalZero CFLAGS=${CFLAGS-"-ansi -O2"} 120*10465441SEvalZero LDSHARED=${LDSHARED-"cc -shared"};; 121*10465441SEvalZero OSF1\ V4*) SFLAGS=${CFLAGS-"-O -std1"} 122*10465441SEvalZero CFLAGS=${CFLAGS-"-O -std1"} 123*10465441SEvalZero LDSHARED=${LDSHARED-"cc -shared -Wl,-soname,libz.so -Wl,-msym -Wl,-rpath,$(libdir) -Wl,-set_version,${VER}:1.0"};; 124*10465441SEvalZero OSF1*) SFLAGS=${CFLAGS-"-O -std1"} 125*10465441SEvalZero CFLAGS=${CFLAGS-"-O -std1"} 126*10465441SEvalZero LDSHARED=${LDSHARED-"cc -shared"};; 127*10465441SEvalZero QNX*) SFLAGS=${CFLAGS-"-4 -O"} 128*10465441SEvalZero CFLAGS=${CFLAGS-"-4 -O"} 129*10465441SEvalZero LDSHARED=${LDSHARED-"cc"} 130*10465441SEvalZero RANLIB=${RANLIB-"true"} 131*10465441SEvalZero AR="cc -A";; 132*10465441SEvalZero SCO_SV\ 3.2*) SFLAGS=${CFLAGS-"-O3 -dy -KPIC "} 133*10465441SEvalZero CFLAGS=${CFLAGS-"-O3"} 134*10465441SEvalZero LDSHARED=${LDSHARED-"cc -dy -KPIC -G"};; 135*10465441SEvalZero SunOS\ 5*) SFLAGS=${CFLAGS-"-fast -xcg89 -KPIC -R."} 136*10465441SEvalZero CFLAGS=${CFLAGS-"-fast -xcg89"} 137*10465441SEvalZero LDSHARED=${LDSHARED-"cc -G"};; 138*10465441SEvalZero SunOS\ 4*) SFLAGS=${CFLAGS-"-O2 -PIC"} 139*10465441SEvalZero CFLAGS=${CFLAGS-"-O2"} 140*10465441SEvalZero LDSHARED=${LDSHARED-"ld"};; 141*10465441SEvalZero SunStudio\ 9*) SFLAGS=${CFLAGS-"-DUSE_MMAP -fast -xcode=pic32 -xtarget=ultra3 -xarch=v9b"} 142*10465441SEvalZero CFLAGS=${CFLAGS-"-DUSE_MMAP -fast -xtarget=ultra3 -xarch=v9b"} 143*10465441SEvalZero LDSHARED=${LDSHARED-"cc -xarch=v9b"};; 144*10465441SEvalZero UNIX_System_V\ 4.2.0) 145*10465441SEvalZero SFLAGS=${CFLAGS-"-KPIC -O"} 146*10465441SEvalZero CFLAGS=${CFLAGS-"-O"} 147*10465441SEvalZero LDSHARED=${LDSHARED-"cc -G"};; 148*10465441SEvalZero UNIX_SV\ 4.2MP) 149*10465441SEvalZero SFLAGS=${CFLAGS-"-Kconform_pic -O"} 150*10465441SEvalZero CFLAGS=${CFLAGS-"-O"} 151*10465441SEvalZero LDSHARED=${LDSHARED-"cc -G"};; 152*10465441SEvalZero OpenUNIX\ 5) 153*10465441SEvalZero SFLAGS=${CFLAGS-"-KPIC -O"} 154*10465441SEvalZero CFLAGS=${CFLAGS-"-O"} 155*10465441SEvalZero LDSHARED=${LDSHARED-"cc -G"};; 156*10465441SEvalZero AIX*) # Courtesy of [email protected] 157*10465441SEvalZero SFLAGS=${CFLAGS-"-O -qmaxmem=8192"} 158*10465441SEvalZero CFLAGS=${CFLAGS-"-O -qmaxmem=8192"} 159*10465441SEvalZero LDSHARED=${LDSHARED-"xlc -G"};; 160*10465441SEvalZero # send working options for other systems to [email protected] 161*10465441SEvalZero *) SFLAGS=${CFLAGS-"-O"} 162*10465441SEvalZero CFLAGS=${CFLAGS-"-O"} 163*10465441SEvalZero LDSHARED=${LDSHARED-"cc -shared"};; 164*10465441SEvalZero esac 165*10465441SEvalZerofi 166*10465441SEvalZero 167*10465441SEvalZeroSHAREDLIB=${SHAREDLIB-"libz$shared_ext"} 168*10465441SEvalZeroSHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"} 169*10465441SEvalZeroSHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"} 170*10465441SEvalZero 171*10465441SEvalZeroif test $shared -eq 1; then 172*10465441SEvalZero echo Checking for shared library support... 173*10465441SEvalZero # we must test in two steps (cc then ld), required at least on SunOS 4.x 174*10465441SEvalZero if test "`($CC -c $SFLAGS $test.c) 2>&1`" = "" && 175*10465441SEvalZero test "`($LDSHARED -o $test$shared_ext $test.o) 2>&1`" = ""; then 176*10465441SEvalZero CFLAGS="$SFLAGS" 177*10465441SEvalZero LIBS="$SHAREDLIBV" 178*10465441SEvalZero echo Building shared library $SHAREDLIBV with $CC. 179*10465441SEvalZero elif test -z "$old_cc" -a -z "$old_cflags"; then 180*10465441SEvalZero echo No shared library support. 181*10465441SEvalZero shared=0; 182*10465441SEvalZero else 183*10465441SEvalZero echo 'No shared library support; try without defining CC and CFLAGS' 184*10465441SEvalZero shared=0; 185*10465441SEvalZero fi 186*10465441SEvalZerofi 187*10465441SEvalZeroif test $shared -eq 0; then 188*10465441SEvalZero LDSHARED="$CC" 189*10465441SEvalZero echo Building static library $LIBS version $VER with $CC. 190*10465441SEvalZeroelse 191*10465441SEvalZero LDFLAGS="-L. ${SHAREDLIBV}" 192*10465441SEvalZerofi 193*10465441SEvalZero 194*10465441SEvalZerocat > $test.c <<EOF 195*10465441SEvalZero#include <unistd.h> 196*10465441SEvalZeroint main() { return 0; } 197*10465441SEvalZeroEOF 198*10465441SEvalZeroif test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 199*10465441SEvalZero sed < zconf.in.h "/HAVE_UNISTD_H/s%0%1%" > zconf.h 200*10465441SEvalZero echo "Checking for unistd.h... Yes." 201*10465441SEvalZeroelse 202*10465441SEvalZero cp -p zconf.in.h zconf.h 203*10465441SEvalZero echo "Checking for unistd.h... No." 204*10465441SEvalZerofi 205*10465441SEvalZero 206*10465441SEvalZerocat > $test.c <<EOF 207*10465441SEvalZero#include <stdio.h> 208*10465441SEvalZero#include <stdarg.h> 209*10465441SEvalZero#include "zconf.h" 210*10465441SEvalZero 211*10465441SEvalZeroint main() 212*10465441SEvalZero{ 213*10465441SEvalZero#ifndef STDC 214*10465441SEvalZero choke me 215*10465441SEvalZero#endif 216*10465441SEvalZero 217*10465441SEvalZero return 0; 218*10465441SEvalZero} 219*10465441SEvalZeroEOF 220*10465441SEvalZero 221*10465441SEvalZeroif test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 222*10465441SEvalZero echo "Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()" 223*10465441SEvalZero 224*10465441SEvalZero cat > $test.c <<EOF 225*10465441SEvalZero#include <stdio.h> 226*10465441SEvalZero#include <stdarg.h> 227*10465441SEvalZero 228*10465441SEvalZeroint mytest(char *fmt, ...) 229*10465441SEvalZero{ 230*10465441SEvalZero char buf[20]; 231*10465441SEvalZero va_list ap; 232*10465441SEvalZero 233*10465441SEvalZero va_start(ap, fmt); 234*10465441SEvalZero vsnprintf(buf, sizeof(buf), fmt, ap); 235*10465441SEvalZero va_end(ap); 236*10465441SEvalZero return 0; 237*10465441SEvalZero} 238*10465441SEvalZero 239*10465441SEvalZeroint main() 240*10465441SEvalZero{ 241*10465441SEvalZero return (mytest("Hello%d\n", 1)); 242*10465441SEvalZero} 243*10465441SEvalZeroEOF 244*10465441SEvalZero 245*10465441SEvalZero if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then 246*10465441SEvalZero echo "Checking for vsnprintf() in stdio.h... Yes." 247*10465441SEvalZero 248*10465441SEvalZero cat >$test.c <<EOF 249*10465441SEvalZero#include <stdio.h> 250*10465441SEvalZero#include <stdarg.h> 251*10465441SEvalZero 252*10465441SEvalZeroint mytest(char *fmt, ...) 253*10465441SEvalZero{ 254*10465441SEvalZero int n; 255*10465441SEvalZero char buf[20]; 256*10465441SEvalZero va_list ap; 257*10465441SEvalZero 258*10465441SEvalZero va_start(ap, fmt); 259*10465441SEvalZero n = vsnprintf(buf, sizeof(buf), fmt, ap); 260*10465441SEvalZero va_end(ap); 261*10465441SEvalZero return n; 262*10465441SEvalZero} 263*10465441SEvalZero 264*10465441SEvalZeroint main() 265*10465441SEvalZero{ 266*10465441SEvalZero return (mytest("Hello%d\n", 1)); 267*10465441SEvalZero} 268*10465441SEvalZeroEOF 269*10465441SEvalZero 270*10465441SEvalZero if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 271*10465441SEvalZero echo "Checking for return value of vsnprintf()... Yes." 272*10465441SEvalZero else 273*10465441SEvalZero CFLAGS="$CFLAGS -DHAS_vsnprintf_void" 274*10465441SEvalZero echo "Checking for return value of vsnprintf()... No." 275*10465441SEvalZero echo " WARNING: apparently vsnprintf() does not return a value. zlib" 276*10465441SEvalZero echo " can build but will be open to possible string-format security" 277*10465441SEvalZero echo " vulnerabilities." 278*10465441SEvalZero fi 279*10465441SEvalZero else 280*10465441SEvalZero CFLAGS="$CFLAGS -DNO_vsnprintf" 281*10465441SEvalZero echo "Checking for vsnprintf() in stdio.h... No." 282*10465441SEvalZero echo " WARNING: vsnprintf() not found, falling back to vsprintf(). zlib" 283*10465441SEvalZero echo " can build but will be open to possible buffer-overflow security" 284*10465441SEvalZero echo " vulnerabilities." 285*10465441SEvalZero 286*10465441SEvalZero cat >$test.c <<EOF 287*10465441SEvalZero#include <stdio.h> 288*10465441SEvalZero#include <stdarg.h> 289*10465441SEvalZero 290*10465441SEvalZeroint mytest(char *fmt, ...) 291*10465441SEvalZero{ 292*10465441SEvalZero int n; 293*10465441SEvalZero char buf[20]; 294*10465441SEvalZero va_list ap; 295*10465441SEvalZero 296*10465441SEvalZero va_start(ap, fmt); 297*10465441SEvalZero n = vsprintf(buf, fmt, ap); 298*10465441SEvalZero va_end(ap); 299*10465441SEvalZero return n; 300*10465441SEvalZero} 301*10465441SEvalZero 302*10465441SEvalZeroint main() 303*10465441SEvalZero{ 304*10465441SEvalZero return (mytest("Hello%d\n", 1)); 305*10465441SEvalZero} 306*10465441SEvalZeroEOF 307*10465441SEvalZero 308*10465441SEvalZero if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 309*10465441SEvalZero echo "Checking for return value of vsprintf()... Yes." 310*10465441SEvalZero else 311*10465441SEvalZero CFLAGS="$CFLAGS -DHAS_vsprintf_void" 312*10465441SEvalZero echo "Checking for return value of vsprintf()... No." 313*10465441SEvalZero echo " WARNING: apparently vsprintf() does not return a value. zlib" 314*10465441SEvalZero echo " can build but will be open to possible string-format security" 315*10465441SEvalZero echo " vulnerabilities." 316*10465441SEvalZero fi 317*10465441SEvalZero fi 318*10465441SEvalZeroelse 319*10465441SEvalZero echo "Checking whether to use vs[n]printf() or s[n]printf()... using s[n]printf()" 320*10465441SEvalZero 321*10465441SEvalZero cat >$test.c <<EOF 322*10465441SEvalZero#include <stdio.h> 323*10465441SEvalZero 324*10465441SEvalZeroint mytest() 325*10465441SEvalZero{ 326*10465441SEvalZero char buf[20]; 327*10465441SEvalZero 328*10465441SEvalZero snprintf(buf, sizeof(buf), "%s", "foo"); 329*10465441SEvalZero return 0; 330*10465441SEvalZero} 331*10465441SEvalZero 332*10465441SEvalZeroint main() 333*10465441SEvalZero{ 334*10465441SEvalZero return (mytest()); 335*10465441SEvalZero} 336*10465441SEvalZeroEOF 337*10465441SEvalZero 338*10465441SEvalZero if test "`($CC $CFLAGS -o $test $test.c) 2>&1`" = ""; then 339*10465441SEvalZero echo "Checking for snprintf() in stdio.h... Yes." 340*10465441SEvalZero 341*10465441SEvalZero cat >$test.c <<EOF 342*10465441SEvalZero#include <stdio.h> 343*10465441SEvalZero 344*10465441SEvalZeroint mytest() 345*10465441SEvalZero{ 346*10465441SEvalZero char buf[20]; 347*10465441SEvalZero 348*10465441SEvalZero return snprintf(buf, sizeof(buf), "%s", "foo"); 349*10465441SEvalZero} 350*10465441SEvalZero 351*10465441SEvalZeroint main() 352*10465441SEvalZero{ 353*10465441SEvalZero return (mytest()); 354*10465441SEvalZero} 355*10465441SEvalZeroEOF 356*10465441SEvalZero 357*10465441SEvalZero if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 358*10465441SEvalZero echo "Checking for return value of snprintf()... Yes." 359*10465441SEvalZero else 360*10465441SEvalZero CFLAGS="$CFLAGS -DHAS_snprintf_void" 361*10465441SEvalZero echo "Checking for return value of snprintf()... No." 362*10465441SEvalZero echo " WARNING: apparently snprintf() does not return a value. zlib" 363*10465441SEvalZero echo " can build but will be open to possible string-format security" 364*10465441SEvalZero echo " vulnerabilities." 365*10465441SEvalZero fi 366*10465441SEvalZero else 367*10465441SEvalZero CFLAGS="$CFLAGS -DNO_snprintf" 368*10465441SEvalZero echo "Checking for snprintf() in stdio.h... No." 369*10465441SEvalZero echo " WARNING: snprintf() not found, falling back to sprintf(). zlib" 370*10465441SEvalZero echo " can build but will be open to possible buffer-overflow security" 371*10465441SEvalZero echo " vulnerabilities." 372*10465441SEvalZero 373*10465441SEvalZero cat >$test.c <<EOF 374*10465441SEvalZero#include <stdio.h> 375*10465441SEvalZero 376*10465441SEvalZeroint mytest() 377*10465441SEvalZero{ 378*10465441SEvalZero char buf[20]; 379*10465441SEvalZero 380*10465441SEvalZero return sprintf(buf, "%s", "foo"); 381*10465441SEvalZero} 382*10465441SEvalZero 383*10465441SEvalZeroint main() 384*10465441SEvalZero{ 385*10465441SEvalZero return (mytest()); 386*10465441SEvalZero} 387*10465441SEvalZeroEOF 388*10465441SEvalZero 389*10465441SEvalZero if test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 390*10465441SEvalZero echo "Checking for return value of sprintf()... Yes." 391*10465441SEvalZero else 392*10465441SEvalZero CFLAGS="$CFLAGS -DHAS_sprintf_void" 393*10465441SEvalZero echo "Checking for return value of sprintf()... No." 394*10465441SEvalZero echo " WARNING: apparently sprintf() does not return a value. zlib" 395*10465441SEvalZero echo " can build but will be open to possible string-format security" 396*10465441SEvalZero echo " vulnerabilities." 397*10465441SEvalZero fi 398*10465441SEvalZero fi 399*10465441SEvalZerofi 400*10465441SEvalZero 401*10465441SEvalZerocat >$test.c <<EOF 402*10465441SEvalZero#include <errno.h> 403*10465441SEvalZeroint main() { return 0; } 404*10465441SEvalZeroEOF 405*10465441SEvalZeroif test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 406*10465441SEvalZero echo "Checking for errno.h... Yes." 407*10465441SEvalZeroelse 408*10465441SEvalZero echo "Checking for errno.h... No." 409*10465441SEvalZero CFLAGS="$CFLAGS -DNO_ERRNO_H" 410*10465441SEvalZerofi 411*10465441SEvalZero 412*10465441SEvalZerocat > $test.c <<EOF 413*10465441SEvalZero#include <sys/types.h> 414*10465441SEvalZero#include <sys/mman.h> 415*10465441SEvalZero#include <sys/stat.h> 416*10465441SEvalZerocaddr_t hello() { 417*10465441SEvalZero return mmap((caddr_t)0, (off_t)0, PROT_READ, MAP_SHARED, 0, (off_t)0); 418*10465441SEvalZero} 419*10465441SEvalZeroEOF 420*10465441SEvalZeroif test "`($CC -c $CFLAGS $test.c) 2>&1`" = ""; then 421*10465441SEvalZero CFLAGS="$CFLAGS -DUSE_MMAP" 422*10465441SEvalZero echo Checking for mmap support... Yes. 423*10465441SEvalZeroelse 424*10465441SEvalZero echo Checking for mmap support... No. 425*10465441SEvalZerofi 426*10465441SEvalZero 427*10465441SEvalZeroCPP=${CPP-"$CC -E"} 428*10465441SEvalZerocase $CFLAGS in 429*10465441SEvalZero *ASMV*) 430*10465441SEvalZero if test "`nm $test.o | grep _hello`" = ""; then 431*10465441SEvalZero CPP="$CPP -DNO_UNDERLINE" 432*10465441SEvalZero echo Checking for underline in external names... No. 433*10465441SEvalZero else 434*10465441SEvalZero echo Checking for underline in external names... Yes. 435*10465441SEvalZero fi;; 436*10465441SEvalZeroesac 437*10465441SEvalZero 438*10465441SEvalZerorm -f $test.[co] $test $test$shared_ext 439*10465441SEvalZero 440*10465441SEvalZero# udpate Makefile 441*10465441SEvalZerosed < Makefile.in " 442*10465441SEvalZero/^CC *=/s#=.*#=$CC# 443*10465441SEvalZero/^CFLAGS *=/s#=.*#=$CFLAGS# 444*10465441SEvalZero/^CPP *=/s#=.*#=$CPP# 445*10465441SEvalZero/^LDSHARED *=/s#=.*#=$LDSHARED# 446*10465441SEvalZero/^LIBS *=/s#=.*#=$LIBS# 447*10465441SEvalZero/^SHAREDLIB *=/s#=.*#=$SHAREDLIB# 448*10465441SEvalZero/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV# 449*10465441SEvalZero/^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM# 450*10465441SEvalZero/^AR *=/s#=.*#=$AR# 451*10465441SEvalZero/^RANLIB *=/s#=.*#=$RANLIB# 452*10465441SEvalZero/^EXE *=/s#=.*#=$EXE# 453*10465441SEvalZero/^prefix *=/s#=.*#=$prefix# 454*10465441SEvalZero/^exec_prefix *=/s#=.*#=$exec_prefix# 455*10465441SEvalZero/^libdir *=/s#=.*#=$libdir# 456*10465441SEvalZero/^includedir *=/s#=.*#=$includedir# 457*10465441SEvalZero/^mandir *=/s#=.*#=$mandir# 458*10465441SEvalZero/^LDFLAGS *=/s#=.*#=$LDFLAGS# 459*10465441SEvalZero" > Makefile 460