Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 21 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,13 @@ include(GNUInstallDirs)
set(CPACK_INCLUDED TRUE)

if(NOT ZLIB_CONF_WRITTEN)
set(Z_PREFIX ${ZLIB_PREFIX})
set(CONF_OUT_FILE ${zlib_BINARY_DIR}/zconf.h.cmakein)
file(READ ${zlib_SOURCE_DIR}/zconf.h ZCONF_CONTENT LIMIT 245)
file(READ ${zlib_SOURCE_DIR}/zconf.h.in ZCONF_CONTENT LIMIT 245)
file(WRITE ${CONF_OUT_FILE} ${ZCONF_CONTENT})
file(APPEND ${CONF_OUT_FILE} "#cmakedefine Z_PREFIX 1\n")
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_STDARG_H 1\n")
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_UNISTD_H 1\n")
file(READ ${zlib_SOURCE_DIR}/zconf.h ZCONF_CONTENT OFFSET 244)
file(READ ${zlib_SOURCE_DIR}/zconf.h.in ZCONF_CONTENT OFFSET 244)
set(FIRST_ITEM TRUE)

foreach(item IN LISTS ZCONF_CONTENT)
Expand All @@ -68,8 +67,16 @@ if(NOT ZLIB_CONF_WRITTEN)
set(ZLIB_CONF_WRITTEN
TRUE
CACHE BOOL "zconf.h.cmakein was created")
mark_as_advanced(ZLIB_CONF_WRITTEN)
endif(NOT ZLIB_CONF_WRITTEN)
set(ZLIB_CONF_CMAKE_TEMPLATE
"${CONF_OUT_FILE}"
CACHE FILEPATH "Path to generated zconf.h.cmakein")
mark_as_advanced(ZLIB_CONF_WRITTEN ZLIB_CONF_CMAKE_TEMPLATE)
elseif(NOT DEFINED ZLIB_CONF_CMAKE_TEMPLATE)
message(
SEND_ERROR
"If zconf.h.cmakein has already been written then the (cache)"
"variable ZLIB_CONF_CMAKE_TEMPLATE should have been defined!")
endif()

#
# Check to see if we have large file support
Expand Down Expand Up @@ -123,7 +130,14 @@ else()
set(pc_libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
endif()
configure_file(${zlib_SOURCE_DIR}/zlib.pc.cmakein ${ZLIB_PC} @ONLY)
configure_file(${zlib_BINARY_DIR}/zconf.h.cmakein ${zlib_BINARY_DIR}/zconf.h)

if(ZLIB_PREFIX)
set(Z_PREFIX ON)
set(Z_PREFIX_STR "z_")
endif()
configure_file(${ZLIB_CONF_CMAKE_TEMPLATE} ${zlib_BINARY_DIR}/zconf.h)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib.map.in
${CMAKE_CURRENT_BINARY_DIR}/zlib.map @ONLY)

# ============================================================================
# zlib
Expand Down Expand Up @@ -202,7 +216,7 @@ if(ZLIB_BUILD_SHARED)
set_target_properties(
zlib
PROPERTIES LINK_FLAGS
"-Wl,--version-script,\"${zlib_SOURCE_DIR}/zlib.map\"")
"-Wl,--version-script,\"${zlib_BINARY_DIR}/zlib.map\"")
endif(
UNIX
AND NOT APPLE
Expand Down
5 changes: 2 additions & 3 deletions INDEX
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ test/example.c zlib usages examples for build testing
test/minigzip.c minimal gzip-like functionality for build testing
test/infcover.c inf*.c code coverage for build coverage testing
treebuild.xml XML description of source file dependencies
zconf.h.cmakein zconf.h template for cmake
zconf.h.in zconf.h template for configure
zconf.h.in zconf.h template for configure and cmake
zlib.3 Man page for zlib
zlib.3.pdf Man page in PDF format
zlib.map Linux symbol information
zlib.map.in Template for Linux symbol information
zlib.pc.in Template for pkg-config descriptor
zlib.pc.cmakein zlib.pc template for cmake
zlib2ansi perl script to convert source files for C++ compilation
Expand Down
2 changes: 1 addition & 1 deletion Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ gzwrite.lo: $(SRCDIR)gzwrite.c
-@mv objs/gzwrite.o $@


placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a $(SRCDIR)zlib.map
placebo $(SHAREDLIBV): $(PIC_OBJS) libz.a zlib.map
$(LDSHARED) $(SFLAGS) -o $@ $(PIC_OBJS) $(LDSHAREDLIBC) $(LDFLAGS)
rm -f $(SHAREDLIB) $(SHAREDLIBM)
ln -s $@ $(SHAREDLIB)
Expand Down
16 changes: 14 additions & 2 deletions configure
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@ else
SRCDIR="$SRCDIR/"
fi

# get build directory
BUILDDIR="`pwd`/"

# set command prefix for cross-compilation
if [ -n "${CHOST}" ]; then
uname=${CHOST}
Expand Down Expand Up @@ -180,6 +183,15 @@ show()
echo $* >> configure.log
}

