mkfiles.pl revision 142425
1300313Ssjg#!/usr/local/bin/perl
2246149Ssjg#
3246149Ssjg# This is a hacked version of files.pl for systems that can't do a 'make files'.
4246149Ssjg# Do a perl util/mkminfo.pl >MINFO to build MINFO
5246149Ssjg# Written by Steve Henson 1999.
6246149Ssjg
7246149Ssjg# List of directories to process
8246149Ssjg
9246149Ssjgmy @dirs = (
10246149Ssjg".",
11246149Ssjg"crypto",
12246149Ssjg"crypto/md2",
13246149Ssjg"crypto/md4",
14246149Ssjg"crypto/md5",
15300313Ssjg"crypto/sha",
16246149Ssjg"crypto/mdc2",
17246149Ssjg"crypto/hmac",
18246149Ssjg"crypto/ripemd",
19246149Ssjg"crypto/des",
20246149Ssjg"crypto/rc2",
21246149Ssjg"crypto/rc4",
22246149Ssjg"crypto/rc5",
23246149Ssjg"crypto/idea",
24246149Ssjg"crypto/bf",
25246149Ssjg"crypto/cast",
26246149Ssjg"crypto/aes",
27246149Ssjg"crypto/bn",
28246149Ssjg"crypto/rsa",
29246149Ssjg"crypto/dsa",
30246149Ssjg"crypto/dso",
31246149Ssjg"crypto/dh",
32246149Ssjg"crypto/ec",
33246149Ssjg"crypto/buffer",
34246149Ssjg"crypto/bio",
35246149Ssjg"crypto/stack",
36246149Ssjg"crypto/lhash",
37246149Ssjg"crypto/rand",
38246149Ssjg"crypto/err",
39246149Ssjg"crypto/objects",
40246149Ssjg"crypto/evp",
41246149Ssjg"crypto/asn1",
42246149Ssjg"crypto/pem",
43246149Ssjg"crypto/x509",
44246149Ssjg"crypto/x509v3",
45246149Ssjg"crypto/conf",
46246149Ssjg"crypto/txt_db",
47246149Ssjg"crypto/pkcs7",
48246149Ssjg"crypto/pkcs12",
49246149Ssjg"crypto/comp",
50246149Ssjg"crypto/engine",
51246149Ssjg"crypto/ocsp",
52246149Ssjg"crypto/ui",
53246149Ssjg"crypto/krb5",
54246149Ssjg"fips",
55246149Ssjg"fips/aes",
56246149Ssjg"fips/des",
57246149Ssjg"fips/dsa",
58246149Ssjg"fips/rand",
59246149Ssjg"fips/rsa",
60246149Ssjg"fips/sha1",
61246149Ssjg"ssl",
62246149Ssjg"apps",
63246149Ssjg"test",
64246149Ssjg"tools"
65246149Ssjg);
66246149Ssjg
67246149Ssjgforeach (@dirs) {
68246149Ssjg	&files_dir ($_, "Makefile");
69246149Ssjg}
70246149Ssjg
71246149Ssjgexit(0);
72246149Ssjg
73246149Ssjgsub files_dir
74246149Ssjg{
75246149Ssjgmy ($dir, $makefile) = @_;
76246149Ssjg
77246149Ssjgmy %sym;
78246149Ssjg
79246149Ssjgopen (IN, "$dir/$makefile") || die "Can't open $dir/$makefile";
80246149Ssjg
81246149Ssjgmy $s="";
82246149Ssjg
83246149Ssjgwhile (<IN>)
84246149Ssjg	{
85246149Ssjg	chop;
86246149Ssjg	s/#.*//;
87246149Ssjg	if (/^(\S+)\s*=\s*(.*)$/)
88246149Ssjg		{
89246149Ssjg		$o="";
90246149Ssjg		($s,$b)=($1,$2);
91246149Ssjg		for (;;)
92246149Ssjg			{
93246149Ssjg			if ($b =~ /\\$/)
94246149Ssjg				{
95246149Ssjg				chop($b);
96246149Ssjg				$o.=$b." ";
97246149Ssjg				$b=<IN>;
98246149Ssjg				chop($b);
99246149Ssjg				}
100246149Ssjg			else
101246149Ssjg				{
102246149Ssjg				$o.=$b." ";
103246149Ssjg				last;
104246149Ssjg				}
105246149Ssjg			}
106246149Ssjg		$o =~ s/^\s+//;
107246149Ssjg		$o =~ s/\s+$//;
108246149Ssjg		$o =~ s/\s+/ /g;
109246149Ssjg
110246149Ssjg		$o =~ s/\$[({]([^)}]+)[)}]/$sym{$1}/g;
111246149Ssjg		$sym{$s}=$o;
112246149Ssjg		}
113246149Ssjg	}
114246149Ssjg
115246149Ssjgprint "RELATIVE_DIRECTORY=$dir\n";
116246149Ssjg
117246149Ssjgforeach (sort keys %sym)
118246149Ssjg	{
119246149Ssjg	print "$_=$sym{$_}\n";
120246149Ssjg	}
121246149Ssjgprint "RELATIVE_DIRECTORY=\n";
122246149Ssjg
123246149Ssjgclose (IN);
124246149Ssjg}
125246149Ssjg