? '' : ' --case-insensitive';
return <<"EOF";
$target : $gen0 $deps $mkdef
- \$(PERL) $mkdef$ord_ver --ordinals $gen0 --name $ord_name "--OS" "VMS"$case_insensitive > $target
+ \$(PERL) $mkdef$ord_ver --type $args{intent} --ordinals $gen0 --name $ord_name "--OS" "VMS"$case_insensitive > $target
EOF
} elsif (platform->isasm($args{src})) {
#
my $ord_name = $args{generator}->[1] || $args{product};
return <<"EOF";
$target: $gen0 $deps \$(SRCDIR)/util/mkdef.pl
- \$(PERL) \$(SRCDIR)/util/mkdef.pl$ord_ver --ordinals $gen0 --name $ord_name --OS $mkdef_os > $target
+ \$(PERL) \$(SRCDIR)/util/mkdef.pl$ord_ver --type $args{intent} --ordinals $gen0 --name $ord_name --OS $mkdef_os > $target
EOF
} elsif (platform->isasm($args{src})) {
#
$args{generator}->[1] || platform->dsoname($args{product});
return <<"EOF";
$target: $gen0 $deps $mkdef
- "\$(PERL)" "$mkdef"$ord_ver --ordinals $gen0 --name $ord_name --OS windows > $target
+ "\$(PERL)" "$mkdef"$ord_ver --type $args{intent} --ordinals $gen0 --name $ord_name --OS windows > $target
EOF
} elsif (platform->isasm($args{src})) {
#
my $ordinals_file = undef; # the ordinals file to use
my $version = undef; # the version to use for the library
my $OS = undef; # the operating system family
+my $type = 'lib'; # either lib or dso
my $verbose = 0;
my $ctest = 0;
my $debug = 0;
'ordinals=s' => \$ordinals_file,
'version=s' => \$version,
'OS=s' => \$OS,
+ 'type=s' => \$type,
'ctest' => \$ctest,
'verbose' => \$verbose,
# For VMS
die "Please supply arguments\n"
unless $name && $ordinals_file && $OS;
+die "--type argument must be equal to 'lib' or 'dso'"
+ if $type ne 'lib' && $type ne 'dso';
# When building a "variant" shared library, with a custom SONAME, also customize
# all the symbol versions. This produces a shared object that can coexist
#
(my $SO_VARIANT = uc($target{"shlib_variant"} // '')) =~ s/\W/_/g;
-my $libname = platform->sharedname($name);
+my $libname = $type eq 'lib' ? platform->sharedname($name) : platform->dsoname($name);
my %OS_data = (
solaris => { writer => \&writer_linux,