gri6507 has asked for the wisdom of the Perl Monks concerning the following question:
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:
Is there a better way?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";
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Inline::C with multiple *.c
by syphilis (Archbishop) on Aug 24, 2012 at 01:12 UTC | |
Re: Inline::C with multiple *.c
by Anonymous Monk on Aug 24, 2012 at 08:13 UTC | |
by gri6507 (Deacon) on Aug 24, 2012 at 12:35 UTC | |
by Anonymous Monk on Aug 24, 2012 at 13:16 UTC |