zlib: only enable NEON optimizations on eligible targets
[openwrt/openwrt.git] / package / libs / zlib / Makefile
index fe03276c92708faea4b49359fce750c163abbd1c..a7c61f7dd0df39e545587f7c006bc1d45dae8df2 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zlib
 PKG_VERSION:=1.2.11
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/libpng http://www.zlib.net
@@ -19,7 +19,11 @@ PKG_LICENSE:=Zlib
 PKG_LICENSE_FILES:=README
 PKG_CPE_ID:=cpe:/a:gnu:zlib
 
+PKG_CONFIG_DEPENDS:= CONFIG_ZLIB_OPTIMIZE_SPEED
+
+include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
 
 define Package/zlib
   SECTION:=libs
@@ -46,27 +50,19 @@ define Package/zlib-dev/description
  This package includes the development support files.
 endef
 
-CONFIGURE_VARS := \
-       $(TARGET_CONFIGURE_OPTS) \
-       LDSHARED="$(TARGET_CC) -shared -Wl,-soname,libz.so.1" \
-       CFLAGS="$(TARGET_CFLAGS) $(FPIC)" \
-
-CONFIGURE_ARGS := \
-       --prefix=/usr \
-       --shared \
-       --uname=Linux \
-
-define Build/Compile
-       +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \
-               $(TARGET_CONFIGURE_OPTS) \
-               CFLAGS="$(TARGET_CFLAGS)" \
-               libz.a libz.so.$(PKG_VERSION)
-       mkdir -p $(PKG_INSTALL_DIR)
-       $(MAKE) -C $(PKG_BUILD_DIR) \
-               DESTDIR="$(PKG_INSTALL_DIR)" \
-               install
+define Package/zlib/config
+       source "$(SOURCE)/Config.in"
 endef
 
+TARGET_CFLAGS += $(FPIC)
+
+ifeq ($(CONFIG_ZLIB_OPTIMIZE_SPEED),y)
+       TARGET_CFLAGS := $(filter-out -O%,$(TARGET_CFLAGS)) -O3
+endif
+
+CMAKE_OPTIONS += \
+       -DARMv8=$$$$(echo -e '\#ifdef __ARM_NEON__\nON\n\#else\nOFF\n\#endif' | $$(TARGET_CC) $$(TARGET_CFLAGS) -x c -E - | grep -xE 'ON|OFF')
+
 define Build/InstallDev
        mkdir -p $(1)/usr/include
        $(CP)   $(PKG_INSTALL_DIR)/usr/include/z{conf,lib}.h \
@@ -75,7 +71,7 @@ define Build/InstallDev
        $(CP)   $(PKG_INSTALL_DIR)/usr/lib/libz.{a,so*} \
                $(1)/usr/lib/
        mkdir -p $(1)/usr/lib/pkgconfig
-       $(CP)   $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/zlib.pc \
+       $(CP)   $(PKG_INSTALL_DIR)/usr/share/pkgconfig/zlib.pc \
                $(1)/usr/lib/pkgconfig/
 endef
 
@@ -95,9 +91,10 @@ define Package/zlib-dev/install
        $(INSTALL_DIR) $(1)/usr/lib
        $(CP) $(PKG_INSTALL_DIR)/usr/lib/libz.a $(1)/usr/lib/
        $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
-       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/zlib.pc \
+       $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/pkgconfig/zlib.pc \
          $(1)/usr/lib/pkgconfig/
 endef
 
+$(eval $(call HostBuild))
 $(eval $(call BuildPackage,zlib))
 $(eval $(call BuildPackage,zlib-dev))