use ExtUtils::MakeMaker;
use Getopt::Long;
my $libpath;
my $incpath;
my @replacement_args;
my $WSFC_DIR = "/opt/wso2/wsf_c";
sub validate_versions {
$home = shift;
# crapping out if libs cannot be found
-e "$home/lib" || die "Can't find the lib folder, please reinstall WSF/C";
# crapping out if the WSF/C version differ
-e "$home/include/axis2-1.4.0" || die "WSF/Perl 1.1 require WSF/C version 1.3, please install WSF/C 1.3";
}
# Tries to get WSFC_HOME first from the standard installation folder.
# If that's unseccessful checks the environment variable. If that also
# fails try to get it from ARGV. Crap out if everything fails, cannot
# continue without WSF/C.
if ( -e $WSFC_DIR ) {
# ah, looks like we have a standard installation of WSF/C
validate_versions( $WSFC_DIR );
$libpath = "$WSFC_DIR/lib";
$incpath = "-I$WSFC_DIR/include/axis2-1.4.0 -I$WSFC_DIR/include/rampart-1.2.0";
} elsif ( defined $ENV{WSFC_HOME} ) {
# environment variable is set, let's try to get the dir from there
validate_versions( $ENV{WSFC_HOME} );
$libpath = $ENV{WSFC_HOME} . "/lib";
$incpath = "-I" . $ENV{WSFC_HOME} . "/include/axis2-1.4.0 " .
"-I" . $ENV{WSFC_HOME} . "/include/rampart-1.2.0";
} else {
# let's see we can get the folder from ARGV
if ( defined @ARGV ) {
my $wsfc_home;
GetOptions( "with-wsfc=s", \$wsfc_home );
if ( defined $wsfc_home ) {
validate_versions( $wsfc_home );
$libpath = "$wsfc_home/lib";
$incpath = "-I$wsfc_home/include/axis2-1.4.0 -I$wsfc_home/include/rampart-1.2.0";
} else {
die "Please install WSF/C and then retry the WSF/Perl installation";
}
} else {
die "Please install WSF/C and then retry the WSF/Perl installation";
}
}
$libs = "-L$libpath " if( defined( $libpath ) );
$libs .= "-laxutil -laxis2_minizip -lperl -laxis2_parser -laxis2_libxml2 " .
"-laxis2_axiom -laxis2_engine -laxis2_http_common " .
"-laxis2_http_sender -laxis2_http_receiver -lneethi_util -lneethi " .
"-laxis2_parser -lhtpwcb -lomopenssl -lomxmlsec -lsaml " .
"-lsandesha2_client -lmod_rampart";
my @options;
push @options, ( LIBS => [ $libs ], );
push @options, ( INC => "$incpath", ) if( defined( $incpath ) );
WriteMakefile(
'NAME' => 'WSO2::WSF::C',
'AUTHOR' => 'WSO2 WSF/Perl Team',
'OBJECT' => 'WSFC_wrap.o',
@options
);