summaryrefslogtreecommitdiffstats
path: root/package/libzlib
diff options
context:
space:
mode:
authorStefan Fröberg <stefan.froberg@petroprogram.com>2017-11-29 23:17:13 +0200
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>2018-01-03 22:42:04 +0100
commiteb1a657880992a9eafb639a666a8b3ec0928f14c (patch)
tree7dd8a4c673037b486698025dcd47cf8267a3b512 /package/libzlib
parent287775d241b90993de3d0da3af11e72b5c406084 (diff)
downloadbuildroot-eb1a657880992a9eafb639a666a8b3ec0928f14c.tar.gz
buildroot-eb1a657880992a9eafb639a666a8b3ec0928f14c.zip
zlib: switch to a virtual package
The existing zlib package is renamed to libzlib, and zlib is turned into a virtual package. This is done in preparation to the introduction of zlib-ng as an alternative implementation. Signed-off-by: Stefan Fröberg <stefan.froberg@petroprogram.com> [Thomas: define BR2_PACKAGE_PROVIDES_HOST_ZLIB as suggested by Yann E. Morin.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Diffstat (limited to 'package/libzlib')
-rw-r--r--package/libzlib/libzlib.hash4
-rw-r--r--package/libzlib/libzlib.mk78
2 files changed, 82 insertions, 0 deletions
diff --git a/package/libzlib/libzlib.hash b/package/libzlib/libzlib.hash
new file mode 100644
index 0000000000..e3736b1011
--- /dev/null
+++ b/package/libzlib/libzlib.hash
@@ -0,0 +1,4 @@
+# From http://www.zlib.net/
+sha256 4ff941449631ace0d4d203e3483be9dbc9da454084111f97ea0a2114e19bf066 zlib-1.2.11.tar.xz
+# License files, locally calculated
+sha256 7960b6b1cc63e619abb77acaea5427159605afee8c8b362664f4effc7d7f7d15 README
diff --git a/package/libzlib/libzlib.mk b/package/libzlib/libzlib.mk
new file mode 100644
index 0000000000..eea0c12f22
--- /dev/null
+++ b/package/libzlib/libzlib.mk
@@ -0,0 +1,78 @@
+################################################################################
+#
+# libzlib
+#
+################################################################################
+
+LIBZLIB_VERSION = 1.2.11
+LIBZLIB_SOURCE = zlib-$(LIBZLIB_VERSION).tar.xz
+LIBZLIB_SITE = http://www.zlib.net
+LIBZLIB_LICENSE = Zlib
+LIBZLIB_LICENSE_FILES = README
+LIBZLIB_INSTALL_STAGING = YES
+LIBZLIB_PROVIDES = zlib
+
+# It is not possible to build only a shared version of zlib, so we build both
+# shared and static, unless we only want the static libs, and we eventually
+# selectively remove what we do not want
+ifeq ($(BR2_STATIC_LIBS),y)
+LIBZLIB_PIC =
+LIBZLIB_SHARED = --static
+else
+LIBZLIB_PIC = -fPIC
+LIBZLIB_SHARED = --shared
+endif
+
+define LIBZLIB_CONFIGURE_CMDS
+ (cd $(@D); rm -rf config.cache; \
+ $(TARGET_CONFIGURE_ARGS) \
+ $(TARGET_CONFIGURE_OPTS) \
+ CFLAGS="$(TARGET_CFLAGS) $(LIBZLIB_PIC)" \
+ ./configure \
+ $(LIBZLIB_SHARED) \
+ --prefix=/usr \
+ )
+endef
+
+define HOST_LIBZLIB_CONFIGURE_CMDS
+ (cd $(@D); rm -rf config.cache; \
+ $(HOST_CONFIGURE_ARGS) \
+ $(HOST_CONFIGURE_OPTS) \
+ ./configure \
+ --prefix="$(HOST_DIR)" \
+ --sysconfdir="$(HOST_DIR)/etc" \
+ )
+endef
+
+define LIBZLIB_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)
+endef
+
+define HOST_LIBZLIB_BUILD_CMDS
+ $(HOST_MAKE_ENV) $(MAKE1) -C $(@D)
+endef
+
+define LIBZLIB_INSTALL_STAGING_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(STAGING_DIR) LDCONFIG=true install
+endef
+
+define LIBZLIB_INSTALL_TARGET_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D) DESTDIR=$(TARGET_DIR) LDCONFIG=true install
+endef
+
+# We don't care removing the .a from target, since it not used at link
+# time to build other packages, and it is anyway removed later before
+# assembling the filesystem images anyway.
+ifeq ($(BR2_SHARED_LIBS),y)
+define LIBZLIB_RM_STATIC_STAGING
+ rm -f $(STAGING_DIR)/usr/lib/libz.a
+endef
+LIBZLIB_POST_INSTALL_STAGING_HOOKS += LIBZLIB_RM_STATIC_STAGING
+endif
+
+define HOST_LIBZLIB_INSTALL_CMDS
+ $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) LDCONFIG=true install
+endef
+
+$(eval $(generic-package))
+$(eval $(host-generic-package))
OpenPOWER on IntegriCloud