diff options
Diffstat (limited to 'contrib/perl5/ext/SDBM_File/sdbm/Makefile.PL')
-rw-r--r-- | contrib/perl5/ext/SDBM_File/sdbm/Makefile.PL | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/contrib/perl5/ext/SDBM_File/sdbm/Makefile.PL b/contrib/perl5/ext/SDBM_File/sdbm/Makefile.PL new file mode 100644 index 000000000000..e6fdcf93069e --- /dev/null +++ b/contrib/perl5/ext/SDBM_File/sdbm/Makefile.PL @@ -0,0 +1,65 @@ +use ExtUtils::MakeMaker; + +$define = '-DSDBM -DDUFF'; +$define .= ' -DWIN32 -DPERL_STATIC_SYMS' if ($^O eq 'MSWin32'); + +if ($^O eq 'VMS') { # Old VAXC compiler can't handle Duff's device + require Config; + $define =~ s/\s+-DDUFF// if $Config::Config{'vms_cc_type'} eq 'vaxc'; +} + +WriteMakefile( + NAME => 'sdbm', # (doesn't matter what the name is here) oh yes it does +# LINKTYPE => 'static', + DEFINE => $define, + INC => '-I$(PERL_INC)', # force PERL_INC dir ahead of system -I's + INST_ARCHLIB => '.', + SKIP => [qw(dynamic dynamic_lib dlsyms)], + OBJECT => '$(O_FILES)', + clean => {'FILES' => 'dbu libsdbm.a dbd dba dbe x-dbu *.dir *.pag'}, + H => [qw(tune.h sdbm.h pair.h $(PERL_INC)/config.h)], + C => [qw(sdbm.c pair.c hash.c)] +); + +sub MY::constants { + package MY; + my $r = shift->SUPER::constants(); + if ($^O eq 'VMS') { + $r =~ s/^INST_STATIC =.*$/INST_STATIC = libsdbm\$(LIB_EXT)/m + } + return $r; +} + +sub MY::post_constants { + package MY; + if ($^O eq 'VMS') { + shift->SUPER::post_constants(); + } else { +' +INST_STATIC = libsdbm$(LIB_EXT) +' + } +} + +sub MY::top_targets { + my $r = ' +all :: static + $(NOECHO) $(NOOP) + +config :: + $(NOECHO) $(NOOP) + +lint: + lint -abchx $(LIBSRCS) + +'; + $r .= ' +# This is a workaround, the problem is that our old GNU make exports +# variables into the environment so $(MYEXTLIB) is set in here to this +# value which can not be built. +sdbm/libsdbm.a: + $(NOECHO) $(NOOP) +' unless $^O eq 'VMS'; + + return $r; +} |