My relx configuration
{release,{socket,"0.1.0"}}.
{extend_start_script,true}.
My .app file
{application,socket,
[{description,[]},
{vsn,"1"},
{registered,[]},
{applications,[kernel,stdlib,cowboy]},
{mod,{socket,[]}},
{env,[{http_port,8080}]},
{modules,[socket_app,socket_socket_handler,socket_sup]}]}.
After compiling the application using rebar I run relx from my terminal and the following is the output that I get
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
/home/akshat/Desktop/socket/ebin /home/akshat/Desktop/socket/deps /usr/lib/erlang/lib
===> Missing beam file hipe <<"/usr/lib/erlang/lib/hipe-3.10.2/ebin/hipe.beam">>
===> Resolving available OTP Releases from directories:
/home/akshat/Desktop/socket/ebin /home/akshat/Desktop/socket/deps /usr/lib/erlang/lib
No releases have been specified in the system!
I don't understand this message from relx. Does it not create the release for me?
How do I install hipe?
Update
After doing a fresh install of erlang I no longer get hipe error message. But rebar still says no releases have been specified by the system.
Got this working. Re-installing erlang got rid of the first problem i.e the hipe error message. What relx meant by
is that I had not specified an application to assemble for release. My understanding was that since I had only one application I would not need to specify it explicitly. So my relx.config file now looks like
This works and I now have a release in my _rel folder.