The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use ExtUtils::MakeMaker;
use Config;

my $arch = config_value('archname') . "-" . config_value('osvers');
my $got = "";
if (-e 'arch.txt') {
    open my $in, "<", "arch.txt" or die "Can't read 'arch.txt': $^OS_ERROR";
    $got = ~< $in;
    close $in;
}
if ($got ne $arch) {
    if (-e "Errno.pm") {
        print $^STDOUT, "Removing old 'Errno.pm'\n";
        unlink "Errno.pm" 
            or die "Failed to remove out of date 'Errno.pm': $^OS_ERROR";
    }
    open my $out, ">", "arch.txt" or die "Can't write 'arch.txt': $^OS_ERROR";
    print $out, $arch;
    close $out;
}

WriteMakefile(
    NAME	 => 'Errno',
    VERSION_FROM => 'Errno_pm.PL',
    PL_FILES	 => \%('Errno_pm.PL'=>'Errno.pm'),
    PM		 => \%('Errno.pm' => '$(INST_LIBDIR)/Errno.pm'),
    'clean'	 => \%(FILES => 'Errno.pm arch.txt'),
    'dist'	 => \%(
	COMPRESS => 'gzip -9f',
	SUFFIX   => '.gz', 
	DIST_DEFAULT => 'd/Errno.pm tardist',
    ),
);

sub MY::postamble {
    my $TARG = MM->catfile('d','Errno.pm');
qq!$TARG : Makefile
	echo '#This is a dummy file so CPAN will find a VERSION' > $TARG
	echo 'package Errno;' >> $TARG
	echo '\$\$VERSION = "\$(VERSION)";' >>$TARG
	echo '#This is to make sure require will return an error' >>$TARG
	echo '0;' >>$TARG

!
}