Commit | Line | Data |
---|---|---|
42793c05 | 1 | use ExtUtils::MakeMaker; |
137443ea | 2 | |
85c35b1b | 3 | my $define = '-DSDBM -DDUFF'; |
9c293c15 | 4 | $define .= ' -DWIN32 -DPERL_STATIC_SYMS' if ($^O eq 'MSWin32'); |
137443ea | 5 | |
17f28c40 | 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 | ||
42793c05 | 11 | WriteMakefile( |
ba14e5f0 | 12 | NAME => 'sdbm', # (doesn't matter what the name is here) oh yes it does |
05106a66 | 13 | LINKTYPE => 'static', |
137443ea | 14 | DEFINE => $define, |
4dcba783 | 15 | INC => '-I$(PERL_INC)', # force PERL_INC dir ahead of system -I's |
17f28c40 | 16 | OBJECT => '$(O_FILES)', |
74767600 | 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)] | |
42793c05 | 20 | ); |
21 | ||
5ea525d0 | 22 | |
23 | package MY; | |
24 | sub constants { | |
3a91618c | 25 | my $self = shift; |
26 | ||
27 | $self->{INST_STATIC} = 'libsdbm$(LIB_EXT)'; | |
b2b3adea | 28 | |
3a91618c | 29 | return $self->SUPER::constants(); |
137443ea | 30 | } |
42793c05 | 31 | |
5ea525d0 | 32 | sub top_targets { |
33 | my $self = shift; | |
ffea5178 | 34 | my $r = ' |
42793c05 | 35 | all :: static |
3a91618c | 36 | $(NOECHO) $(NOOP) |
42793c05 | 37 | |
42793c05 | 38 | lint: |
39 | lint -abchx $(LIBSRCS) | |
02c45c47 | 40 | |
ffea5178 | 41 | '; |
42 | $r .= ' | |
02c45c47 | 43 | # This is a workaround, the problem is that our old GNU make exports |
44 | # variables into the environment so $(MYEXTLIB) is set in here to this | |
45 | # value which can not be built. | |
46 | sdbm/libsdbm.a: | |
3a91618c | 47 | $(NOECHO) $(NOOP) |
ffea5178 | 48 | ' unless $^O eq 'VMS'; |
49 | ||
5ea525d0 | 50 | return $r . $self->SUPER::top_targets; |
42793c05 | 51 | } |