On master you can now do out-of-tree builds, though that's not really the most helpful thing in the world if you only want to switch versions of a single dependency (since the rest of the dependencies will also usually have to rebuild in each build tree).
In a git checkout without using out-of-tree builds, you can checkout different release, master, or other branches and reuse the built copies of deps. Due to the out of tree builds, master and release-0.4 have different directory structures and can't reuse everything all that nicely. It's possibly to use system copies of various libraries, though you won't always get the exact same functionality or bugfixes as when you build deps from source with Julia's makefiles. You can see what .travis.yml does, or the way that https://github.com/JuliaLang/julia/blob/master/contrib/windows/msys_build.sh extracts a Windows nightly and uses many libraries from it on AppVeyor, but neither is a particularly clean way to do things. The CI builds are optimized for build speed, not organizational sanity. I'd recommend Tomas' approach right now of having one git clone per release series you want to build. To keep built copies around without having to clean them out when you change branches, you can do `make install` and the julia-$sha installed copy will stick around even if you move around to different commits. On Wednesday, October 14, 2015 at 9:28:39 AM UTC-7, Isaiah wrote: > > Presumably ... you can put linear algebra libraries somewhere too? > > > Well, yes and maybe. There are a number of USE_SYSTEM_* overrides > available, but I'm not sure if they all provide a way to indicate which > specific one to use, as there is with the LLVM_CONFIG. (perhaps Tony will > clarify. and I'm sure a PR to this effect would be welcomed if it's not > available now) > > On Wed, Oct 14, 2015 at 11:55 AM, milktrader <[email protected] > <javascript:>> wrote: > >> Thanks for the Make.user suggestion. I have an idea on how to make that >> work. Presumably (and this is not part of the original post) you >> can put linear algebra libraries somewhere too? >> >> >> On Wednesday, October 14, 2015 at 11:11:56 AM UTC-4, Isaiah wrote: >>> >>> It should be possible to use an existing LLVM build by setting the >>> following in Make.user: >>> >>> USE_SYSTEM_LLVM=1 >>> LLVM_CONFIG=/path/to/llvm-config >>> >>> If you build LLVM manually you will need to be sure to apply the patches >>> specified in `deps/Makefile`. >>> >>> On Wed, Oct 14, 2015 at 10:54 AM, milktrader <[email protected]> wrote: >>> >>>> I like this solution and I've been using git from the beginning until I >>>> decided I needed to have multiple versions of Julia around at the same >>>> time, with the ability to open each version whenever I choose. >>>> >>>> My still rough implementation of this is to rename *julia* to other >>>> names based on version numbers >>>> >>>> [julia (master)] >>>> ✈ chefs >>>> >>>> 0.3.11 ..... kevin >>>> 0.4-rc1 ..... wanda >>>> 0.4-rc4 ..... frida >>>> 0.4-0 ..... julius >>>> >>>> So this is straightforward to do the hard way (which is how I'm doing >>>> it now) by simply building each julia version from scratch. >>>> >>>> How would this work with using git versus tar files? >>>> >>>> On Wednesday, October 14, 2015 at 10:37:06 AM UTC-4, Tero Frondelius >>>> wrote: >>>>> >>>>> git clone https://github.com/JuliaLang/julia.git >>>>> cd julia >>>>> make >>>>> >>>>> >>>>> after update in julia folder: >>>>> git fetch >>>>> git branch v0.4.1 >>>>> make >>>>> >>>>> >>>>> Maybe some fine tuning in commands, but basically drop the method of >>>>> downloading tar and start using git. >>>>> >>>>> >>>>> >>>>> On Wednesday, October 14, 2015 at 5:21:36 PM UTC+3, milktrader wrote: >>>>>> >>>>>> I'm downloading full tar files for each new Julia version and of >>>>>> course it comes with LLVM. I'd like to avoid building LLVM every single >>>>>> time and have it compiled once, and available for all the new Julia >>>>>> releases (that use that LLVM version of course). >>>>>> >>>>>> Any pointers? >>>>>> >>>>>> Dan >>>>>> >>>>> >>> >
