package MY;
$self->{OPTIMIZE} =~ /-g/ and $debug=1;
$self->{CC}="cxx -xtaso";
$self->{LD}="cxx -taso";
$self->{LIBS}=["-L$ENV{OS_ROOTDIR}/lib -loscol -los -losthr"];
$self->{FULLPERL}='perl32';
check_perl32();
check_cxx_version();
sub check_perl32() {
my $out=`perl32 -e 'print 1+1'`;
die "cant run perl32\n" if @?;
return if $out eq "2";
die "your perl32 might be buggy. 1+1=$out ?\n";
}
sub check_cxx_version {
my $out=`cxx -V`;
die "cant run cxx\n" if @?;
return if $out=~/\QV5.5-004/;
warn "$out\n";
die "Your compiler Version wont work\n" if $out=~/\QT5.6-009/;
warn "Compiler version untested\n";
}
# MakeMaker overrides
sub const_config {
my $out=shift->SUPER::const_config;
$out=~s/^(LDDLFLAGS)(.*)-s/$1$2/m if $debug; # remove -s for debugging
$out;
}
sub test {
my $out=shift->SUPER::test;
$out=~s/PERL_DL_NONLAZY=1/PERL_DL_NONLAZY=0/g; # I have NO idea, what symbols are missing
$out;
}
sub c_o {
my $out=shift->SUPER::c_o;
# wish, joshua didn't call his C++ files .c. So we need to modify
# our .c.o rule to tell cxx, that our .c files really are C++ source
$out=~s/\$\*\.c/-x cxx \$*.c/;
$out;
}
sub cflags {
my $out=shift->SUPER::cflags(@_);
$out=~s/-std//; # cxx5.5-004 doesn't want this.
$out=~s/-fprm d//; # cxx5.5-004 bug: if given cxx forgets to pass args to cc :-)
$out;
}
# MY::postamble allready defined by Makefile.PL.
# we are going to redefine it. Save old method.
BEGIN { $HINTS::old_postamble = \&postamble; }
sub postamble {
my $out = &$HINTS::old_postamble(@_);
#
# add -xtaso flag to the ossg rule
#
$out=~s/^(\t\s*)ossg(\s)/$1ossg -xtaso$2/gm; # add -xtaso to ossg rule
$out;
}