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