summaryrefslogtreecommitdiffstats
path: root/apps/progs.pl
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2017-06-15 19:31:01 +0200
committerRichard Levitte <levitte@openssl.org>2017-06-15 19:49:21 +0200
commit6a74806ed741db24df3a7155e4bc11fb4ba9bc2a (patch)
treed0798dbcefadf6671b847ea9d73df7aee47c9dea /apps/progs.pl
parentc537e74ba32e28d747d8e747abfa6cfff75c44c1 (diff)
Build apps/progs.h dynamically
Because apps/progs.h isn't configuration agnostic, it's not at all suited for 'make update' or being versioned, so change it to be dynamically generated. Reviewed-by: Rich Salz <rsalz@openssl.org> (Merged from https://github.com/openssl/openssl/pull/3688)
Diffstat (limited to 'apps/progs.pl')
-rw-r--r--apps/progs.pl13
1 files changed, 11 insertions, 2 deletions
diff --git a/apps/progs.pl b/apps/progs.pl
index 94a4962415..973b62b880 100644
--- a/apps/progs.pl
+++ b/apps/progs.pl
@@ -11,12 +11,21 @@
use strict;
use warnings;
-use configdata qw/@disablables/;
+use lib '.';
+use configdata qw/@disablables %unified_info/;
my %commands = ();
my $cmdre = qr/^\s*int\s+([a-z_][a-z0-9_]*)_main\(\s*int\s+argc\s*,/;
-foreach my $filename (@ARGV) {
+my $apps_openssl = shift @ARGV;
+# because the program apps/openssl has object files as sources, and
+# they then have the corresponding C files as source, we need to chain
+# the lookups in %unified_info
+my @openssl_source =
+ map { @{$unified_info{sources}->{$_}} }
+ @{$unified_info{sources}->{$apps_openssl}};
+
+foreach my $filename (@openssl_source) {
open F, $filename or die "Coudn't open $_: $!\n";
foreach (grep /$cmdre/, <F>) {
my @foo = /$cmdre/;