in reply to Re^2: Updating broken and possibly incomplete SWIG Perl module building tutorial on SWIG web site
in thread Updating broken and possibly incomplete SWIG Perl module building tutorial on SWIG web site

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.

  • Comment on Re^3: Updating broken and possibly incomplete SWIG Perl module building tutorial on SWIG web site
  • Download Code

Replies are listed 'Best First'.
Re^4: Updating broken and possibly incomplete SWIG Perl module building tutorial on SWIG web site
by hermida (Scribe) on Mar 26, 2011 at 17:04 UTC
    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.

Re^4: Updating broken and possibly incomplete SWIG Perl module building tutorial on SWIG web site
by hermida (Scribe) on Mar 26, 2011 at 17:19 UTC
    How would you use all the goodies of ExtUtils::MakeMaker without starting with a manually written Makefile.PL? I just think having to write a Makefile.PL might be too much unnecessary hassle for the SWIG Perl build process.

    Or would this Makefile.PL be the same for every SWIG Perl build and I could send it to them for everyone to use with an updated SWIG Perl build process tutorial?

      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.