[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-glpk] Patch for GLPK 4.35 to support SWIG
From: |
Kelly Westbrooks |
Subject: |
[Help-glpk] Patch for GLPK 4.35 to support SWIG |
Date: |
Thu, 29 Jan 2009 21:16:08 +0300 |
Hello,
I am a PhD student studying bioinformatics and I uses GLPK to solve linear
programming problems that I encounter in my research. I write my software in
high level languages such as Java or Ruby, and since GLPK is written in C, I
make calls to GLPK using my language's foreign function interface.
Rather than write an entire foreign function interface for GLPK by hand, I use
SWIG (http://www.swig.org/) to machine-generate the interface for me.
Unfortunately, the source for GLPK needs to be (slightly) modified for SWIG to
process it correctly and generate the interface for the target language.
Until now, I've been maintaining private forks of GLPK and applying the changes
manually each time I upgrade to a new release. Today, I went ahead and packaged
them into a patch file so that (hopefully) they can make it into the trunk and
save me the effort of maintaining my own local GLPK copy.
The patch does two things:
(1) Adds "glpk.i" to the root of the source tree. This is a SWIG interface file
that SWIG users can use to generate an interface to GLPK in their language of
choice.
(2) Modifies "include/glpk.h" so that SWIG doesn't complain when generating the
foreign interface. It seems like glpk.h contains some redundant lines that can
be safely removed without compromising the current GLPK build and by removing
those lines it also satisfies SWIG's demand for a clean C interface file.
This patch DOESN'T modify the GLPK build to generate any foreign language
interfaces...that can be left up to GLPK users themselves, since it is hard to
predict in advance what language support they desire.
To apply the patch, just place the patchfile in the same directory as the
directory containing the GLPK 4.35 source code (the directory structure should
look like the following:)
/path/to/some/directory:
glpk-4.35/
swig_support.patch
Then execute:
cd /path/to/some/directory/glpk-4.35
patch -p1 < ../swig_support.patch
I hope that someone else finds this useful. If it make it into GLPK trunk, then
at least I would find it useful!
--Kelly Westbrooks
swig_support.patch
Description: Binary data
- [Help-glpk] Patch for GLPK 4.35 to support SWIG,
Kelly Westbrooks <=