# Simple BinaryBuilder use

**URL:** <https://discourse.julialang.org/t/simple-binarybuilder-use/82434>\
**Category:** General Usage\
**Tags:** binarybuilder\
**Created:** [June 8, 2022, 1:45pm UTC](https://discourse.julialang.org/t/simple-binarybuilder-use/82434 "2022-06-08T13:45:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![dmbates](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dmbates/32/44_2.png) [@dmbates](https://discourse.julialang.org/u/dmbates)\
**Post date:** [June 8, 2022, 1:45pm UTC](https://discourse.julialang.org/t/simple-binarybuilder-use/82434/1 "2022-06-08T13:45:05Z")

</div>

I would like to create a DLL package from some C code and headers. The code in question, from the [cgranges repository](https://github.com/lh3/cgranges), consists of a simple C source file, with no exotic dependencies, and two header files. (This code is the reference implementation in the same author’s comparison of implementations of the algorithm in different languages at his [biofast repository](https://github.com/lh3/biofast).)

I do need to modify the files before building the DLL package. (Well, I think I do - I would like to have some extractors of fields from a struct which are defined as `static inline` in a header file exported in the DLL file so they can be called in Julia with `ccall`. I don’t know iof a way of doing that without modifying the header file itself.) Is there a simple `build_tarballs.jl` that I could modify for this case? If I use `BinaryBuilder.run_wizard()` it wants to know about the repository, etc.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [June 8, 2022, 2:02pm UTC](https://discourse.julialang.org/t/simple-binarybuilder-use/82434/2 "2022-06-08T14:02:38Z")

</div>

> [@dmbates](#):
>
> If I use `BinaryBuilder.run_wizard()` it wants to know about the repository, etc.

You’d need to provide a source in some form anyway.

The standard way to do this is to start from the upstream source code and apply a patch. The wizard can do that for you automatically. I’d suggest to submit to Yggdrasil whatever (even broken) version of a pull request you can come up with the wizard, and then we can take it from there.
