diff mbox

SV: [PATCH 03/18] zlib: Darwin & Windows (better) support Add shared & static compilation

Message ID BD22328D0EB182418C2A0952DC2454F88086FDA1@VMPREVAS2.prevas.se
State Not Applicable
Headers show

Commit Message

kim.hansen@prevas.dk Jan. 5, 2015, 1:33 p.m. UTC
Hi Yann,

I would like some patch headers to explain what these are here for. Also I think they should only be applied when needed, not always.

Please re-submit on github

/Kim
diff mbox

Patch

diff --git a/recipes/zlib/zlib-1.2.8/darwin.patch b/recipes/zlib/zlib-1.2.8/darwin.patch
new file mode 100644
index 0000000..fdd87ec
--- /dev/null
+++ b/recipes/zlib/zlib-1.2.8/darwin.patch
@@ -0,0 +1,18 @@ 
+diff -urN a/configure b/configure
+--- a/configure        2013-03-24 06:30:09.000000000 +0100
++++ b/configure        2014-07-29 22:43:45.017575927 +0200
+@@ -216,13 +216,7 @@
+              SHAREDLIB=libz$shared_ext
+              SHAREDLIBV=libz.$VER$shared_ext
+              SHAREDLIBM=libz.$VER1$shared_ext
+-             LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"}
+-             if libtool -V 2>&1 | grep Apple > /dev/null; then
+-                 AR="libtool"
+-             else
+-                 AR="/usr/bin/libtool"
+-             fi
+-             ARFLAGS="-o" ;;
++             LDSHARED=${LDSHARED-"$cc -dynamiclib -install_name $libdir/$SHAREDLIBV -compatibility_version $VER1 -current_version $VER3"} ;;
+   *)             LDSHARED=${LDSHARED-"$cc -shared"} ;;
+   esac
+ else
diff --git a/recipes/zlib/zlib-1.2.8/mingw.patch b/recipes/zlib/zlib-1.2.8/mingw.patch
new file mode 100644
index 0000000..4c06830
--- /dev/null
+++ b/recipes/zlib/zlib-1.2.8/mingw.patch
@@ -0,0 +1,293 @@ 
+diff -urN a/configure b/configure
+--- a/configure        2013-03-24 06:30:09.000000000 +0100
++++ b/configure        2014-06-25 22:21:13.245766147 +0200
+@@ -26,6 +26,7 @@
+
+ # destination name for static library
+ STATICLIB=libz.a
++IMPORTLIB=
+
+ # extract zlib version numbers from zlib.h
+ VER=`sed -n -e '/VERSION "/s/.*"\(.*\)".*/\1/p' < zlib.h`
+@@ -75,6 +76,7 @@
+ gcc=0
+ old_cc="$CC"
+ old_cflags="$CFLAGS"
++old_ldflags="$LDFLAGS"
+ OBJC='$(OBJZ) $(OBJG)'
+ PIC_OBJC='$(PIC_OBJZ) $(PIC_OBJG)'
+
+@@ -189,14 +191,23 @@
+         LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map"}
+         LDCONFIG="ldconfig -m" ;;
+   CYGWIN* | Cygwin* | cygwin* | OS/2*)
++        CFLAGS="${CFLAGS} -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64"
++        SFLAGS="${CFLAGS}"
++        LDFLAGS="-L. -lz ${old_ldflags}"
++        shared_ext=".dll"
++        SHAREDLIB='cygz.dll'
++        IMPORTLIB='libz.dll.a'
++        LDSHARED=${LDSHARED-"$cc -shared -Wl,-export-all -Wl,--enable-auto-image-base -Wl,--out-implib=${IMPORTLIB}"}
++        LDSHAREDLIBC=''
+         EXE='.exe' ;;
+   MINGW* | mingw*)
+-# temporary bypass
+-        rm -f $test.[co] $test $test$shared_ext
+-        echo "Please use win32/Makefile.gcc instead." | tee -a configure.log
+-        leave 1
+-        LDSHARED=${LDSHARED-"$cc -shared"}
+-        LDSHAREDLIBC=""
++        SFLAGS="${CFLAGS}"
++        LDFLAGS="-L. -lz ${old_ldflags}"
++        shared_ext=".dll"
++        SHAREDLIB='libz-1.dll'
++        IMPORTLIB='libz.dll.a'
++        LDSHARED=${LDSHARED-"$cc -shared -Wl,-export-all -Wl,--enable-auto-image-base -Wl,--out-implib=${IMPORTLIB}"}
++        LDSHAREDLIBC=''
+         EXE='.exe' ;;
+   QNX*)  # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4
+          # (alain.bonnefoy@icbt.com)
+@@ -317,10 +328,29 @@
+   esac
+ fi
+
++case "$uname" in
++  *CYGWIN* | *Cygwin* | *cygwin* )
++    # On cygwin, we always build both shared and static libs
++    ALL="static shared"
++    SHAREDLIBPOST='true'
++    SHAREDTARGET=${SHAREDLIB}
++    TEST="all teststatic testshared"
++    ;;
++  *MINGW* | *Mingw* | *mingw* )
++    # On Mingw, we always build both shared and static libs
++    ALL="static shared"
++    SHAREDLIBPOST='true'
++    SHAREDTARGET=${SHAREDLIB}
++    TEST="all teststatic testshared"
++    ;;
++  *)
++
+ # destination names for shared library if not defined above
+ SHAREDLIB=${SHAREDLIB-"libz$shared_ext"}
+ SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}
+ SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}
++SHAREDLIBPOST='(rm -f $(SHAREDLIB) $(SHAREDLIBM); ln -s $@ $(SHAREDLIB) ; ln -s $@ $(SHAREDLIBM) )'
++SHAREDTARGET='$(SHAREDLIBV)'
+
+ echo >> configure.log
+
+@@ -348,6 +378,8 @@
+   return $ret
+ }
+ fi
++      ;;
++esac
+
+ tryboth()
+ {
+@@ -761,6 +793,9 @@
+ echo SHAREDLIBM = $SHAREDLIBM >> configure.log
+ echo SHAREDLIBV = $SHAREDLIBV >> configure.log
+ echo STATICLIB = $STATICLIB >> configure.log
++echo IMPORTLIB = $IMPORTLIB >> configure.log
++echo SHAREDLIBPOST = $SHAREDLIBPOST >> configure.log
++echo SHAREDTARGET = $SHAREDTARGET >> configure.log
+ echo TEST = $TEST >> configure.log
+ echo VER = $VER >> configure.log
+ echo Z_U4 = $Z_U4 >> configure.log
+@@ -781,9 +816,12 @@
+ /^LDSHARED *=/s#=.*#=$LDSHARED#
+ /^CPP *=/s#=.*#=$CPP#
+ /^STATICLIB *=/s#=.*#=$STATICLIB#
++/^IMPORTLIB *=/s#=.*#=$IMPORTLIB#
+ /^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
+ /^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
+ /^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
++/^SHAREDLIBPOST *=/s#=.*#=$SHAREDLIBPOST#
++/^SHAREDTARGET *=/s#=.*#=$SHAREDTARGET#
+ /^AR *=/s#=.*#=$AR#
+ /^ARFLAGS *=/s#=.*#=$ARFLAGS#
+ /^RANLIB *=/s#=.*#=$RANLIB#
+@@ -809,9 +847,12 @@
+ /^CPP *=/s#=.*#=$CPP#
+ /^LDSHARED *=/s#=.*#=$LDSHARED#
+ /^STATICLIB *=/s#=.*#=$STATICLIB#
++/^IMPORTLIB *=/s#=.*#=$IMPORTLIB#
+ /^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
+ /^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
+ /^SHAREDLIBM *=/s#=.*#=$SHAREDLIBM#
++/^SHAREDLIBPOST *=/s#=.*#=$SHAREDLIBPOST#
++/^SHAREDTARGET *=/s#=.*#=$SHAREDTARGET#
+ /^AR *=/s#=.*#=$AR#
+ /^ARFLAGS *=/s#=.*#=$ARFLAGS#
+ /^RANLIB *=/s#=.*#=$RANLIB#
+diff -urN a/Makefile.in b/Makefile.in
+--- a/Makefile.in      2013-04-29 00:57:11.000000000 +0200
++++ b/Makefile.in      2014-06-25 22:22:45.292872177 +0200
+@@ -34,6 +34,9 @@
+ SHAREDLIB=libz.so
+ SHAREDLIBV=libz.so.1.2.8
+ SHAREDLIBM=libz.so.1
++IMPORTLIB=
++SHAREDLIBPOST='(rm -f $(SHAREDLIB) $(SHAREDLIBM); ln -s $@ $(SHAREDLIB) ; ln -s $@ $(SHAREDLIBM) )'
++SHAREDTARGET=$(SHAREDLIBV)
+ LIBS=$(STATICLIB) $(SHAREDLIBV)
+
+ AR=ar
+@@ -114,17 +117,17 @@
+       rm -f $$TMP64
+
+ infcover.o: test/infcover.c zlib.h zconf.h
+-      $(CC) $(CFLAGS) -I. -c -o $@ test/infcover.c
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I. -c -o $@ test/infcover.c
+
+ infcover: infcover.o libz.a
+-      $(CC) $(CFLAGS) -o $@ infcover.o libz.a
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ infcover.o libz.a
+
+ cover: infcover
+       rm -f *.gcda
+       ./infcover
+       gcov inf*.c
+
+-libz.a: $(OBJS)
++$(STATICLIB): $(OBJS)
+       $(AR) $(ARFLAGS) $@ $(OBJS)
+       -@ ($(RANLIB) $@ || true) >/dev/null 2>&1
+
+@@ -141,48 +144,49 @@
+       rm -f _match.s
+
+ example.o: test/example.c zlib.h zconf.h
+-      $(CC) $(CFLAGS) -I. -c -o $@ test/example.c
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I. -c -o $@ test/example.c
+
+ minigzip.o: test/minigzip.c zlib.h zconf.h
+-      $(CC) $(CFLAGS) -I. -c -o $@ test/minigzip.c
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I. -c -o $@ test/minigzip.c
+
+ example64.o: test/example.c zlib.h zconf.h
+-      $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/example.c
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/example.c
+
+ minigzip64.o: test/minigzip.c zlib.h zconf.h
+-      $(CC) $(CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/minigzip.c
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -I. -D_FILE_OFFSET_BITS=64 -c -o $@ test/minigzip.c
+
+ .SUFFIXES: .lo
+
++.c.o:
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $*.o $<
++
+ .c.lo:
+       -@mkdir objs 2>/dev/null || test -d objs
+-      $(CC) $(SFLAGS) -DPIC -c -o objs/$*.o $<
++      $(CC) $(SFLAGS) $(EXTRA_CFLAGS) -DPIC -c -o objs/$*.o $<
+       -@mv objs/$*.o $@
+
+-placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a
+-      $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
+-      rm -f $(SHAREDLIB) $(SHAREDLIBM)
+-      ln -s $@ $(SHAREDLIB)
+-      ln -s $@ $(SHAREDLIBM)
++placebo $(SHAREDTARGET): $(PIC_OBJS) $(STATICLIB)
++      $(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS) $(EXTRA_LDFLAGS)
++      $(SHAREDLIBPOST)
+       -@rmdir objs
+
+ example$(EXE): example.o $(STATICLIB)
+-      $(CC) $(CFLAGS) -o $@ example.o $(TEST_LDFLAGS)
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ example.o $(TEST_LDFLAGS) $(EXTRA_LDFLAGS)
+
+ minigzip$(EXE): minigzip.o $(STATICLIB)
+-      $(CC) $(CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS)
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ minigzip.o $(TEST_LDFLAGS) $(EXTRA_LDFLAGS)
+
+-examplesh$(EXE): example.o $(SHAREDLIBV)
+-      $(CC) $(CFLAGS) -o $@ example.o -L. $(SHAREDLIBV)
++examplesh$(EXE): example.o $(SHAREDTARGET)
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ example.o -L. $(SHAREDTARGET)
+
+-minigzipsh$(EXE): minigzip.o $(SHAREDLIBV)
+-      $(CC) $(CFLAGS) -o $@ minigzip.o -L. $(SHAREDLIBV)
++minigzipsh$(EXE): minigzip.o $(SHAREDTARGET)
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ minigzip.o -L. $(SHAREDTARGET)
+
+ example64$(EXE): example64.o $(STATICLIB)
+-      $(CC) $(CFLAGS) -o $@ example64.o $(TEST_LDFLAGS)
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ example64.o $(TEST_LDFLAGS) $(EXTRA_LDFLAGS)
+
+ minigzip64$(EXE): minigzip64.o $(STATICLIB)
+-      $(CC) $(CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS)
++      $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -o $@ minigzip64.o $(TEST_LDFLAGS) $(EXTRA_LDFLAGS)
+
+ install-libs: $(LIBS)
+       -@if [ ! -d $(DESTDIR)$(exec_prefix)  ]; then mkdir -p $(DESTDIR)$(exec_prefix); fi
+@@ -190,18 +194,31 @@
+       -@if [ ! -d $(DESTDIR)$(sharedlibdir) ]; then mkdir -p $(DESTDIR)$(sharedlibdir); fi
+       -@if [ ! -d $(DESTDIR)$(man3dir)      ]; then mkdir -p $(DESTDIR)$(man3dir); fi
+       -@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
+-      cp $(STATICLIB) $(DESTDIR)$(libdir)
+-      chmod 644 $(DESTDIR)$(libdir)/$(STATICLIB)
+-      -@($(RANLIB) $(DESTDIR)$(libdir)/libz.a || true) >/dev/null 2>&1
+-      -@if test -n "$(SHAREDLIBV)"; then \
+-        cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir); \
+-        echo "cp $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)"; \
+-        chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV); \
+-        echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBV)"; \
+-        rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
+-        ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
+-        ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
+-        ($(LDCONFIG) || true)  >/dev/null 2>&1; \
++      cp $(STATICLIB) $(IMPORTLIB) $(DESTDIR)$(libdir)
++      -@(cd $(DESTDIR)$(libdir); chmod 644 $(STATICLIB) $(IMPORTLIB))
++      -@($(RANLIB) $(DESTDIR)$(libdir)/$(STATICLIB) || true) >/dev/null 2>&1
++      -@if test -z "$(IMPORTLIB)" ; then \
++              if test -n "$(SHAREDTARGET)" ; then \
++                      if test -f "$(SHAREDTARGET)" ; then \
++                              cp $(SHAREDTARGET) $(DESTDIR)$(sharedlibdir); \
++                              echo "cp $(SHAREDTARGET) $(DESTDIR)$(sharedlibdir)"; \
++                              chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDTARGET); \
++                              echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDTARGET)"; \
++                      fi; \
++              fi; \
++              if test -n "$(SHAREDLIBV)"; then \
++                      if test -f "$(SHAREDLIBV)"; then \
++                              rm -f $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
++                              ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIB); \
++                              ln -s $(SHAREDLIBV) $(DESTDIR)$(sharedlibdir)/$(SHAREDLIBM); \
++                              ($(LDCONFIG) || true)  >/dev/null 2>&1; \
++                      fi; \
++              fi; \
++      else \
++              cp $(SHAREDTARGET) $(DESTDIR)$(sharedlibdir); \
++              echo "cp $(SHAREDTARGET) $(DESTDIR)$(sharedlibdir)"; \
++              chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDTARGET); \
++              echo "chmod 755 $(DESTDIR)$(sharedlibdir)/$(SHAREDTARGET)"; \
+       fi
+       cp zlib.3 $(DESTDIR)$(man3dir)
+       chmod 644 $(DESTDIR)$(man3dir)/zlib.3
+@@ -217,12 +234,13 @@
+
+ uninstall:
+       cd $(DESTDIR)$(includedir) && rm -f zlib.h zconf.h
+-      cd $(DESTDIR)$(libdir) && rm -f libz.a; \
++      cd $(DESTDIR)$(libdir) && rm -f $(STATCILIB) $(IMPORTLIB); \
+       if test -n "$(SHAREDLIBV)" -a -f $(SHAREDLIBV); then \
+         rm -f $(SHAREDLIBV) $(SHAREDLIB) $(SHAREDLIBM); \
+       fi
+       cd $(DESTDIR)$(man3dir) && rm -f zlib.3
+       cd $(DESTDIR)$(pkgconfigdir) && rm -f zlib.pc
++      cd $(DESTDIR)$(sharedlibdir) && (rm -f $(SHAREDTARGET) || true) > /dev/null 2>&1
+
+ docs: zlib.3.pdf
+
+@@ -245,6 +263,7 @@
+          example$(EXE) minigzip$(EXE) examplesh$(EXE) minigzipsh$(EXE) \
+          example64$(EXE) minigzip64$(EXE) \
+          infcover \
++         $(STATICLIB) $(IMPORTLIB) $(SHAREDTARGET) $(SHAREDLIBV) $(SHAREDLIBV) $(SHAREDLIBM) \
+          libz.* foo.gz so_locations \
+          _match.s maketree contrib/infback9/*.o
+       rm -rf objs
diff --git a/recipes/zlib/zlib-1.2.8/static_shared.patch b/recipes/zlib/zlib-1.2.8/static_shared.patch
new file mode 100644
index 0000000..90b629c
--- /dev/null
+++ b/recipes/zlib/zlib-1.2.8/static_shared.patch
@@ -0,0 +1,97 @@ 
+diff -urN a/configure b/configure
+--- a/configure        2014-06-25 22:25:38.431082847 +0200
++++ b/configure        2014-06-25 22:29:51.332290403 +0200
+@@ -68,6 +68,7 @@
+ mandir=${mandir-'${prefix}/share/man'}
+ shared_ext='.so'
+ shared=1
++static=1
+ solo=0
+ cover=0
+ zprefix=0
+@@ -100,7 +101,7 @@
+     -h* | --help)
+       echo 'usage:' | tee -a configure.log
+       echo '  configure [--const] [--zprefix] [--prefix=PREFIX]  [--eprefix=EXPREFIX]' | tee -a configure.log
+-      echo '    [--static] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
++      echo '    [--static] [--shared] [--64] [--libdir=LIBDIR] [--sharedlibdir=LIBDIR]' | tee -a configure.log
+       echo '    [--includedir=INCLUDEDIR] [--archs="-arch i386 -arch x86_64"]' | tee -a configure.log
+         exit 0 ;;
+     -p*=* | --prefix=*) prefix=`echo $1 | sed 's/.*=//'`; shift ;;
+@@ -114,7 +115,9 @@
+     -l* | --libdir) libdir="$2"; shift; shift ;;
+     -i* | --includedir) includedir="$2"; shift; shift ;;
+     -s* | --shared | --enable-shared) shared=1; shift ;;
+-    -t | --static) shared=0; shift ;;
++    -t | --static | --enable-static) static=1; shift ;;
++    --no-shared | --disable-shared) shared=0; shift ;;
++    --no-static | --disable-static) static=0; shift ;;
+     --solo) solo=1; shift ;;
+     --cover) cover=1; shift ;;
+     -z* | --zprefix) zprefix=1; shift ;;
+@@ -325,17 +328,13 @@
+ case "$uname" in
+   *CYGWIN* | *Cygwin* | *cygwin* )
+     # On cygwin, we always build both shared and static libs
+-    ALL="static shared"
+     SHAREDLIBPOST='true'
+     SHAREDTARGET=${SHAREDLIB}
+-    TEST="all teststatic testshared"
+     ;;
+   *MINGW* | *Mingw* | *mingw* )
+     # On Mingw, we always build both shared and static libs
+-    ALL="static shared"
+     SHAREDLIBPOST='true'
+     SHAREDTARGET=${SHAREDLIB}
+-    TEST="all teststatic testshared"
+     ;;
+   *)
+
+@@ -344,7 +343,9 @@
+ SHAREDLIBV=${SHAREDLIBV-"libz$shared_ext.$VER"}
+ SHAREDLIBM=${SHAREDLIBM-"libz$shared_ext.$VER1"}
+ SHAREDLIBPOST='(rm -f $(SHAREDLIB) $(SHAREDLIBM); ln -s $@ $(SHAREDLIB) ; ln -s $@ $(SHAREDLIBM) )'
+-SHAREDTARGET='$(SHAREDLIBV)'
++SHAREDTARGET='$(SHAREDLIBV)' ;;
++
++esac
+
+ echo >> configure.log
+
+@@ -372,8 +373,6 @@
+   return $ret
+ }
+ fi
+-      ;;
+-esac
+
+ tryboth()
+ {
+@@ -419,17 +418,22 @@
+     shared=0;
+   fi
+ fi
++
++ALL=""
++TEST="all"
++if test $static -eq 1; then
++  ALL="$ALL static"
++  TEST="$TEST teststatic"
++fi
+ if test $shared -eq 0; then
++  IMPORTLIB=""
+   LDSHARED="$CC"
+-  ALL="static"
+-  TEST="all teststatic"
+   SHAREDLIB=""
+   SHAREDLIBV=""
+   SHAREDLIBM=""
+-  echo Building static library $STATICLIB version $VER with $CC. | tee -a configure.log
+ else
+-  ALL="static shared"
+-  TEST="all teststatic testshared"
++  ALL="$ALL shared"
++  TEST="$TEST testshared"
+ fi
+
+ # check for underscores in external names for use by assembler code
diff --git a/recipes/zlib/zlib_1.2.8.oe b/recipes/zlib/zlib_1.2.8.oe
index 2c7d481..009466a 100644
--- a/recipes/zlib/zlib_1.2.8.oe
+++ b/recipes/zlib/zlib_1.2.8.oe
@@ -7,3 +7,7 @@  SRC_URI = "http://www.zlib.net/zlib-${PV}.tar.gz"
 # gcc: libz.a: No such file or directory
 # make: *** [libz.so.1.2.5] Error 1
 PARALLEL_MAKE = ""
+
+SRC_URI += "file://mingw.patch"
+SRC_URI += "file://darwin.patch"
+SRC_URI += "file://static_shared.patch"