Running rebar compile doesn't compile native code in the same way sa make does.
Running rebar clean compile does create priv/cl_drv.so, but cl app expect it to be under lib/{release,debug}/{32,64}.
I think the more standard way is to have everything under priv.
[cl (zvi_rebar_getdeps_220112)]$ make clean
(cd c_src; make clean)
make[1]: Entering directory `/home/zvi/ws/cl/c_src'
make clean_internal TYPE=release WORDSIZE=32
make[2]: Entering directory `/home/zvi/ws/cl/c_src'
rm -f ../obj/release/32/*.o
rm -f ../lib/release/32/*.so
make[2]: Leaving directory `/home/zvi/ws/cl/c_src'
make clean_internal TYPE=debug WORDSIZE=32
make[2]: Entering directory `/home/zvi/ws/cl/c_src'
rm -f ../obj/debug/32/*.o
rm -f ../lib/debug/32/*.so
make[2]: Leaving directory `/home/zvi/ws/cl/c_src'
make clean_internal TYPE=release WORDSIZE=64
make[2]: Entering directory `/home/zvi/ws/cl/c_src'
rm -f ../obj/release/64/*.o
rm -f ../lib/release/64/*.so
make[2]: Leaving directory `/home/zvi/ws/cl/c_src'
make clean_internal TYPE=debug WORDSIZE=64
make[2]: Entering directory `/home/zvi/ws/cl/c_src'
rm -f ../obj/debug/64/*.o
rm -f ../lib/debug/64/*.so
make[2]: Leaving directory `/home/zvi/ws/cl/c_src'
make[1]: Leaving directory `/home/zvi/ws/cl/c_src'
(cd src; make clean)
make[1]: Entering directory `/home/zvi/ws/cl/src'
rm -f ../ebin/cl.beam ../ebin/clu.beam
make[1]: Leaving directory `/home/zvi/ws/cl/src'
[cl (zvi_rebar_getdeps_220112)]$ rebar compile
==> cl (compile)
Compiled src/clu.erl
Compiled src/cl.erl
[cl (zvi_rebar_getdeps_220112)]$ rebar clean compile
==> cl (clean)
==> cl (compile)
Compiled src/clu.erl
Compiled src/cl.erl
Compiling c_src/cl_hash.c
Compiling c_src/cl_nif.c
cl_drv.so under priv created:
[cl (zvi_rebar_getdeps_220112)]$ ls priv/
cl_drv.so
but all the other folders are empty:
[cl (zvi_rebar_getdeps_220112)]$ ls {lib,obj}/*/*
lib/debug/32:
lib/debug/64:
lib/release/32:
lib/release/64:
obj/debug/32:
obj/debug/64:
obj/release/32:
obj/release/64:
[cl (zvi_rebar_getdeps_220112)]$
Running
rebar compiledoesn't compile native code in the same way samakedoes.Running
rebar clean compiledoes createpriv/cl_drv.so, butclapp expect it to be underlib/{release,debug}/{32,64}.I think the more standard way is to have everything under
priv.cl_drv.sounder priv created:but all the other folders are empty:
[cl (zvi_rebar_getdeps_220112)]$ ls {lib,obj}/*/* lib/debug/32: lib/debug/64: lib/release/32: lib/release/64: obj/debug/32: obj/debug/64: obj/release/32: obj/release/64: [cl (zvi_rebar_getdeps_220112)]$