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