2 use ExtUtils::MakeMaker;
5 my $tmpl = File::Spec->catfile("Info.pm.tmpl");
6 my $info_pm = File::Spec->catfile("lib", "Image", "Info.pm");
7 my $idir = File::Spec->catdir("lib", "Image", "Info");
8 opendir(DIR, $idir) || die "Can't opendir $idir: $!";
11 for my $file (sort readdir(DIR)) {
12 next unless $file =~ /^([a-zA-Z]\w*)\.pm$/;
15 open(F, File::Spec->catfile($idir, $file)) || die "Can't open '$idir/$file': $!";
19 if (/^=begin\s+register\b/ ... /^=end\s+register\b/) {
20 next if /^=(begin|end)/;
21 if (/^MAGIC:\s+(.*)/) {
28 die "Missing magic for $format" unless @magic;
31 push(@code, qq(return "$format" if $_;));
34 push(@code, qq(return "$format" if \$_ eq $_;));
39 shift(@desc) while @desc && $desc[0] =~ /^\s*$/;
40 pop(@desc) while @desc && $desc[-1] =~ /^\s*$/;
42 $desc .= "\n=item $format\n" unless @desc && $desc[0] =~ /^=item/;
43 $desc .= "\n" . join("", @desc);
48 my $code = "sub determine_file_format
51 " . join("\n ", @code) . "
56 # Copy template to top level module with substitutions
57 open(TMPL, $tmpl) || die "Can't open $tmpl: $!";
58 open(INFO, ">$info_pm") || die "Can't create $info_pm: $!";
60 # This file is autogenerated from $tmpl.
61 # Please do not edit!!
66 if (/^%%DETERMINE_FILE_FORMAT%%/) {
69 elsif (/^%%FORMAT_DESC%%/) {
78 NAME => 'Image::Info',
79 AUTHOR => 'Gisle Aas <gisle@ActiveState.com',
80 VERSION_FROM => $info_pm,
82 ($] < 5.008 ? ('IO::String' => 1.03) : ()),
84 clean => { FILES => $info_pm },
85 dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },