use Config;
use ExtUtils::MakeMaker;
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
my $moduledir = $Config{'siteprefixexp'} . "/lib/IPTables-IPv4";
my $incpath = $Config{'archlibexp'} . "/CORE/perl.h";
{
package MY;
sub test_via_harness {
my($self, $perl, $tests) = @_;
return $self->SUPER::test_via_harness("IPT_MODPATH=\$(CURDIR)/modules $perl", $tests);
}
sub test_via_script {
my($self, $perl, $tests) = @_;
return $self->SUPER::test_via_script("IPT_MODPATH=\$(CURDIR)/modules $perl", $tests);
}
sub postamble {
"
libiptc/libiptc.a: libiptc/*.c
make -C libiptc/ all
\%_v6.o: \%.c
\$(CCCMD) \$(CCCDLFLAGS) \"-I\$(PERL_INC)\" \$(PASTHRU_DEFINE) \$(DEFINE) -DINET6 -o \$@ \$<
pure_all:: modules
make -C modules/ all INSTALL_DIR=$moduledir
install::
make -C modules/ install INSTALL_DIR=$moduledir
clean::
make -C modules/ clean
make -C libiptc/ clean
V6_INST_ARCHAUTODIR = \$(INST_ARCHLIB)/auto/IPTables/IPv6
V6_OBJECTS = IPv6\$(OBJ_EXT) loader_v6\$(OBJ_EXT) packer_v6\$(OBJ_EXT) unpacker_v6\$(OBJ_EXT) maskgen_v6\$(OBJ_EXT) libiptc/libiptc.a
config :: \$(V6_INST_ARCHAUTODIR)/.exists
\@\$(NOOP)
\$(V6_OBJECTS) : \$(PERL_HDRS)
\$(V6_OBJECTS) : \$(FIRST_MAKEFILE)
\$(V6_INST_ARCHAUTODIR)/.exists :: $incpath
\@\$(MKPATH) \$(V6_INST_ARCHAUTODIR)
\@\$(EQUALIZE_TIMESTAMP) $incpath \$\@
\$(V6_INST_ARCHAUTODIR)/IPv6.\$(DLEXT): \$(V6_OBJECTS)
\$(RM_F) \$\@
LD_RUN_PATH=\"\$(LD_RUN_PATH)\" \$(LD) \$(LDDLFLAGS) \$^ \$(OTHERLDFLAGS) -o \$\@ \$(MYEXTLIB) \$(PERL_ARCHIVE) \$(LDLOADLIBS) \$(PERL_ARCHIVE_AFTER) \$(EXPORT_LIST)
\$(CHMOD) \$(PERM_RWX) \$\@
IPv6.bs: Makefile \$(V6_INST_ARCHAUTODIR)/.exists
\@echo \"Running Mkbootstrap for IPTables::IPv6 ()\"
\@\$(PERLRUN) \\
\"-MExtUtils::Mkbootstrap\" \\
-e \"Mkbootstrap('IPv6','');\"
\@\$(TOUCH) \$\@
\$(CHMOD) \$(PERM_RW) \$\@
\$(V6_INST_ARCHAUTODIR)/IPv6.bs: IPv6.bs \$(V6_INST_ARCHAUTODIR)/.exists
\@rm -rf \$\@
-cp IPv6.bs \$\@
\$(CHMOD) \$(PERM_RW) \$\@
dynamic:: \$(V6_INST_ARCHAUTODIR)/IPv6.\$(DLEXT) \$(V6_INST_ARCHAUTODIR)/IPv6.bs
";
}
}
WriteMakefile(
'NAME' => 'IPTables::IPv4',
'VERSION_FROM' => 'IPv4.pm', # finds $VERSION
'OBJECT' => 'IPv4.o loader.o packer.o unpacker.o maskgen.o libiptc/libiptc.a',
'INC' => '-Iinclude -I/usr/src/linux/include',
'CCFLAGS' => "-Wall -DMODULE_PATH=\\\"$moduledir\\\"" . (defined $Config{'use64bitint'} ? " -DPERL_USES_64BIT_INT" : ""),
'TYPEMAPS' => ['IPTables.typemap'],
'XSPROTOARG' => '-noprototypes',
);