1#!/usr/local/bin/perl
2#
3# This is a hacked version of files.pl for systems that can't do a 'make files'.
4# Do a perl util/mkminfo.pl >MINFO to build MINFO
5# Written by Steve Henson 1999.
6
7# List of directories to process
8
9my @dirs = (
10".",
11"crypto",
12"crypto/md2",
13"crypto/md4",
14"crypto/md5",
15"crypto/sha",
16"crypto/mdc2",
17"crypto/hmac",
18"crypto/ripemd",
19"crypto/des",
20"crypto/rc2",
21"crypto/rc4",
22"crypto/rc5",
23"crypto/idea",
24"crypto/bf",
25"crypto/cast",
26"crypto/aes",
27"crypto/camellia",
28"crypto/seed",
29"crypto/modes",
30"crypto/bn",
31"crypto/rsa",
32"crypto/dsa",
33"crypto/dso",
34"crypto/dh",
35"crypto/ec",
36"crypto/ecdh",
37"crypto/ecdsa",
38"crypto/buffer",
39"crypto/bio",
40"crypto/stack",
41"crypto/lhash",
42"crypto/rand",
43"crypto/err",
44"crypto/objects",
45"crypto/evp",
46"crypto/asn1",
47"crypto/pem",
48"crypto/x509",
49"crypto/x509v3",
50"crypto/cms",
51"crypto/conf",
52"crypto/jpake",
53"crypto/txt_db",
54"crypto/pkcs7",
55"crypto/pkcs12",
56"crypto/comp",
57"crypto/engine",
58"crypto/ocsp",
59"crypto/ui",
60"crypto/krb5",
61#"crypto/store",
62"crypto/pqueue",
63"crypto/whrlpool",
64"crypto/ts",
65"ssl",
66"apps",
67"engines",
68"engines/ccgost",
69"test",
70"tools"
71);
72
73%top;
74
75foreach (@dirs) {
76	&files_dir ($_, "Makefile");
77}
78
79exit(0);
80
81sub files_dir
82{
83my ($dir, $makefile) = @_;
84
85my %sym;
86
87open (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
88
89my $s="";
90
91while (<IN>)
92	{
93	chop;
94	s/#.*//;
95	if (/^(\S+)\s*=\s*(.*)$/)
96		{
97		$o="";
98		($s,$b)=($1,$2);
99		for (;;)
100			{
101			if ($b =~ /\\$/)
102				{
103				chop($b);
104				$o.=$b." ";
105				$b=<IN>;
106				chop($b);
107				}
108			else
109				{
110				$o.=$b." ";
111				last;
112				}
113			}
114		$o =~ s/^\s+//;
115		$o =~ s/\s+$//;
116		$o =~ s/\s+/ /g;
117
118		$o =~ s/\$[({]([^)}]+)[)}]/$top{$1} or $sym{$1}/ge;
119		$sym{$s}=($top{$s} or $o);
120		}
121	}
122
123print "RELATIVE_DIRECTORY=$dir\n";
124
125foreach (sort keys %sym)
126	{
127	print "$_=$sym{$_}\n";
128	}
129if ($dir eq "." && defined($sym{"BUILDENV"}))
130	{
131	foreach (split(' ',$sym{"BUILDENV"}))
132		{
133		/^(.+)=/;
134		$top{$1}=$sym{$1};
135		}
136	}
137
138print "RELATIVE_DIRECTORY=\n";
139
140close (IN);
141}
142