+print "Done!";\r
+\r
+#\r
+# Add conditional feature to opensslconf.h\r
+#\r
+my $conf_file = "../Include/openssl/opensslconf.h";\r
+my @conf_raw = ();\r
+my @conditional_define = ();\r
+print "\n--> Updating conditional feature in $conf_file ... ";\r
+\r
+foreach my $pcd_name (keys(%conditional_feature)) {\r
+ push @conditional_define, "#if !FixedPcdGetBool ($pcd_name)\r\n";\r
+ foreach (@{$conditional_feature{$pcd_name}}) {\r
+ push @conditional_define, "# ifndef OPENSSL_NO_$_\r\n";\r
+ push @conditional_define, "# define OPENSSL_NO_$_\r\n";\r
+ push @conditional_define, "# endif\r\n";\r
+ }\r
+ push @conditional_define, "#endif\r\n";\r
+}\r
+\r
+open( FD, "<" . $conf_file ) ||\r
+ die $conf_file;\r
+foreach (<FD>) {\r
+ # Insert conditional define to the begin of opensslconf.h\r
+ if ($_ =~ "Autogenerated conditional openssl feature list starts here") {\r
+ push @conf_raw, $_, @conditional_define;\r
+ $subbing = 1;\r
+ next;\r
+ }\r
+ if ($_ =~ "Autogenerated conditional openssl feature list ends here") {\r
+ push @conf_raw, $_;\r
+ $subbing = 0;\r
+ next;\r
+ }\r
+ push @conf_raw, $_\r
+ unless ($subbing);\r
+}\r
+close(FD) ||\r
+ die $conf_file;\r
+\r
+open( FD, ">" . $conf_file ) ||\r
+ die $conf_file;\r
+print( FD @conf_raw ) ||\r
+ die $conf_file;\r
+close(FD) ||\r
+ die $conf_file;\r