# generate zlib.map and modify its content according to the value of the z_ prefix
cp -p ${SRCDIR}zlib.map.in zlib.map
if test $zprefix -eq 1; then
sed < zlib.map "s/\@Z_PREFIX_STR\@/z_/" > zlib.temp.map
else
sed < zlib.map "s/\@Z_PREFIX_STR\@//" > zlib.temp.map
fi
mv zlib.temp.map zlib.map

# check for gcc vs. cc and set compile and link flags based on the system identified by uname
cat > $test.c <<EOF
extern int getchar();
Expand Down Expand Up @@ -294,9 +306,9 @@ if test "$gcc" -eq 1 && ($cc -c $test.c) >> configure.log 2>&1; then
*sparc*)
LDFLAGS="${LDFLAGS} -Wl,--no-warn-rwx-segments" ;;
esac
LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"} ;;
LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${BUILDDIR}zlib.map"} ;;
*BSD | *bsd* | DragonFly)
LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${SRCDIR}zlib.map"}
LDSHARED=${LDSHARED-"$cc -shared -Wl,-soname,libz.so.1,--version-script,${BUILDDIR}zlib.map"}
LDCONFIG="ldconfig -m" ;;
CYGWIN* | Cygwin* | cygwin* | *-cygwin* | OS/2*)
EXE='.exe' ;;
Expand Down
23 changes: 18 additions & 5 deletions contrib/zlib1-dll/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ include(GNUInstallDirs)

if(NOT ZLIB_CONF_WRITTEN)
set(CONF_OUT_FILE ${zlib1-dll_BINARY_DIR}/zconf.h.cmakein)
file(READ ../../zconf.h ZCONF_CONTENT LIMIT 245)
file(READ ../../zconf.h.in ZCONF_CONTENT LIMIT 245)
file(WRITE ${CONF_OUT_FILE} ${ZCONF_CONTENT})
file(APPEND ${CONF_OUT_FILE} "#cmakedefine Z_PREFIX 1\n")
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_STDARG_H 1\n")
file(APPEND ${CONF_OUT_FILE} "#cmakedefine HAVE_UNISTD_H 1\n")
file(READ ../../zconf.h ZCONF_CONTENT OFFSET 244)
file(READ ../../zconf.h.in ZCONF_CONTENT OFFSET 244)
set(FIRST_ITEM TRUE)

foreach(item IN LISTS ZCONF_CONTENT)
Expand All @@ -49,8 +49,16 @@ if(NOT ZLIB_CONF_WRITTEN)
set(ZLIB_CONF_WRITTEN
TRUE
CACHE BOOL "zconf.h.cmakein was created")
mark_as_advanced(ZLIB_CONF_WRITTEN)
endif(NOT ZLIB_CONF_WRITTEN)
set(ZLIB_CONF_CMAKE_TEMPLATE
"${CONF_OUT_FILE}"
CACHE FILEPATH "Path to generated zconf.h.cmakein")
mark_as_advanced(ZLIB_CONF_WRITTEN ZLIB_CONF_CMAKE_TEMPLATE)
elseif(NOT DEFINED ZLIB_CONF_CMAKE_TEMPLATE)
message(
SEND_ERROR
"If zconf.h.cmakein has already been written then the (cache)"
"variable ZLIB_CONF_CMAKE_TEMPLATE should have been defined!")
endif()

if(ENABLE_BZIP2)
find_package(BZip2 REQUIRED)
Expand Down Expand Up @@ -101,7 +109,12 @@ check_c_source_compiles(
HAVE___ATTR__VIS_HIDDEN)

unset(CMAKE_COMPILE_FLAGS)
configure_file(${zlib1-dll_BINARY_DIR}/zconf.h.cmakein ${zlib1-dll_BINARY_DIR}/zconf.h)


if(ZLIB_PREFIX)
set(Z_PREFIX ON)
endif()
configure_file(${ZLIB_CONF_CMAKE_TEMPLATE} ${zlib1-dll_BINARY_DIR}/zconf.h)

# ============================================================================
# zlib1-dll
Expand Down
Loading