I think the BuildProcess step will not be a problem. I am almost
certain I can just say its plain vanilla Autotools. If not, there
are many examples in packages of complicated BuildProcess arguments.

In all of the examples I have seen (maybe I missed something), the
source is downloaded. My source is not downloaded, its already there.
BinDeps never gets to the BuildProcess part in my case because it does
not know how to find the source, and I don't know how to tell it that
the source is already there. It fails before it ever tries to build
anything.

That's also why I didnt put BinDeps in the subject line. This is
not really an external dependency. But it seems natural to include it
with the external library dependencies, since it is just a small piece
of wrapper code around them.

--John

On 12/24/2014 08:17 PM, Elliot Saba wrote:
Autotools without a ./configure  script can be done by using the MakeTargets 
buildstep generator.
>
> Here's an example for Cairo.jl, where the zlib dependency is built by downloading the sources for Zlib, then running make on the win32/Makefile.gcc makefile. If you have a generic Makefile file, you should be able to omit any arguments to the MakeTargets generator.
> -E
>
> On Wed, Dec 24, 2014 at 11:08 AM, John Lapeyre <[email protected]> wrote:
>
>     Thanks. Seeing a list of packages that use BinDeps helps. In
>     retrospect, I could have put BinDeps in the subject line so this
>     thread could be found more easily.
>
> The two downloaded packages use Autotools. BinDeps works great once I got the incantation right. > So, I have been trying to follow the BinDeps test code in faking that the wrapper code (one file) uses Autotools by supplying a > configure script, so that ./configure, make , make install works. I was hoping to essentially copy the two or three lines per
>     dep that are in my current build.jl.
>
>     Anyway, this is probably enough help to get me quite a bit further.
>
>     --John
>
>
>
>     On 12/24/2014 07:22 PM, Elliot Saba wrote:
> > BinDeps is pretty flexible. I'm guessing you have seen a BinDeps invocation that is based off of the Autotools step? (Here's an example for Nettle.jl) That does a lot of things for you, and doesn't really show off the flexibility that well.
>     >
> > You can do things in a much more fine-grained manner, here's an example for NLopt, where zip files are downloaded, extracted, and .dll's are copied. I would suggest putting your C code and a Makefile in a PACKAGE_ROOT/deps/src folder, then you can write up a set of simple build steps to cd into that directory, (Notice BinDeps.srcdir(dep) will give you paths like you were asking above) you can run `make`, and then install the binary anywhere you want.
>     >
> > I agree that BinDeps isn't very well documented. Any effort you can spare in that direction would be very appreciated, as you learn more about it and can help explain to others how to use it.
>     > -E
>     >
> > On Wed, Dec 24, 2014 at 1:49 AM, John Lapeyre <[email protected]> wrote:
>     >
>     >     Hi Elliot,
>     >
>     >     Thanks for the offer.
>     >
> > > B) You want to write a wrapper that sits between Julia and the C++,
>     >        written in C but used by Julia
>     >
> > Yes. Writing the wrapper is not the problem. Really what I'd like to > > know is how to organize, compile and link C code. How do I find the
>     >     toplevel of the package directory ? How does BinDeps find the
> > information to write into deps.jl ? Ideally, I would have BinDeps do > > all of it, as it does for the downloaded code, because, then I don't > > have to know any details. But the C code is stored locally, in the > > package. It doesn't need to be downloaded. I could easily solve the > > problem by putting the .c file in another git repo so that it needs to > > be downloaded. But, thats not the correct solution. Since BinDeps is > > not really documented, I have been searching packages at random,
>     >     looking for examples for c code and uses of BinDeps.
>     >
>     >     --John
>     >
>     >     On 12/24/2014 06:37 AM, Elliot Saba wrote:
>     >     > Hey John,
>     >     >
> > > If you can explain a bit as to what you want to do with your libraries, that would help. What I understand from you so far is that:
>     >     >
> > > A) You have to C++ libraries that you are able to download and compile
>     >     >
>     >
>     >     >
>     >     > Is that correct?
>     >     > -E
>     >     >
> > > On Tue, Dec 23, 2014 at 5:43 PM, <[email protected]> wrote:
>     >     >
> > > Can someone point me to examples of C code in Julia packages ? I am using BinDeps to download two C++ libraries. After a lot of blind trial and error I have a build.jl that does what I need. But, I need to write a c wrapper for the C++ libraries. One idea is to have BinDeps handle the build, if I can fool it into thinking it is an external library. But, I don't know how to do that. BinDeps seems to want to download something. I find it rather opaque. Otherwise I need to find a way to write most of what BinDeps does by hand for my C code: find paths to top level of the package and various sub dirs; do change dirs, making, copying, linking at run time, etc. I spent quite a bit of time searching julia-user, and -dev, grepping and finding in package trees, reading docs and source code, etc. no luck. Thanks.
>     >     >
>     >     >     --John
>     >     >
>     >     >
>     >
>     >
>     >
>
>
>


Reply via email to