Easiest way to build Julia from source for CudaNative on Linux?

cudanative

#1

Hi there, I have been trying to build Julia from the source in Linux and the Github page says that I have to install all the dependencies first. They seemed too many so I installed Julia using sudo apt-get install julia as a workaround to get the dependencies automatically. It ended up installing v0.4 which is not a problem because I removed it anyways. After that I tried cloning Julia from Github and running make, but it gave the following error which I suppose means some more dependencies are missing.

Makefile:85: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2

So is there any easy way to get all the dependencies without going through the list one by one? Also would the following command which is recommended by @ChrisRackauckas and proposed by @musm in this link suffice to setup Julia for CudaNative.jl? Any help is appreciated.

include(joinpath(dirname(JULIA_HOME),"share","julia","build_sysimg.jl")); build_sysimg(force=true)

#2

Different Julia versions may have different dependencies. Moreover, building from sources may require more dependencies than using prebuilt binaries. So better follow exact instructions and install all listed dependencies. There’s not really that many of them.

Makefile:85: recipe for target 'julia-deps' failed
make: *** [julia-deps] Error 2

This is the end of the error message, for the useful part. Take a look at 5-10 lines above this one.


#3

Surprisingly I only needed to install a few more programs to build it successfully! Thanks for your advice. For the record, I installed a Ubuntu 16 for developers which had all the gcc, g++, gfortran, etc. Then I did what I mentioned above in the main post, and I only needed to additionally install libgmp-dev, cmake, and libpcre2-dev by looking into the errors, finding the .so that seems to be missing then searching for the exact library name using apt-cache search <some name>, and installing it with sudo apt-get install. I hope someone finds this useful.