<div dir="ltr">You may also want to look at: <a href="https://github.com/id3as/erl-mk">https://github.com/id3as/erl-mk</a> which we use, it is inspired from different solutions currently around and does support apps structure straight from the get go, it is also very much inline with how make works.</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 10, 2014 at 11:38 AM, Michael Truog <span dir="ltr"><<a href="mailto:mjtruog@gmail.com" target="_blank">mjtruog@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div text="#000000" bgcolor="#FFFFFF"><div class="">
    <div>On 04/10/2014 02:17 AM, Benoit Chesneau
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr"><br>
        <div class="gmail_extra"><br>
          <br>
          <div class="gmail_quote">On Thu, Apr 10, 2014 at 11:05 AM,
            Michael Truog <span dir="ltr"><<a href="mailto:mjtruog@gmail.com" target="_blank">mjtruog@gmail.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote">
              <div>
                <div>If you need "rebar generate" behavior in a way that
                  doesn't have extra checks blocking its success and is
                  able to report errors (problems rebar has had in the
                  past), without the logic for windows support, there is
                  a script here:<br>
                  <a href="https://github.com/okeuday/reltool_util/blob/master/release" target="_blank">https://github.com/okeuday/reltool_util/blob/master/release</a><br>
                  <br>
                  However, relx should be a better way to go, if you can
                  part with your reltool file.  I haven't found all the
                  reltool options to be supported by relx, so I don't
                  believe it is a fit for all situations.
                  <div>
                    <div><br>
                    </div>
                  </div>
                </div>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div>But how do you manage the dependencies?</div>
            <div><br>
            </div>
            <div>In a rebar world you're doing:</div>
            <div><br>
            </div>
            <div>
              1. rebar get-deps</div>
            <div>2. rebar compile which build deps and what you have in
              subdirs</div>
            <div>3. rebar generate which reuses what you fetched in deps
              etc.</div>
            <div><br>
            </div>
            <div>Using <a href="http://erlang.mk" target="_blank">erlang.mk</a>:</div>
            <div><br>
            </div>
            <div>1. fetch the dependeinces using curl and some links you
              have in a file or such thing</div>
            <div>2. compile, but not sure if every apps in apps/* are
              compiled</div>
            <div>3. use relx or anything else to buld the relese</div>
            <div><br>
            </div>
            <div>You can also have 1 make file per app etc.</div>
            <div><br>
            </div>
            <div>I am curious how people manage to get the dependencies
              without rebar or <a href="http://erlang.mk" target="_blank">erlang.mk</a>, build them and
              then tell to reltools or relx where to find to include
              them in the release.</div>
            <div><br>
            </div>
            <div>IN cloudi it seems for examle that you're using rebar
              for that. but I can see some projects around publishing
              their app without any support for rebar. How is it handled
              behind?</div>
          </div>
        </div>
      </div>
    </blockquote></div>
    In CloudI (in the main repository) the dependencies are stored
    locally, and they are modified so that all modules and applications
    have a 'cloudi_x_' prefix, so that they don't conflict with the same
    applications running in the same Erlang VM, possibly at a different
    version.  However, the cloudi_core repository uses rebar to do
    get-deps without any modification of the modules/application names
    while limiting it to internal service support.  Both repositories
    use the rebar compile for building.  I am not trying to say rebar
    should be used.  I just ended up using rebar due to a lack of better
    options.<br>
    <br>
    I know <a href="http://erlang.mk" target="_blank">erlang.mk</a> exists now, but I also have autoconf/automake which
    has its own support for Erlang.  Then there is also emake.  I was
    attempting to use something more automatic and simpler than a
    makefile, though I know <a href="http://erlang.mk" target="_blank">erlang.mk</a> should be simple to use.<br>
    <br>
    Best Regards,<br>
    Michael<div class=""><br>
    <br>
    <blockquote type="cite">
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">
            <div><br>
            </div>
            <div>- benoit</div>
            <div><br>
            </div>
            <div> <br>
            </div>
            <blockquote class="gmail_quote">
              <div>
                <div>
                  <div>
                    <div> <br>
                      On 04/10/2014 12:18 AM, Benoit Chesneau wrote:<br>
                    </div>
                  </div>
                </div>
                <blockquote type="cite">
                  <div>
                    <div>
                      <div dir="ltr">Hi all,
                        <div><br>
                        </div>
                        <div>I would like to rework the way I am
                          building releases and find a good way to
                          handle the inclusion of dependencies in them.
                          I am generally using the easy path for now by
                          mostly using rebar to get the dependencies but
                          I wonder what others are doing.</div>
                        <div><br>
                        </div>
                        <div>How do you get the dependencies, build them
                          and adding them to the release? Are you using
                          your own scripts? Using a makefile like some?
                          In that case how do you maintain the
                          dependencies list and their upgrades?</div>
                        <div><br>
                        </div>
                        <div>Any feedback is appreciated :)</div>
                        <div><br>
                        </div>
                        <div>- benoit</div>
                      </div>
                      <br>
                      <fieldset></fieldset>
                      <br>
                    </div>
                  </div>
                  <div>
                    <pre>_______________________________________________
erlang-questions mailing list
<a href="mailto:erlang-questions@erlang.org" target="_blank">erlang-questions@erlang.org</a>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
                  </div>
                </blockquote>
                <br>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
  </div></div>

<br>_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">Mark Nijhof<br><div><div>t:   <a href="https://twitter.com/MarkNijhof" target="_blank">@MarkNijhof</a><br>s:  marknijhof</div></div><div><br>
</div></div>
</div>