The other way would be to just merge the results of the compilations,
I would defnitely try this first if I were you.
If this really works, then it seems to be the simpler way. E.g. these
are the .a files I have on my machines, after compilation:
~/works/igraph/github/src (develop)$ ls .libs/*.a
.libs/libarpack.a .libs/libf2c.a .libs/liblapack.a
.libs/libblas.a .libs/libglpk.a .libs/libplfit.a
.libs/libdlamch.a .libs/libigraph.a
You need to merge these with the .a from the Python interface.
The only problem is that no .a file is produced during the compilation of the Python interface. (I believe that Python compiles the .so file straight away, without creating an archive first). However, you can ask Python to link an arbitrary static library (i.e. .a file) into the extension being built if you tweak setup.py a bit. Take a look at the setup.py file and you will find a line like this:
igraph_extension = Extension(‘igraph._igraph’, sources, \
library_dirs=library_dirs, libraries=libraries,
include_dirs=include_dirs)
I think that removing “libraries=libraries” and adding “extra_objects=[…]” should work, assuming that the list passed to extra_objects is the list of .a files that are being built during the compilation of igraph.
—
T.