+
+sub make_metafile {
+ my ($opts) = @_;
+
+ # extract the version
+ my $version = MM->parse_version($opts->{VERSION_FROM})
+ or die "Could not extract version number from $opts->{VERSION_FROM}\n";
+
+ my $meta = <<YAML;
+--- #YAML:1.0
+name: $opts->{NAME}
+version: $version
+version_from: $opts->{VERSION_FROM}
+author: $opts->{AUTHOR}
+abstract: $opts->{ABSTRACT}
+installdirs: site
+YAML
+ if (keys %{$Recommends{$opts->{NAME}}}) {
+ $meta .= "recommends:\n";
+ while (my ($module, $version) = each %{$Recommends{$opts->{NAME}}}) {
+ $meta .= " $module: $version\n";
+ }
+ }
+ $meta .= <<YAML;
+license: perl
+dynamic_config: 1
+distribution_type: module
+generated_by: $opts->{NAME} version $version
+YAML
+ my $save_meta;
+ if (open META, "< META.yml") {
+ my $old_meta = do { local $/; <META> };
+ close META;
+
+ $save_meta = $old_meta ne $meta;
+ }
+ else {
+ ++$save_meta;
+ }
+ if ($save_meta) {
+ print "Updating META.yml\n";
+ open META, "> META.yml" or die "Cannot create META.yml: $!";
+ print META $meta;
+ close META;
+ }
+}