Hi Ben,
Am 08.05.2009 um 20:51 schrieb Ben Walton:
The ruby build fails with studio but passes with with gcc. It's an
issue of the (somewhat nasty) way that Makefiles are generated for
some of the extensions (without auto*). These are done on the fly, so
it wasn't a simple post-configure step. It ends up passing flags to
ld that ld doesn't like. I wasn't able to nail it down, but didn't
fight it too hard, either.
James gave me an incredibly useful advice: Interpose execution
and rewrite arguments. For example to rewrite arguments to cc
and CC you can write this (taken from
http://gar.svn.sourceforge.net/viewvc/gar/csw/mgar/pkg/flac/trunk/Makefile
include gar/category.mk
CC := $(abspath ./bin/cc)
CXX := $(abspath ./bin/CC)
and then have heavy hacking (here, includes to relative pathes
are reordered to be before include to absolute pathes):
::::::::::::::
bin/CC
::::::::::::::
#!/opt/csw/bin/perl -w
use strict;
my @oargs;
my @includes = grep { /^-I/ } @ARGV;
@includes = ((grep { /^-I[^\/]/ } @includes),(grep { /^-I[\/]/ }
@includes));
my @argswoincludes = grep { !/^-I/ } @ARGV;
foreach (@ARGV) {
if( /^-I/ ) {
push @oargs, @includes, @argswoincludes;
last;
}
push @oargs, shift @argswoincludes;
}
my $cc = "/opt/studio/SOS11/SUNWspro/bin/" . ($0 =~ /cc/ ? "cc" :
"CC");
print "$cc ", join( " ", @oargs ), "\n";
exec( $cc, @oargs );
You could poke around stuff for "ld" also, of course...
Best regards
-- Dago
_______________________________________________
maintainers mailing list
[email protected]
https://lists.opencsw.org/mailman/listinfo/maintainers