> This was what I thought of trying first. But I couldn't figure out how it > worked out what GitHub repository to associate this with, or whether it > would try to create one, possibly scrubbing my existing nemo repository on > GitHub. Obviously I don't want to lose my commit history.
For Pkg manager purposes, the association will be created later (when you register the package). It also isn't clear where Julia creates the empty git repository. In the > current directory? Or in some subdirectory of the Julia source tree? Under `$HOME/.julia/v0.3` (or v0.4 if you are on git master) For the most part I can just run configure, make, make install for now and > set some library paths (if I can figure out what kind of system I am on). There are some macros to help with this: @osx, @linux, @unix (both), and @windows. There is also a variable called OS_NAME with a platform-specific value (:Windows, :Linux, etc.) See: http://docs.julialang.org/en/release-0.3/manual/calling-c-and-fortran-code/#handling-platform-variations On Wed, Sep 10, 2014 at 10:18 AM, Bill Hart <[email protected]> wrote: > > > On Wednesday, 10 September 2014 15:57:56 UTC+2, Isaiah wrote: >> >> Is there documentation somewhere explaining how to do the latter? Or can >>> someone help me with doing the latter? >> >> >> You could run `Pkg.generate("Nemo")` and then copy and commit (some of) >> the resulting files in your own Nemo git tree; there aren't very many. >> > > This was what I thought of trying first. But I couldn't figure out how it > worked out what GitHub repository to associate this with, or whether it > would try to create one, possibly scrubbing my existing nemo repository on > GitHub. Obviously I don't want to lose my commit history. > > It also isn't clear where Julia creates the empty git repository. In the > current directory? Or in some subdirectory of the Julia source tree? > > >> I can't find any documentation explaining where to put the commands in a >>> Pkg to actually git clone flint, build it, install it and set up paths for >>> Nemo. Given the complexities of installing flint for the user, I'd like to >>> have the Julia package manager do this automatically if at all possible. >>> And I see it does seem to be possible. I just can't figure out how. >>> >> >> The Pkg manager will look for a file called `MYPKG/deps/build.jl` and run >> that if it exists. That's just a Julia file, so you can do whatever you >> want there (shell out, etc.). >> > > Perfect. For the most part I can just run configure, make, make install > for now and set some library paths (if I can figure out what kind of system > I am on). > > Finding the Julia installation on the system in order to link against the > gmp/mpfr might be slightly more difficult. > > >> One option is to use the BinDeps package which provides primitives for >> interacting with various package managers and build systems: >> >> https://github.com/JuliaLang/BinDeps.jl >> >> A very advanced and fully-developed usage example can be found in the >> Cairo package, which has Autotools, Apt, Yum, and several other targets: >> >> https://github.com/JuliaLang/Cairo.jl/blob/master/deps/build.jl >> >> There are a number of other examples to draw from. Hopefully the above >> links will give you a sense of where to start. I can help out on Linux and >> Windows (@ihnorton on github). >> > > Thanks. > > Bill. > > >> >> >> On Wed, Sep 10, 2014 at 9:31 AM, Bill Hart <[email protected]> >> wrote: >> >>> Hi, >>> >>> I have been writing a new Julia package, which I have called Nemo (it's >>> essentially a limited computer algebra system). >>> >>> I have two specific problems: >>> >>> 1) The git and GitHub repository for Nemo already exists, but I haven't >>> created a Julia Pkg yet. >>> >>> https://github.com/wbhart/nemo >>> >>> The documentation on creating a Julia Pkg seems to assume you are going >>> to start with the Pkg then commit code to the git repository that it >>> creates, not create a git/github project and then add the necessary stuff >>> to turn it into a Julia package. >>> >>> Is there documentation somewhere explaining how to do the latter? Or can >>> someone help me with doing the latter? >>> >>> (I have a couple of small build issues to fix in order for flint to work >>> on Windows 64 before it will work there. But I will be working on those >>> right away. I have managed to get it to work with Julia there, just not >>> hacked the fixes into the flint build system yet. Other than this minor >>> thing, I am quite ready to publish Nemo as a package right away (well, >>> apart from a horrible 3x slowdown and excessive memory usage caused by gc, >>> but I think I've given up on solving that problem for now).) >>> >>> 2) Nemo relies on mpir (or GMP), mpfr and flint, which are large >>> external C/assembly libraries which need to get built or be available to >>> run Nemo. I understand Julia has its own GMP and MPFR which I can probably >>> link to if they are recent enough. >>> >>> Flint needs to be built when the package is installed. It takes a long >>> time to build, e.g. 40 minutes or so on Windows, maybe a third of that on >>> Linux. >>> >>> I can't find any documentation explaining where to put the commands in a >>> Pkg to actually git clone flint, build it, install it and set up paths for >>> Nemo. Given the complexities of installing flint for the user, I'd like to >>> have the Julia package manager do this automatically if at all possible. >>> And I see it does seem to be possible. I just can't figure out how. >>> >>> Flint is here: >>> >>> https://github.com/wbhart/flint2 >>> >>> Can anyone help, or point me in the right direction? >>> >>> Bill. >>> >> >>
