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", 18238405Sjkim"crypto/cmac", 1955714Skris"crypto/ripemd", 2055714Skris"crypto/des", 2155714Skris"crypto/rc2", 2255714Skris"crypto/rc4", 2355714Skris"crypto/rc5", 2455714Skris"crypto/idea", 2555714Skris"crypto/bf", 2655714Skris"crypto/cast", 27109998Smarkm"crypto/aes", 28162911Ssimon"crypto/camellia", 29194206Ssimon"crypto/seed", 30238405Sjkim"crypto/modes", 3155714Skris"crypto/bn", 3255714Skris"crypto/rsa", 3355714Skris"crypto/dsa", 3468651Skris"crypto/dso", 3555714Skris"crypto/dh", 36109998Smarkm"crypto/ec", 37160814Ssimon"crypto/ecdh", 38160814Ssimon"crypto/ecdsa", 3955714Skris"crypto/buffer", 4055714Skris"crypto/bio", 4155714Skris"crypto/stack", 4255714Skris"crypto/lhash", 4355714Skris"crypto/rand", 4455714Skris"crypto/err", 4555714Skris"crypto/objects", 4655714Skris"crypto/evp", 4755714Skris"crypto/asn1", 4855714Skris"crypto/pem", 4955714Skris"crypto/x509", 5055714Skris"crypto/x509v3", 51238405Sjkim"crypto/cms", 5255714Skris"crypto/conf", 53194206Ssimon"crypto/jpake", 5455714Skris"crypto/txt_db", 5555714Skris"crypto/pkcs7", 5655714Skris"crypto/pkcs12", 5755714Skris"crypto/comp", 58109998Smarkm"crypto/engine", 59109998Smarkm"crypto/ocsp", 60109998Smarkm"crypto/ui", 61109998Smarkm"crypto/krb5", 62238405Sjkim#"crypto/store", 63160814Ssimon"crypto/pqueue", 64238405Sjkim"crypto/whrlpool", 65238405Sjkim"crypto/ts", 66238405Sjkim"crypto/srp", 6755714Skris"ssl", 6855714Skris"apps", 69160814Ssimon"engines", 70238405Sjkim"engines/ccgost", 7155714Skris"test", 7255714Skris"tools" 7355714Skris); 7455714Skris 75238405Sjkim%top; 76238405Sjkim 7755714Skrisforeach (@dirs) { 78142425Snectar &files_dir ($_, "Makefile"); 7955714Skris} 8055714Skris 8155714Skrisexit(0); 8255714Skris 8355714Skrissub files_dir 8455714Skris{ 8555714Skrismy ($dir, $makefile) = @_; 8655714Skris 8755714Skrismy %sym; 8855714Skris 8955714Skrisopen (IN, "$dir/$makefile") || die "Can't open $dir/$makefile"; 9055714Skris 9155714Skrismy $s=""; 9255714Skris 9355714Skriswhile (<IN>) 9455714Skris { 9555714Skris chop; 9655714Skris s/#.*//; 9755714Skris if (/^(\S+)\s*=\s*(.*)$/) 9855714Skris { 9955714Skris $o=""; 10055714Skris ($s,$b)=($1,$2); 10155714Skris for (;;) 10255714Skris { 10355714Skris if ($b =~ /\\$/) 10455714Skris { 10555714Skris chop($b); 10655714Skris $o.=$b." "; 10755714Skris $b=<IN>; 10855714Skris chop($b); 10955714Skris } 11055714Skris else 11155714Skris { 11255714Skris $o.=$b." "; 11355714Skris last; 11455714Skris } 11555714Skris } 11655714Skris $o =~ s/^\s+//; 11755714Skris $o =~ s/\s+$//; 11855714Skris $o =~ s/\s+/ /g; 11955714Skris 120238405Sjkim $o =~ s/\$[({]([^)}]+)[)}]/$top{$1} or $sym{$1}/ge; 121238405Sjkim $sym{$s}=($top{$s} or $o); 12255714Skris } 12355714Skris } 12455714Skris 12555714Skrisprint "RELATIVE_DIRECTORY=$dir\n"; 12655714Skris 12755714Skrisforeach (sort keys %sym) 12855714Skris { 12955714Skris print "$_=$sym{$_}\n"; 13055714Skris } 131238405Sjkimif ($dir eq "." && defined($sym{"BUILDENV"})) 132238405Sjkim { 133238405Sjkim foreach (split(' ',$sym{"BUILDENV"})) 134238405Sjkim { 135238405Sjkim /^(.+)=/; 136238405Sjkim $top{$1}=$sym{$1}; 137238405Sjkim } 138238405Sjkim } 139238405Sjkim 14055714Skrisprint "RELATIVE_DIRECTORY=\n"; 14155714Skris 14255714Skrisclose (IN); 14355714Skris} 144