2 use ExtUtils::MakeMaker;
4 my $tmpl = "./Info.pm.tmpl";
5 my $info_pm = "./lib/Image/Info.pm";
6 my $idir = "./lib/Image/Info";
7 opendir(DIR, $idir) || die "Can't opendir $idir: $!";
10 for my $file (sort readdir(DIR)) {
11 next unless $file =~ /^([a-zA-Z]\w*)\.pm$/;
14 open(F, "$idir/$file") || die "Can't open '$idir/$file': $!";
18 if (/^=begin\s+register\b/ ... /^=end\s+register\b/) {
19 next if /^=(begin|end)/;
20 if (/^MAGIC:\s+(.*)/) {
27 die "Missing magic for $format" unless @magic;
30 push(@code, qq(return "$format" if $_;));
33 push(@code, qq(return "$format" if \$_ eq $_;));
38 shift(@desc) while @desc && $desc[0] =~ /^\s*$/;
39 pop(@desc) while @desc && $desc[-1] =~ /^\s*$/;
41 $desc .= "\n=item $format\n" unless @desc && $desc[0] =~ /^=item/;
42 $desc .= "\n" . join("", @desc);
47 my $code = "sub determine_file_format
50 " . join("\n ", @code) . "
55 # Copy template to top level module with substitutions
56 open(TMPL, $tmpl) || die "Can't open $tmpl: $!";
57 open(INFO, ">$info_pm") || die "Can't create $info_pm: $!";
59 # This file is autogenerated from $tmpl.
60 # Please do not edit!!
65 if (/^%%DETERMINE_FILE_FORMAT%%/) {
68 elsif (/^%%FORMAT_DESC%%/) {
77 NAME => 'Image::Info',
78 AUTHOR => 'Gisle Aas <gisle@ActiveState.com',
79 VERSION_FROM => $info_pm,
83 clean => { FILES => $info_pm },
84 dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },