Hi all,
I need to control some hardware in a new project, where I want to use and adapt an existing erlang project.
My current approach is to use i2c and gpio from the circuits family.
All together needs to run on a raspberry.
I seem to have a problem with the configuration in the erlang project.
Here is my current rebar.config:
{erl_opts, [debug_info]}.
{deps, [
{circuits_i2c, "1.1.0"},
{circuits_gpio, "1.0.1"}
]}.
{shell, [
% {config, "config/sys.config"},
{apps, [erlangapp]}
]}.
{plugins, [rebar_mix]}.
{provider_hooks, [
{post, [{compile, {mix, consolidate_protocols}}]}
]}.
The build output looks ok:
===> Compiling circuits_i2c
Resolving Hex dependencies...
Resolution completed in 0.263s
New:
bunt 0.2.1
credo 1.6.7
dialyxir 1.2.0
earmark_parser 1.4.29
elixir_make 0.7.3
[..]
==> elixir_make
Compiling 6 files (.ex)
Generated elixir_make app
==> circuits_i2c
CC hal_i2cdev.o
CC i2c_nif.o
LD i2c_nif.so
Compiling 2 files (.ex)
However, the nif library is not created.
To crosscheck, I created a small elixir library, where I could successfully build all.
So I made sure that I have all necessary tools installed.
There the build artifacts are in the directory circuits_*/priv/, which is not created in the erlang library.
Did anybody run in a similar problem already?
Debugging the C Makefile did not succeed so far, because it seems it is being recreated before each build.
I would be grateful for any pointers!