Fellow Monks,
There has to be a better way to specify multiple C source files for use with Inline::C module. In my case, the C source files, header files, and the library are in the same directory as the Perl script. Here's what I am currently forced to do:
my $relSourcePath;
my $inlineCFile1;
my $inlineCFile2;
my $inlineBuildDir;
my $libDir;
my $incDir;
BEGIN {
# this file is in the same directory as the rest of the sources
$relSourcePath = File::Spec->rel2abs(dirname($0));
die "\nInstall path must not have spaces.\n\n" if $relSourcePath =
+~ /\s/;
# Need to build the path to the Inline C file here, so that we cou
+ld
# reference it below
my @dirs = ();
push @dirs, $relSourcePath;
$inlineCFile1 = File::Spec->catfile(@dirs, "file_a.c");
$inlineCFile2 = File::Spec->catfile(@dirs, "file_b.c");
push @dirs, ".Inline";
$inlineBuildDir = File::Spec->catdir(@dirs);
pop @dirs;
$libDir = File::Spec->catdir(@dirs);
$incDir = File::Spec->catdir(@dirs);
}
use Inline (
C => Config =>
LIBS => "-L$libDir -lldv32",
INC => "-I$incDir",
DIRECTORY => $inlineBuildDir,
);
use Inline C => "$inlineCFile1";
use Inline C => "$inlineCFile2";
Is there a better way?