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",
1855714Skris"crypto/ripemd",
1955714Skris"crypto/des",
2055714Skris"crypto/rc2",
2155714Skris"crypto/rc4",
2255714Skris"crypto/rc5",
2355714Skris"crypto/idea",
2455714Skris"crypto/bf",
2555714Skris"crypto/cast",
26109998Smarkm"crypto/aes",
27162911Ssimon"crypto/camellia",
28194206Ssimon"crypto/seed",
2955714Skris"crypto/bn",
3055714Skris"crypto/rsa",
3155714Skris"crypto/dsa",
3268651Skris"crypto/dso",
3355714Skris"crypto/dh",
34109998Smarkm"crypto/ec",
35160814Ssimon"crypto/ecdh",
36160814Ssimon"crypto/ecdsa",
3755714Skris"crypto/buffer",
3855714Skris"crypto/bio",
3955714Skris"crypto/stack",
4055714Skris"crypto/lhash",
4155714Skris"crypto/rand",
4255714Skris"crypto/err",
4355714Skris"crypto/objects",
4455714Skris"crypto/evp",
4555714Skris"crypto/asn1",
4655714Skris"crypto/pem",
4755714Skris"crypto/x509",
4855714Skris"crypto/x509v3",
4955714Skris"crypto/conf",
50194206Ssimon"crypto/jpake",
5155714Skris"crypto/txt_db",
5255714Skris"crypto/pkcs7",
5355714Skris"crypto/pkcs12",
5455714Skris"crypto/comp",
55109998Smarkm"crypto/engine",
56109998Smarkm"crypto/ocsp",
57109998Smarkm"crypto/ui",
58109998Smarkm"crypto/krb5",
59160814Ssimon"crypto/store",
60160814Ssimon"crypto/pqueue",
61194206Ssimon"crypto/cms",
62194206Ssimon"fips",
63194206Ssimon"fips/aes",
64194206Ssimon"fips/des",
65194206Ssimon"fips/dsa",
66194206Ssimon"fips/dh",
67194206Ssimon"fips/hmac",
68194206Ssimon"fips/rand",
69194206Ssimon"fips/rsa",
70194206Ssimon"fips/sha",
7155714Skris"ssl",
7255714Skris"apps",
73160814Ssimon"engines",
7455714Skris"test",
7555714Skris"tools"
7655714Skris);
7755714Skris
7855714Skrisforeach (@dirs) {
79142425Snectar	&files_dir ($_, "Makefile");
8055714Skris}
8155714Skris
8255714Skrisexit(0);
8355714Skris
8455714Skrissub files_dir
8555714Skris{
8655714Skrismy ($dir, $makefile) = @_;
8755714Skris
8855714Skrismy %sym;
8955714Skris
9055714Skrisopen (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
9155714Skris
9255714Skrismy $s="";
9355714Skris
9455714Skriswhile (<IN>)
9555714Skris	{
9655714Skris	chop;
9755714Skris	s/#.*//;
9855714Skris	if (/^(\S+)\s*=\s*(.*)$/)
9955714Skris		{
10055714Skris		$o="";
10155714Skris		($s,$b)=($1,$2);
10255714Skris		for (;;)
10355714Skris			{
10455714Skris			if ($b =~ /\\$/)
10555714Skris				{
10655714Skris				chop($b);
10755714Skris				$o.=$b." ";
10855714Skris				$b=<IN>;
10955714Skris				chop($b);
11055714Skris				}
11155714Skris			else
11255714Skris				{
11355714Skris				$o.=$b." ";
11455714Skris				last;
11555714Skris				}
11655714Skris			}
11755714Skris		$o =~ s/^\s+//;
11855714Skris		$o =~ s/\s+$//;
11955714Skris		$o =~ s/\s+/ /g;
12055714Skris
12155714Skris		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
12255714Skris		$sym{$s}=$o;
12355714Skris		}
12455714Skris	}
12555714Skris
12655714Skrisprint "RELATIVE_DIRECTORY=$dir\n";
12755714Skris
12855714Skrisforeach (sort keys %sym)
12955714Skris	{
13055714Skris	print "$_=$sym{$_}\n";
13155714Skris	}
13255714Skrisprint "RELATIVE_DIRECTORY=\n";
13355714Skris
13455714Skrisclose (IN);
13555714Skris}
136