Backticks won't work on Windows, but then, I don't know whether SWIG will work on (non-Cygwin) Windows at all either.
And not all the world uses gcc.
Personally, I would go the route of least resistance and change the SWIG "build" process to produce a Makefile through ExtUtils::MakeMaker (see WriteMakefile() in ExtUtils::MakeMaker - this is a tried and true mechanism that will know about the appropriate C compiler to use with This Perl and will also know about the options needed.
| [reply] [d/l] |
| [reply] |
Well, Makefile.PL is just a Perl program, so you can just incoroporate the relevant parts into your Perl program. Like I already pointed out, WriteMakefile(), which, maybe surprinsing to you, writes a Makefile. I'm not sure what else I can do other than point you to the documentation or to existing Makefile.PLs?
Of course, the Makefile.PL will likely be similar for all modules, but it very much depends on the Perl configuration it will be used with, which can differ between every machine. Which is why it is usually done in the way of asking Perl to produce the appropriate Makefile. Which is what a Makefile.PL does once it calls WriteMakefile. I presume that including the following lines in your SWIG build process somewhere will produce an appropriate Makefile:
use ExtUtils::MakeMaker;
WriteMakefile(
# ... appropriate options
);
As you will be targetting Perl, it's safe to assume that Perl is available for running code. | [reply] [d/l] [select] |
You are totally right about doing something more elegant with ExtUtils modules, we talked about it on chatterbox, but as a first go I was updating the quick getting started tutorial on the SWIG web site and wanted the commands to be similar to what they already had, but correct and working this time.
For Windows the tutorial wasn't covering that so just wanted to update what they already had which was for Unix/Linux
True not all people use gcc, but this is what they had in the tutorial so stuck with that and I believe they assumed if you don't have gcc you see what is going on and can easily map it to your particular cc and ld program.
| [reply] |