[OpenWrt-Devel] [PATCH 3/4] openssl: add host build.

Yousong Zhou yszhou4tech at gmail.com
Fri Oct 17 05:58:04 EDT 2014


Only support Linux at the moment.

Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
---
 package/libs/openssl/Makefile |   56 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/package/libs/openssl/Makefile b/package/libs/openssl/Makefile
index 0c42362..e33f9bd 100644
--- a/package/libs/openssl/Makefile
+++ b/package/libs/openssl/Makefile
@@ -27,6 +27,8 @@ PKG_CONFIG_DEPENDS:=CONFIG_OPENSSL_ENGINE_CRYPTO CONFIG_OPENSSL_ENGINE_DIGEST \
 	CONFIG_OPENSSL_WITH_EC CONFIG_OPENSSL_WITH_EC2M
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host.mk
+include $(INCLUDE_DIR)/host-build.mk
 
 define Package/openssl/Default
   TITLE:=Open source SSL toolkit
@@ -197,5 +199,59 @@ define Package/openssl-util/install
 	$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/openssl $(1)/usr/bin/
 endef
 
+
+HOST_CPPFLAGS += $(HOST_FPIC)
+
+ifeq ($(HOST_ARCH),x86_64)
+  OPENSSL_HOST_TARGET:=linux-x86_64
+else
+  OPENSSL_HOST_TARGET:=linux-generic32
+endif
+
+define Host/Configure
+	[ -f $(HOST_STAMP_CONFIGURED) ] || { \
+		rm -f $(HOST_BUILD_DIR)/*.so.* $(HOST_BUILD_DIR)/*.a; \
+		find $(HOST_BUILD_DIR) -name \*.o | xargs rm -f; \
+	}
+	(cd $(HOST_BUILD_DIR); \
+		./Configure "$(OPENSSL_HOST_TARGET)" \
+			--prefix=/usr \
+			--openssldir=/etc/ssl \
+			$(HOST_CPPFLAGS) \
+			$(HOST_LDFLAGS) -ldl \
+			$(OPENSSL_NO_CIPHERS) \
+			shared zlib-dynamic \
+	)
+	# XXX: OpenSSL "make depend" will look for installed headers before its own,
+	# so remove installed stuff first
+	-$(SUBMAKE) -j1 clean-staging
+	+$(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR) \
+		MAKEDEPPROG="$(HOSTCC)" \
+		depend
+endef
+
+define Host/Compile
+	+$(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR) \
+		CC="$(HOSTCC)" \
+		all
+	+$(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR) \
+		CC="$(HOSTCC)" \
+		build-shared
+	# Work around openssl build bug to link libssl.so with libcrypto.so.
+	-rm $(HOST_BUILD_DIR)/libssl.so.*.*.*
+	+$(MAKE) $(PKG_JOBS) -C $(HOST_BUILD_DIR) \
+		CC="$(HOSTCC)" \
+		do_linux-shared
+endef
+
+define Host/Install
+	$(MAKE) -C $(HOST_BUILD_DIR) \
+		CC="$(HOSTCC)" \
+		INSTALL_PREFIX="$(STAGING_DIR_HOST)" \
+		install
+endef
+
+
 $(eval $(call BuildPackage,libopenssl))
 $(eval $(call BuildPackage,openssl-util))
+$(eval $(call HostBuild))
-- 
1.7.10.4
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list