use 5.006; use strict; use ExtUtils::MakeMaker; use Config; if ((not $ARGV[0]) or (not $ARGV[1])) { print "Usage: perl Makefile.PL \n"; print "(e.g. 'perl Makefile.PL ../sendmail ../sendmail/obj.FreeBSD.4.0-RELEASE.i386')\n"; print "\n"; exit; } if (not $Config{usethreads}) { print "To use this module, your perl interpreter must have been compiled with\n"; print "\t-Dusethreads.\n"; print "\n"; exit; } my $SENDMAIL_PATH = MM->canonpath($ARGV[0]); my $SENDMAIL_OBJ_PATH = MM->canonpath($ARGV[1]); my $MILTER_LIB = MM->catdir($SENDMAIL_OBJ_PATH, "libmilter"); my $SMUTIL_LIB = MM->catdir($SENDMAIL_OBJ_PATH, "libsmutil"); my $SM_LIB = MM->catdir($SENDMAIL_OBJ_PATH, "libsm"); my $MILTER_INCLUDE = MM->catdir($SENDMAIL_PATH, "include"); my $SENDMAIL_INCLUDE = MM->catdir($SENDMAIL_PATH, "sendmail"); sub milter_configure { my $hash_ref = {}; my $libs; my $ccflags; # Standard milter libraries $libs = "-L$MILTER_LIB -L$SMUTIL_LIB -L$SM_LIB -lmilter -lsmutil -lsm"; # POSIX threads support. if ($Config{libs} =~ /-lpthread/) { $libs .= " -lpthread"; } else { $ccflags = '-pthread'; } # Solaris 2.6 -lsocket -lnsl support. if ($Config{libs} =~ /-lsocket/) { $libs .= " -lsocket"; } if ($Config{libs} =~ /-lnsl/) { $libs .= " -lnsl"; } # Solaris and inet_aton / inet_pton functions. if (($^O eq 'solaris') && (not $Config{d_inetaton})) { $libs .= " -lresolv"; } # Only set the CCFLAGS variable if there's something. if ($ccflags) { $hash_ref->{'CCFLAGS'} = $ccflags; } $hash_ref->{'LIBS'} = [ "$libs" ]; return $hash_ref; } WriteMakefile( 'NAME' => 'Sendmail::Milter', 'VERSION_FROM' => 'Milter.pm', 'CONFIGURE' => \&milter_configure, 'OBJECT' => '$(BASEEXT)$(OBJ_EXT) intpools$(OBJ_EXT) callbacks$(OBJ_EXT)', 'DEFINE' => '', 'INC' => "-I$SENDMAIL_INCLUDE -I$MILTER_INCLUDE", );