瀏覽代碼

create a subpackage flavour for elliptic curves

Waldemar Brodkorb 14 年之前
父節點
當前提交
bc5ad557b7
共有 2 個文件被更改,包括 24 次插入12 次删除
  1. 10 2
      package/openssl/Makefile
  2. 14 10
      package/pkgmaker

+ 10 - 2
package/openssl/Makefile

@@ -21,6 +21,10 @@ PKG_DESCR_DEV:=		development files for openssl
 PKG_SECTION_DEV:=	devel
 PKG_DEPENDS_DEV:=	libopenssl
 
+PKG_FLAVOURS:=		WITH_EC
+PKGFD_WITH_EC:=		enable Elliptic Curve crypto
+PKGSUB_WITH_EC:=	libopenssl
+
 include ${TOPDIR}/mk/package.mk
 
 $(eval $(call PKG_template,LIBOPENSSL,libopenssl,${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
@@ -37,13 +41,17 @@ BUILD_STYLE:=		manual
 INSTALL_TARGET:=	install_sw
 FAKE_FLAGS+=		INSTALL_PREFIX=${WRKINST}
 
-OPENSSL_OPTIONS = shared no-ec no-err no-krb5 no-threads zlib-dynamic no-engines no-camellia no-idea no-rc5 no-mdc2 no-sha0 no-smime no-aes192 no-ripemd no-cast
+OPENSSL_OPTIONS:= shared no-err no-krb5 no-threads zlib-dynamic no-engines no-camellia no-idea no-rc5 no-mdc2 no-sha0 no-smime no-aes192 no-ripemd no-cast
+
+ifeq ($(ADK_PACKAGE_OPENSSL_WITH_EC),)
+OPENSSL_OPTIONS+= no-ec
+endif
 
 do-configure:
 	(cd $(WRKBUILD); \
 		PATH=$(TARGET_PATH) \
 		OPTIMIZATION_FLAGS="$(TARGET_CFLAGS) -fPIC" \
-		bash -x ./Configure linux-embedded \
+		./Configure linux-embedded \
 		  --prefix=/usr \
 		  --openssldir=/etc/ssl \
 		  -I$(STAGING_DIR)/usr/include \

+ 14 - 10
package/pkgmaker

@@ -72,10 +72,12 @@ for dn in */Makefile; do
 	    PKGDESC_\${x} PKGDEPS_\${x} PKGDFLT_\${x} PKGSECT_\${x} CFLINE_\${x}) \
 	    \$(foreach x,\${PKG_FLAVOURS},PKGFD_\${x}) \
 	    \$(foreach x,\${PKG_FLAVOURS},PKGFS_\${x}) \
+	    \$(foreach x,\${PKG_FLAVOURS},PKGSUB_\${x}) \
 	    \$(foreach x,\${PKG_CHOICES},PKGCD_\${x}) \
 	    \$(foreach x,\${PKG_CHOICES},PKGCS_\${x}) \
 	    PKG_HOST_DEPENDS PKG_TARGET_DEPENDS")
 
+
 	# dnu: directory name, uppercase, y/-+/_X/
 	typeset -u dnu=${dn//-/_}
 	dnu=${dnu//+/X}
@@ -282,23 +284,25 @@ EOF
 
 endchoice
 EOF
-
 	# Handle flavours (per directory)
 	for pfcu in $PKG_FLAVOURS; do		# pfcu: pkg flavour conf opt.
+		fh=4
 		eval pfd=\$PKGFD_$pfcu		# pfd: pkg flavour description
 		eval pfs=\$PKGFS_$pfcu		# pfs: pkg flavour dependencies
-		print
-		print config ADK_PACKAGE_${dnu}_$pfcu
-		print "\tbool \"${pfd:-$PKG_NAME -> flavour $pfcu}\""
-		print \\tdefault n
-		print \\tdepends on ADK_COMPILE_$dnu
+		eval sub=\$PKGSUB_$pfcu		# sub: add to subpackage
+		[[ -n ${sub} ]] && exec 5>>../pkgconfigs.d/$dn/Config.in.$sub && fh=5
+		print -u$fh
+		print -u$fh config ADK_PACKAGE_${dnu}_$pfcu
+		print -u$fh "\tbool \"${pfd:-$PKG_NAME -> flavour $pfcu}\""
+		print -u$fh \\tdefault n
+		print -u$fh \\tdepends on ADK_COMPILE_$dnu
 		for pfso in $pfs; do
 			typeset -u pfso=${pfso#!}
-			print \\tselect ADK_PACKAGE_${pfso}
+			print -u$fh \\tselect ADK_PACKAGE_${pfso}
 		done
-		print \\thelp
-		print "\t  flavour ADK_PACKAGE_${dnu}_$pfcu for $PKG_NAME"
-	done >&4
+		print -u$fh \\thelp
+		print -u$fh "\t  flavour ADK_PACKAGE_${dnu}_$pfcu for $PKG_NAME"
+	done
 	cd ..
 done