if (ZLIB_COMPAT)
add_definitions(-DZLIB_COMPAT)
set (WITH_GZFILEOP ON)
+ set (LIBNAME1 libz)
+ set (LIBNAME2 zlib)
+ set (SUFFIX "")
+else(ZLIB_COMPAT)
+ set (LIBNAME1 libz-ng)
+ set (LIBNAME2 zlib-ng)
+ set (SUFFIX -ng)
endif (ZLIB_COMPAT)
option (WITH_GZFILEOP "Compile with support for gzFile related functions" OFF)
endif()
endif()
-set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc)
+set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/${LIBNAME2}.pc)
configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/zlib.pc.cmakein
${ZLIB_PC} @ONLY)
configure_file( ${CMAKE_CURRENT_BINARY_DIR}/zconf.h.cmakein
set_target_properties(zlib PROPERTIES VERSION ${ZLIB_FULL_VERSION})
endif()
+
if(UNIX)
# On unix-like platforms the library is almost always called libz
- set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z)
- if(NOT APPLE)
- set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"")
- endif()
+ set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z${SUFFIX})
+ if(NOT APPLE)
+ set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/${LIBNAME2}.map\"")
+ endif()
elseif(MSYS)
# Suppress version number from shared library name
set(CMAKE_SHARED_LIBRARY_NAME_WITH_VERSION 0)
LIBRARY DESTINATION "${INSTALL_LIB_DIR}" )
endif()
if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL )
- install(FILES ${ZLIB_PUBLIC_HDRS} DESTINATION "${INSTALL_INC_DIR}")
+ install(FILES zlib.h DESTINATION "${INSTALL_INC_DIR}" RENAME zlib${SUFFIX}.h)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zconf.h DESTINATION "${INSTALL_INC_DIR}" RENAME zconf${SUFFIX}.h)
endif()
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
- install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3")
+ install(FILES zlib.3 DESTINATION "${INSTALL_MAN_DIR}/man3" RENAME zlib${SUFFIX}.3)
endif()
if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL )
install(FILES ${ZLIB_PC} DESTINATION "${INSTALL_PKGCONFIG_DIR}")
SFLAGS=-O
LDFLAGS=-L.
-TEST_LIBS=libz.a
+LIBNAME1=libz-ng
+LIBNAME2=zlib-ng
+SUFFIX=-ng
+TEST_LIBS=$(LIBNAME1).a
LDSHARED=$(CC)
LDSHAREDFLAGS=-shared
-STATICLIB=libz.a
-SHAREDLIB=libz.so
-SHAREDLIBV=libz.so.1.2.11
-SHAREDLIBM=libz.so.1
+STATICLIB=$(LIBNAME1).a
+SHAREDLIB=$(LIBNAME1).so
+SHAREDLIBV=$(LIBNAME1).so.1.2.11
+SHAREDLIBM=$(LIBNAME1).so.1
IMPORTLIB=
-SHAREDTARGET=libz.so.1.2.11
+SHAREDTARGET=$(LIBNAME1).so.1.2.11
+PKGFILE=$(LIBNAME2).pc
LIBS=$(STATICLIB) $(SHAREDTARGET)
install-libs: install-shared install-static
-@if [ ! -d $(DESTDIR)$(man3dir) ]; then mkdir -p $(DESTDIR)$(man3dir); fi
-@if [ ! -d $(DESTDIR)$(pkgconfigdir) ]; then mkdir -p $(DESTDIR)$(pkgconfigdir); fi
- rm -f $(DESTDIR)$(man3dir)/zlib.3
- cp $(SRCDIR)/zlib.3 $(DESTDIR)$(man3dir)
- chmod 644 $(DESTDIR)$(man3dir)/zlib.3
- rm -f $(DESTDIR)$(pkgconfigdir)/zlib.pc
- cp zlib.pc $(DESTDIR)$(pkgconfigdir)
- chmod 644 $(DESTDIR)$(pkgconfigdir)/zlib.pc
+ rm -f $(DESTDIR)$(man3dir)/zlib$(SUFFIX).3
+ cp $(SRCDIR)/zlib.3 $(DESTDIR)$(man3dir)/zlib$(SUFFIX).3
+ chmod 644 $(DESTDIR)$(man3dir)/zlib$(SUFFIX).3
+ rm -f $(DESTDIR)$(pkgconfigdir)/$(PKGFILE)
+ cp $(PKGFILE) $(DESTDIR)$(pkgconfigdir)
+ chmod 644 $(DESTDIR)$(pkgconfigdir)/$(PKGFILE)
install: install-libs
-@if [ ! -d $(DESTDIR)$(includedir) ]; then mkdir -p $(DESTDIR)$(includedir); fi
- rm -f $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
- cp $(SRCDIR)/zlib.h zconf.h $(DESTDIR)$(includedir)
- chmod 644 $(DESTDIR)$(includedir)/zlib.h $(DESTDIR)$(includedir)/zconf.h
+ rm -f $(DESTDIR)$(includedir)/zlib$(SUFFIX).h $(DESTDIR)$(includedir)/zconf$(SUFFIX).h
+ cp $(SRCDIR)/zlib.h $(DESTDIR)$(includedir)/zlib$(SUFFIX).h
+ cp zconf.h $(DESTDIR)$(includedir)/zconf$(SUFFIX).h
+ chmod 644 $(DESTDIR)$(includedir)/zlib$(SUFFIX).h $(DESTDIR)$(includedir)/zconf$(SUFFIX).h
uninstall-static:
cd $(DESTDIR)$(libdir) && rm -f $(STATICLIB)
endif
uninstall: uninstall-static uninstall-shared
- cd $(DESTDIR)$(includedir) && rm -f zlib.h zconf.h
- cd $(DESTDIR)$(man3dir) && rm -f zlib.3
- cd $(DESTDIR)$(pkgconfigdir) && rm -f zlib.pc
+ cd $(DESTDIR)$(includedir) && rm -f zlib$(SUFFIX).h zconf$(SUFFIX).h
+ cd $(DESTDIR)$(man3dir) && rm -f zlib$(SUFFIX).3
+ cd $(DESTDIR)$(pkgconfigdir) && rm -f $(PKGFILE)
docs: zlib.3.pdf
rm -rf objs
rm -f *.gcda *.gcno *.gcov
rm -f a.out a.exe
+ rm -f *.pc
maintainer-clean: distclean
distclean: clean
@if [ -f $(ARCHDIR)/Makefile ]; then $(MAKE) -C $(ARCHDIR) distclean; fi
@if [ -f test/Makefile ]; then $(MAKE) -C test distclean; fi
- rm -f zlib.pc configure.log zconf.h zconf.h.cmakein
+ rm -f $(PKGFILE) configure.log zconf.h zconf.h.cmakein
-@rm -f .DS_Store
# Reset Makefile if building inside source tree
@if [ -f Makefile.in ]; then \
;;
esac
-# destination name for static library
-STATICLIB=libz.a
-
# destination name for windows import library
IMPORTLIB=
-# extract zlib version numbers from zlib.h
-VER=`sed -n -e '/ZLIB_VERSION "/s/.*"\(.*\)".*/\1/p' < ${SRCDIR}/zlib.h`
-VER3=`sed -n -e '/ZLIB_VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < ${SRCDIR}/zlib.h`
-VER2=`sed -n -e '/ZLIB_VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}/zlib.h`
-VER1=`sed -n -e '/ZLIB_VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}/zlib.h`
-
# establish commands for library building
if "${CROSS_PREFIX}ar" --version >/dev/null 2>/dev/null || test $? -lt 126; then
AR=${AR-"${CROSS_PREFIX}ar"}
LDFLAGS="${LDFLAGS} -m64"
fi
+# Set library name depending on zlib-compat option
+if test $compat -eq 0; then
+ LIBNAME=libz-ng
+ LIBNAME2=zlib-ng
+ SUFFIX=-ng
+else
+ LIBNAME=libz
+ LIBNAME2=zlib
+ SUFFIX=""
+fi
+
+STATICLIB=${LIBNAME}.a
+MAPNAME=$LIBNAME2.map
+
+# extract zlib version numbers from zlib.h
+if test $compat -eq 0; then
+ VER=`sed -n -e '/ZLIBNG_VERSION "/s/.*"\(.*\)".*/\1/p' < ${SRCDIR}/zlib.h`
+ VER3=`sed -n -e '/ZLIBNG_VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < ${SRCDIR}/zlib.h`
+ VER2=`sed -n -e '/ZLIBNG_VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}/zlib.h`
+ VER1=`sed -n -e '/ZLIBNG_VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}/zlib.h`
+else
+ VER=`sed -n -e '/ZLIB_VERSION "/s/.*"\(.*\)".*/\1/p' < ${SRCDIR}/zlib.h`
+ VER3=`sed -n -e '/ZLIB_VERSION "/s/.*"\([0-9]*\\.[0-9]*\\.[0-9]*\).*/\1/p' < ${SRCDIR}/zlib.h`
+ VER2=`sed -n -e '/ZLIB_VERSION "/s/.*"\([0-9]*\\.[0-9]*\)\\..*/\1/p' < ${SRCDIR}/zlib.h`
+ VER1=`sed -n -e '/ZLIB_VERSION "/s/.*"\([0-9]*\)\\..*/\1/p' < ${SRCDIR}/zlib.h`
+fi
+
show $cc -c $test.c
if test "$gcc" -eq 1 && ($cc $CFLAGS -c $test.c) >> configure.log 2>&1; then
echo ... using gcc >> configure.log
case "$uname" in
Linux* | linux* | GNU | GNU/* | solaris*)
LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}/zlib.map" ;;
+ LDSHAREDFLAGS="-shared -Wl,-soname,${LIBNAME}.so.1,--version-script,${SRCDIR}/${MAPNAME}" ;;
*BSD | *bsd* | DragonFly)
LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}/zlib.map"
+ LDSHAREDFLAGS="-shared -Wl,-soname,${LIBNAME}.so.1,--version-script,${SRCDIR}/${MAPNAME}"
LDCONFIG="ldconfig -m" ;;
CYGWIN* | Cygwin* | cygwin*)
ARFLAGS="rcs"
SFLAGS="${CFLAGS}"
shared_ext='.dll'
sharedlibdir='${bindir}'
- SHAREDLIB=cygz$shared_ext
+ if test $compat -eq 0; then
+ SHAREDLIB=cygz-ng$shared_ext
+ else
+ SHAREDLIB=cygz$shared_ext
+ fi
SHAREDLIBM=''
SHAREDLIBV=''
SHAREDTARGET=$SHAREDLIB
- IMPORTLIB='libz.dll.a'
+ IMPORTLIB='${LIBNAME}.dll.a'
LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared -Wl,--out-implib,${IMPORTLIB},--version-script,${SRCDIR}/zlib.map"
+ LDSHAREDFLAGS="-shared -Wl,--out-implib,${IMPORTLIB},--version-script,${SRCDIR}/${MAPNAME}"
LDSHAREDLIBC=""
DEFFILE='win32/zlib.def'
RC="${CROSS_PREFIX}windres"
SFLAGS="${CFLAGS}"
shared_ext='.dll'
sharedlibdir='${bindir}'
- SHAREDLIB=msys-z$shared_ext
+ if test $compat -eq 0; then
+ SHAREDLIB=msys-z-ng$shared_ext
+ else
+ SHAREDLIB=msys-z$shared_ext
+ fi
SHAREDLIBM=''
SHAREDLIBV=''
SHAREDTARGET=$SHAREDLIB
- IMPORTLIB='libz.dll.a'
+ IMPORTLIB='${LIBNAME}.dll.a'
LDSHARED=${LDSHARED-"$cc"}
LDSHAREDFLAGS="-shared -Wl,--out-implib,${IMPORTLIB}"
LDSHAREDLIBC=""
SFLAGS="${CFLAGS}"
shared_ext='.dll'
sharedlibdir='${bindir}'
- SHAREDLIB=libz-$VER1$shared_ext
+ SHAREDLIB=${LIBNAME}-$VER1$shared_ext
SHAREDLIBM=''
SHAREDLIBV=''
SHAREDTARGET=$SHAREDLIB
- IMPORTLIB='libz.dll.a'
+ IMPORTLIB='${LIBNAME}.dll.a'
LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared -Wl,--out-implib=${IMPORTLIB} -Wl,--version-script=${SRCDIR}/zlib.map"
+ LDSHAREDFLAGS="-shared -Wl,--out-implib=${IMPORTLIB} -Wl,--version-script=${SRCDIR}/${MAPNAME}"
LDSHAREDLIBC=""
DEFFILE='win32/zlib.def'
RC="${CROSS_PREFIX}windres"
QNX*) # This is for QNX6. I suppose that the QNX rule below is for QNX2,QNX4
# (alain.bonnefoy@icbt.com)
LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared -Wl,-hlibz.so.1" ;;
+ LDSHAREDFLAGS="-shared -Wl,-h${LIBNAME}.so.1" ;;
HP-UX*)
LDSHARED=${LDSHARED-"$cc"}
LDSHAREDFLAGS="-shared"
case `(uname -m || echo unknown) 2>/dev/null` in
ia64)
shared_ext='.so'
- SHAREDLIB='libz.so' ;;
+ SHAREDLIB='${LIBNAME}.so' ;;
*)
shared_ext='.sl'
- SHAREDLIB='libz.sl' ;;
+ SHAREDLIB='${LIBNAME}.sl' ;;
esac ;;
Darwin* | darwin*)
shared_ext='.dylib'
- SHAREDLIB=libz$shared_ext
- SHAREDLIBV=libz.$VER$shared_ext
- SHAREDLIBM=libz.$VER1$shared_ext
+ SHAREDLIB=${LIBNAME}$shared_ext
+ SHAREDLIBV=${LIBNAME}.$VER$shared_ext
+ SHAREDLIBM=${LIBNAME}.$VER1$shared_ext
SHAREDTARGET=$SHAREDLIBV
LDSHARED=${LDSHARED-"$cc"}
LDSHAREDFLAGS="-dynamiclib -install_name $libdir/$SHAREDLIBM -compatibility_version $VER1 -current_version $VER3"
AR="/usr/bin/libtool"
fi
ARFLAGS="-o" ;;
- aarch64) LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared -Wl,-soname,libz.so.1 -Wl,--version-script,${SRCDIR}/zlib.map"
+ aarch64)
+ LDSHARED=${LDSHARED-"$cc"}
+ LDSHAREDFLAGS="-shared -Wl,-soname,${LIBNAME}.so.1 -Wl,--version-script,${SRCDIR}/${MAPNAME}"
LDSHAREDLIBC="-Wl,--start-group -lc -lrdimon -Wl,--end-group" ;;
- *) LDSHARED=${LDSHARED-"$cc"}
- LDSHAREDFLAGS="-shared" ;;
+ *)
+ LDSHARED=${LDSHARED-"$cc"}
+ LDSHAREDFLAGS="-shared" ;;
esac
else
# find system name and corresponding cc options
case `(uname -m || echo unknown) 2>/dev/null` in
ia64)
shared_ext='.so'
- SHAREDLIB='libz.so' ;;
+ SHAREDLIB='${LIBNAME}.so' ;;
*)
shared_ext='.sl'
- SHAREDLIB='libz.sl' ;;
+ SHAREDLIB='${LIBNAME}.sl' ;;
esac ;;
AIX*) # Courtesy of dbakker@arrayasolutions.com
SFLAGS=${CFLAGS-"-O -qmaxmem=8192"}
fi
# 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"}
-SHAREDTARGET=${SHAREDTARGET-"libz$shared_ext.$VER"}
+SHAREDLIB=${SHAREDLIB-"${LIBNAME}$shared_ext"}
+SHAREDLIBV=${SHAREDLIBV-"${LIBNAME}$shared_ext.$VER"}
+SHAREDLIBM=${SHAREDLIBM-"${LIBNAME}$shared_ext.$VER1"}
+SHAREDTARGET=${SHAREDTARGET-"${LIBNAME}$shared_ext.$VER"}
echo >> configure.log
/^LDFLAGS *=/s#=.*#=$LDFLAGS#
/^LDSHARED *=/s#=.*#=$LDSHARED#
/^LDSHAREDFLAGS *=/s#=.*#=$LDSHAREDFLAGS#
+/^LIBNAME1 *=/s#=.*#=$LIBNAME#
+/^LIBNAME2 *=/s#=.*#=$LIBNAME2#
+/^SUFFIX *=/s#=.*#=$SUFFIX#
/^STATICLIB *=/s#=.*#=$STATICLIB#
/^SHAREDLIB *=/s#=.*#=$SHAREDLIB#
/^SHAREDLIBV *=/s#=.*#=$SHAREDLIBV#
/^LDFLAGS *=/s#=.*#=$LDFLAGS#
" | sed -e "
s/\@VERSION\@/$VER/g;
-" > zlib.pc
+s/\@SUFFIX\@/$SUFFIX/g;
+" > ${LIBNAME2}.pc
# done
leave 0