This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
1859aaeb04a239458dcece0205a20083e2392013
[perl5.git] / ext / SDBM_File / sdbm / Makefile.PL
1 use ExtUtils::MakeMaker;
2
3 my $define = '-DSDBM -DDUFF';
4 $define .= ' -DWIN32 -DPERL_STATIC_SYMS' if ($^O eq 'MSWin32');
5
6 if ($^O eq 'VMS') {  # Old VAXC compiler can't handle Duff's device
7     require Config;
8     $define =~ s/\s+-DDUFF// if $Config::Config{'vms_cc_type'} eq 'vaxc';
9 }
10
11 WriteMakefile(
12     NAME      => 'sdbm', # (doesn't matter what the name is here) oh yes it does
13     LINKTYPE  => 'static',
14     DEFINE    => $define,
15     INC       => '-I$(PERL_INC)', # force PERL_INC dir ahead of system -I's
16     OBJECT    => '$(O_FILES)',
17     clean     => {'FILES' => 'dbu libsdbm.a dbd dba dbe x-dbu *.dir *.pag'},
18     H         => [qw(tune.h sdbm.h pair.h $(PERL_INC)/config.h)],
19     C         => [qw(sdbm.c pair.c hash.c)]
20 );
21
22
23 package MY;
24 sub constants {
25     my $self = shift;
26
27     $self->{INST_STATIC} = 'libsdbm$(LIB_EXT)';
28
29     return $self->SUPER::constants();
30 }
31
32 sub top_targets {
33     my $self = shift;
34     return $self->SUPER::top_targets if $^O eq 'VMS';
35     my $r = '
36 all :: static
37         $(NOECHO) $(NOOP)
38
39 lint:
40         lint -abchx $(LIBSRCS)
41
42 # This is a workaround, the problem is that our old GNU make exports
43 # variables into the environment so $(MYEXTLIB) is set in here to this
44 # value which can not be built.
45 sdbm/libsdbm.a:
46         $(NOECHO) $(NOOP)
47 ';
48
49     return $r . $self->SUPER::top_targets;
50 }