mkfiles.pl revision 160814
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/bn",
28"crypto/rsa",
29"crypto/dsa",
30"crypto/dso",
31"crypto/dh",
32"crypto/ec",
33"crypto/ecdh",
34"crypto/ecdsa",
35"crypto/buffer",
36"crypto/bio",
37"crypto/stack",
38"crypto/lhash",
39"crypto/rand",
40"crypto/err",
41"crypto/objects",
42"crypto/evp",
43"crypto/asn1",
44"crypto/pem",
45"crypto/x509",
46"crypto/x509v3",
47"crypto/conf",
48"crypto/txt_db",
49"crypto/pkcs7",
50"crypto/pkcs12",
51"crypto/comp",
52"crypto/engine",
53"crypto/ocsp",
54"crypto/ui",
55"crypto/krb5",
56"crypto/store",
57"crypto/pqueue",
58"ssl",
59"apps",
60"engines",
61"test",
62"tools"
63);
64
65foreach (@dirs) {
66	&files_dir ($_, "Makefile");
67}
68
69exit(0);
70
71sub files_dir
72{
73my ($dir, $makefile) = @_;
74
75my %sym;
76
77open (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
78
79my $s="";
80
81while (<IN>)
82	{
83	chop;
84	s/#.*//;
85	if (/^(\S+)\s*=\s*(.*)$/)
86		{
87		$o="";
88		($s,$b)=($1,$2);
89		for (;;)
90			{
91			if ($b =~ /\\$/)
92				{
93				chop($b);
94				$o.=$b." ";
95				$b=<IN>;
96				chop($b);
97				}
98			else
99				{
100				$o.=$b." ";
101				last;
102				}
103			}
104		$o =~ s/^\s+//;
105		$o =~ s/\s+$//;
106		$o =~ s/\s+/ /g;
107
108		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
109		$sym{$s}=$o;
110		}
111	}
112
113print "RELATIVE_DIRECTORY=$dir\n";
114
115foreach (sort keys %sym)
116	{
117	print "$_=$sym{$_}\n";
118	}
119print "RELATIVE_DIRECTORY=\n";
120
121close (IN);
122}
123