155714Skris#!/usr/local/bin/perl
255714Skris#
355714Skris# This is a hacked version of files.pl for systems that can't do a 'make files'.
455714Skris# Do a perl util/mkminfo.pl >MINFO to build MINFO
555714Skris# Written by Steve Henson 1999.
655714Skris
755714Skris# List of directories to process
855714Skris
955714Skrismy @dirs = (
1055714Skris".",
1155714Skris"crypto",
1255714Skris"crypto/md2",
1368651Skris"crypto/md4",
1455714Skris"crypto/md5",
1555714Skris"crypto/sha",
1655714Skris"crypto/mdc2",
1755714Skris"crypto/hmac",
18238405Sjkim"crypto/cmac",
1955714Skris"crypto/ripemd",
2055714Skris"crypto/des",
2155714Skris"crypto/rc2",
2255714Skris"crypto/rc4",
2355714Skris"crypto/rc5",
2455714Skris"crypto/idea",
2555714Skris"crypto/bf",
2655714Skris"crypto/cast",
27109998Smarkm"crypto/aes",
28162911Ssimon"crypto/camellia",
29194206Ssimon"crypto/seed",
30238405Sjkim"crypto/modes",
3155714Skris"crypto/bn",
3255714Skris"crypto/rsa",
3355714Skris"crypto/dsa",
3468651Skris"crypto/dso",
3555714Skris"crypto/dh",
36109998Smarkm"crypto/ec",
37160814Ssimon"crypto/ecdh",
38160814Ssimon"crypto/ecdsa",
3955714Skris"crypto/buffer",
4055714Skris"crypto/bio",
4155714Skris"crypto/stack",
4255714Skris"crypto/lhash",
4355714Skris"crypto/rand",
4455714Skris"crypto/err",
4555714Skris"crypto/objects",
4655714Skris"crypto/evp",
4755714Skris"crypto/asn1",
4855714Skris"crypto/pem",
4955714Skris"crypto/x509",
5055714Skris"crypto/x509v3",
51238405Sjkim"crypto/cms",
5255714Skris"crypto/conf",
53194206Ssimon"crypto/jpake",
5455714Skris"crypto/txt_db",
5555714Skris"crypto/pkcs7",
5655714Skris"crypto/pkcs12",
5755714Skris"crypto/comp",
58109998Smarkm"crypto/engine",
59109998Smarkm"crypto/ocsp",
60109998Smarkm"crypto/ui",
61109998Smarkm"crypto/krb5",
62238405Sjkim#"crypto/store",
63160814Ssimon"crypto/pqueue",
64238405Sjkim"crypto/whrlpool",
65238405Sjkim"crypto/ts",
66238405Sjkim"crypto/srp",
6755714Skris"ssl",
6855714Skris"apps",
69160814Ssimon"engines",
70238405Sjkim"engines/ccgost",
7155714Skris"test",
7255714Skris"tools"
7355714Skris);
7455714Skris
75238405Sjkim%top;
76238405Sjkim
7755714Skrisforeach (@dirs) {
78142425Snectar	&files_dir ($_, "Makefile");
7955714Skris}
8055714Skris
8155714Skrisexit(0);
8255714Skris
8355714Skrissub files_dir
8455714Skris{
8555714Skrismy ($dir, $makefile) = @_;
8655714Skris
8755714Skrismy %sym;
8855714Skris
8955714Skrisopen (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
9055714Skris
9155714Skrismy $s="";
9255714Skris
9355714Skriswhile (<IN>)
9455714Skris	{
9555714Skris	chop;
9655714Skris	s/#.*//;
9755714Skris	if (/^(\S+)\s*=\s*(.*)$/)
9855714Skris		{
9955714Skris		$o="";
10055714Skris		($s,$b)=($1,$2);
10155714Skris		for (;;)
10255714Skris			{
10355714Skris			if ($b =~ /\\$/)
10455714Skris				{
10555714Skris				chop($b);
10655714Skris				$o.=$b." ";
10755714Skris				$b=<IN>;
10855714Skris				chop($b);
10955714Skris				}
11055714Skris			else
11155714Skris				{
11255714Skris				$o.=$b." ";
11355714Skris				last;
11455714Skris				}
11555714Skris			}
11655714Skris		$o =~ s/^\s+//;
11755714Skris		$o =~ s/\s+$//;
11855714Skris		$o =~ s/\s+/ /g;
11955714Skris
120238405Sjkim		$o =~ s/\$[({]([^)}]+)[)}]/$top{$1} or $sym{$1}/ge;
121238405Sjkim		$sym{$s}=($top{$s} or $o);
12255714Skris		}
12355714Skris	}
12455714Skris
12555714Skrisprint "RELATIVE_DIRECTORY=$dir\n";
12655714Skris
12755714Skrisforeach (sort keys %sym)
12855714Skris	{
12955714Skris	print "$_=$sym{$_}\n";
13055714Skris	}
131238405Sjkimif ($dir eq "." && defined($sym{"BUILDENV"}))
132238405Sjkim	{
133238405Sjkim	foreach (split(' ',$sym{"BUILDENV"}))
134238405Sjkim		{
135238405Sjkim		/^(.+)=/;
136238405Sjkim		$top{$1}=$sym{$1};
137238405Sjkim		}
138238405Sjkim	}
139238405Sjkim
14055714Skrisprint "RELATIVE_DIRECTORY=\n";
14155714Skris
14255714Skrisclose (IN);
14355714Skris}
144