mkfiles.pl revision 55714
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/md5",
14"crypto/sha",
15"crypto/mdc2",
16"crypto/hmac",
17"crypto/ripemd",
18"crypto/des",
19"crypto/rc2",
20"crypto/rc4",
21"crypto/rc5",
22"crypto/idea",
23"crypto/bf",
24"crypto/cast",
25"crypto/bn",
26"crypto/rsa",
27"crypto/dsa",
28"crypto/dh",
29"crypto/buffer",
30"crypto/bio",
31"crypto/stack",
32"crypto/lhash",
33"crypto/rand",
34"crypto/err",
35"crypto/objects",
36"crypto/evp",
37"crypto/asn1",
38"crypto/pem",
39"crypto/x509",
40"crypto/x509v3",
41"crypto/conf",
42"crypto/txt_db",
43"crypto/pkcs7",
44"crypto/pkcs12",
45"crypto/comp",
46"ssl",
47"rsaref",
48"apps",
49"test",
50"tools"
51);
52
53foreach (@dirs) {
54	&files_dir ($_, "Makefile.ssl");
55}
56
57exit(0);
58
59sub files_dir
60{
61my ($dir, $makefile) = @_;
62
63my %sym;
64
65open (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
66
67my $s="";
68
69while (<IN>)
70	{
71	chop;
72	s/#.*//;
73	if (/^(\S+)\s*=\s*(.*)$/)
74		{
75		$o="";
76		($s,$b)=($1,$2);
77		for (;;)
78			{
79			if ($b =~ /\\$/)
80				{
81				chop($b);
82				$o.=$b." ";
83				$b=<IN>;
84				chop($b);
85				}
86			else
87				{
88				$o.=$b." ";
89				last;
90				}
91			}
92		$o =~ s/^\s+//;
93		$o =~ s/\s+$//;
94		$o =~ s/\s+/ /g;
95
96		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
97		$sym{$s}=$o;
98		}
99	}
100
101print "RELATIVE_DIRECTORY=$dir\n";
102
103foreach (sort keys %sym)
104	{
105	print "$_=$sym{$_}\n";
106	}
107print "RELATIVE_DIRECTORY=\n";
108
109close (IN);
110}
111