ArteMisc / libsalty

Elixir bindings for libsodium (NIF)
Apache License 2.0
21 stars 25 forks source link

Add support for crosscompilation #5

Closed fhunleth closed 6 years ago

fhunleth commented 6 years ago

I made several updates to make it possible to crosscompile especially for Nerves users. Non-Nerves users should also be able to crosscompile by overriding $CC, $CFLAGS, etc, which should hopefully be familiar from how it works with other projects.

Most of the changes involved taking out system architecture detection from the Makefile and nif.ex and then tweaking some of the Makefile variables. I've tested this on OSX and Linux to make sure that I haven't broken non-crosscompiled builds. There are a number of warnings, but they look like they're due to changes in the Erlang interface when dirty NIFs were added.

I also updated mix.exs to use elixir_make to simplify some logic and let me run mix clean. This also includes a note about libsodium versions which I ran into on Ubuntu.

ArteMisc commented 6 years ago

Thanks!

Could you specify which versions of OSX/Ubuntu you used for testing? I will try to take a look at the warnings somewhere this week.

fhunleth commented 6 years ago

I tested on Ubuntu 16.04 and High Sierra on the mac. For Ubuntu, I manually built and installed libsodium since the default one was too old. On High Sierra, I used Homebrew to install libsodium.