I forgot to ask: does Julia currently expect to find .a or .dll files on Windows 64? Is anything else needed?
Bill. On 15 September 2015 at 02:23, Bill Hart <[email protected]> wrote: > Hi, > > I'm currently up to working on building the dependencies for our Nemo > computer algebra package for Julia: > > https://github.com/wbhart/Nemo.jl > > We have dependencies on the following C libraries: > > libpari (Pari/GP) > Antic (https://github.com/wbhart/Antic) > Flint (https://github.com/wbhart/flint2) > mpfr >= 3.1.2 > gmp >= 5.1 > > Whatever logic I had already coded up in our build.jl to build these on > Windows 64 and use them from within Julia no longer works. We always knew > that there were going to be changes in the way things worked, so this is > not unexpected. > > So I thought I would take a look at the OpenSUSE build service. But flint, > pari and antic are not available on there. (I found the WebRPM package for > Julia and have been using that.) > > It looks like someone has tried to build flint on there, but their system > doesn't cope with the flint build system (or vice versa if you prefer). > > Pari only builds on Windows 64 with some coaxing (I have succeeded in > doing that). It certainly won't build with OpenSUSE. > > So this means I have to build these binaries myself perhaps and just > download them from somewhere on the web, which I'm happy to do. > > So I tried building binaries in both msys2 and mingw64. After much work I > cannot figure out where Julia expects to find the binaries. I've tried > setting PATH and Libdl.LD_LOAD_PATH appropriately. I've tried static and > dynamic libraries, but under no circumstances can I get Julia to find the > libraries. It just says the "module is not found" when trying to ccall them. > > Moreover, OpenSUSE doesn't provide a "make" package, as far as I can see. > And make is not available from the GitBash shell in Julia on Windows 64. So > even building the software from within Julia currently seems impossible. > > I also had problems with the gcc not wanting to build 64 bit binaries. > > Given that OpenSUSE appears out of the question for us on Windows 64. can > anyone shed any light on how to get Julia compatible libraries built > (msys2, mingw64??) and what the current best practice is for ccall'ing > those binaries (how to set the linker path?). > > Note that flint and pari both have custom configure arguments that must be > set and neither flint nor pari uses autotools, though both roughly emulate > an autotools build with some extra bells and whistles. > > Any help would be very much appreciated. We have everything working > beautifully on Linux, but one of the big selling points for us is that the > entire Julia stack works natively on Windows. This is an especially big > thing for us given that IJulia also works on Windows (most computer algebra > systems do not work on Windows). > > Julia is working beautifully for us and we have 40-50,000 lines of Julia > code locally for our computer algebra package (Nemo + Hecke). But getting > it working on Windows just seems to be outside of my current skill set. > > One other minor question: because we currently need to build the libraries > ourselves, we have to (or would like to) run configure and make, etc., from > the shell in Julia. This means directories have to be converted from the > C:\\abc\\def style to /c/abc/def/ style. Is there a Julia function for > doing this, or a best practice? > > Bill. > > >
