[erlang-questions] Need help with systools:make_tar/2

Serge Aleynikov <>
Mon Aug 18 15:38:08 CEST 2008


Write a simple Makefile (using a target like below) and use "make tar" 
to build.

tar:
	erl -pa ./ebin -eval 'systools:make_tar( .... ).' -init stop -noshell | 
grep -v "*WARNING*"


Matt Williamson wrote:
> How can I get this process automated, so I can just run a single command.
> 
> On Mon, Aug 18, 2008 at 9:27 AM, Matt Williamson <>wrote:
> 
>> It worked! What I find weird is that if I run `erl -pa ebin` it gets the
>> same error, but if I run `erl -pa ./ebin` it works. Thank you very much
>> Serge!
>>
>>
>> On Mon, Aug 18, 2008 at 9:07 AM, Serge Aleynikov <> wrote:
>>
>>> Can you try running it without escript (just like I showed in my last
>>> email)?  Probably the problem is that systools is having hard time finding
>>> simpledb.app or it's modules because "-pa ./ebin" option is missing.
>>>
>>>
>>> Matt Williamson wrote:
>>>
>>>> Hi Serge,
>>>>
>>>> Thanks for the help. I made the changes, but I am still getting an error.
>>>>
>>>> Here is my directory structure:
>>>> ~/simpledb
>>>>                  /make.escript
>>>>                  /ebin/simpledb.app
>>>>                  /priv/simpldb.rel
>>>>
>>>> After applying the changes I get the following escript which I am using
>>>> to
>>>> compile.
>>>>
>>>> *#!/usr/bin/env escript
>>>> %% -*- erlang -*-
>>>> %% File: make.escript
>>>>
>>>> main(_Args) ->
>>>>    make:all(),
>>>>    systools:make_script("./priv/simpledb", [{path, ["ebin"]},
>>>>                         {outdir, "rel"}]),
>>>>    systools:make_tar("./priv/simpledb", [{path, ["ebin"]},
>>>>                      {erts, code:root_dir()},
>>>>                      {outdir, "rel"},
>>>>                      {dirs, [include, doc]}]).*
>>>>
>>>>
>>>> The error I get is:
>>>> *{{case_clause,
>>>>     {'EXIT',
>>>>         {function_clause,
>>>>             [{filename,join,[[]]},
>>>>              {systools_make,add_appl,7},
>>>>              {systools_make,'-add_applications/5-fun-0-',6},
>>>>              {lists,foldl,3},
>>>>              {systools_make,add_applications,5},
>>>>              {systools_make,mk_tar,6},
>>>>              {systools_make,mk_tar,5},
>>>>              {systools_make,make_tar,2}]}}},
>>>>  [{systools_make,'-add_applications/5-fun-0-',6},
>>>>  {lists,foldl,3},
>>>>  {systools_make,add_applications,5},
>>>>  {systools_make,mk_tar,6},
>>>>  {systools_make,mk_tar,5},
>>>>  {systools_make,make_tar,2},
>>>>  {erl_eval,do_apply,5},
>>>>  {escript,code_handler,4}]}*
>>>>
>>>> make_script/1,2 still works great but make_tar is not.
>>>>
>>>> On Mon, Aug 18, 2008 at 8:31 AM, Serge Aleynikov <>
>>>> wrote:
>>>>
>>>>  This is what you need to do:
>>>>> Suppose your app's directory tree is as follows:
>>>>> simpledb/
>>>>> simpledb/ebin/simpledb.app
>>>>> simpledb/priv/simpledb.rel
>>>>>
>>>>> $ cd /path/to/your/simpledb
>>>>> $ erl -pa ./ebin
>>>>> 1> systools:make_tar("./priv/simpledb", [{dirs, [doc,include]}, {erts,
>>>>> code:root_dir()}]).
>>>>>
>>>>> This will create ./priv/simpledb.tar.gz
>>>>>
>>>>> Regarding the WARNINGS - just ignore them.  What they mean is that SASL
>>>>> is
>>>>> finding that the mentioned source files have been modified (i.e. their
>>>>> timestamps changed) after they were compiled into beams.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Serge
>>>>>
>>>>>
>>>>> Matt Williamson wrote:
>>>>>
>>>>>  No problem, I hope someone can help though :)
>>>>>> I have two projects with the same problem and I have not seen make_tar
>>>>>> run
>>>>>> successfully to date.
>>>>>>
>>>>>> On Mon, Aug 18, 2008 at 7:53 AM, Mazen Harake
>>>>>> <>wrote:
>>>>>>
>>>>>>  Sorry all... This is what happens when you read something and answer
>>>>>>
>>>>>>> quickly :(
>>>>>>>
>>>>>>> Completly ignore what I just wrote :P
>>>>>>>
>>>>>>> /Mazen
>>>>>>>
>>>>>>> Mazen Harake wrote:
>>>>>>>
>>>>>>>  Hi Mat,
>>>>>>>
>>>>>>>> Answers inline...
>>>>>>>>
>>>>>>>> Matt Williamson wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>  Hi there,
>>>>>>>>
>>>>>>>>> I have an OTP app with the following simpledb.rel file:
>>>>>>>>>
>>>>>>>>> /{release, {"simpledb", "1.0"}, {erts, "5.5.5"},
>>>>>>>>>    [{simpledb, "1.0"},
>>>>>>>>>     {kernel, "2.11.5"},
>>>>>>>>>     {stdlib, "1.14.5"}]}./
>>>>>>>>>
>>>>>>>>> And the following simpledb.app file:
>>>>>>>>>
>>>>>>>>> /{application, simpledb,
>>>>>>>>>  [{description, "Stores Key, Value pairs."},
>>>>>>>>>   {id, "simpledb"},
>>>>>>>>>   {vsn, "1.0"},
>>>>>>>>>   {modules, [simpledb_app, simpledb_sup, simpledb_svr]},
>>>>>>>>>   {mod, {simpledb_app, []}},
>>>>>>>>> /
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>  Why do you have an empty list here? mod specifies modules for
>>>>>>>>>
>>>>>>>> application
>>>>>>>> simpledb... and empty list ("") is not a valid module name :)
>>>>>>>>
>>>>>>>>
>>>>>>>>  /     {registered, [simpledb_svr]},
>>>>>>>>
>>>>>>>>>   {applications, [kernel, stdlib]}]}./
>>>>>>>>>
>>>>>>>>> When I run `systools:make_tar("simpledb", [{path, ["ebin"]}])` I get
>>>>>>>>> the
>>>>>>>>> following error:
>>>>>>>>>
>>>>>>>>> /{{case_clause,
>>>>>>>>>   {'EXIT',
>>>>>>>>>       {function_clause,
>>>>>>>>>           [{filename,join,[[]]},
>>>>>>>>>            {systools_make,add_appl,7},
>>>>>>>>>            {systools_make,'-add_applications/5-fun-0-',6},
>>>>>>>>>            {lists,foldl,3},
>>>>>>>>>            {systools_make,add_applications,5},
>>>>>>>>>            {systools_make,mk_tar,6},
>>>>>>>>>            {systools_make,mk_tar,5},
>>>>>>>>>            {systools_make,make_tar,2}]}}},
>>>>>>>>>  [{systools_make,'-add_applications/5-fun-0-',6},
>>>>>>>>>  {lists,foldl,3},
>>>>>>>>>  {systools_make,add_applications,5},
>>>>>>>>>  {systools_make,mk_tar,6},
>>>>>>>>>  {systools_make,mk_tar,5},
>>>>>>>>>  {systools_make,make_tar,2},
>>>>>>>>>  {erl_eval,do_apply,5},
>>>>>>>>>  {escript,code_handler,4}]}/
>>>>>>>>>
>>>>>>>>> `systools:make_script("simpledb", [{path, ["ebin"]}])` works fine.
>>>>>>>>>
>>>>>>>>> Also if you know why I get the following junk, it would be forever
>>>>>>>>> thankful:
>>>>>>>>>
>>>>>>>>> /*WARNING* kernel: Object code (application) out of date
>>>>>>>>> *WARNING* kernel: Object code (application_controller) out of date
>>>>>>>>> *WARNING* kernel: Object code (application_master) out of date
>>>>>>>>> *WARNING* kernel: Object code (application_starter) out of date
>>>>>>>>> *WARNING* kernel: Object code (auth) out of date
>>>>>>>>> *WARNING* kernel: Object code (code) out of date
>>>>>>>>> *WARNING* kernel: Object code (code_aux) out of date
>>>>>>>>> *WARNING* kernel: Object code (packages) out of date
>>>>>>>>> *WARNING* kernel: Object code (code_server) out of date
>>>>>>>>> *WARNING* kernel: Object code (dist_util) out of date
>>>>>>>>> *WARNING* kernel: Object code (erl_boot_server) out of date
>>>>>>>>> *WARNING* kernel: Object code (erl_distribution) out of date
>>>>>>>>> *WARNING* kernel: Object code (erl_prim_loader) out of date
>>>>>>>>> *WARNING* kernel: Object code (erl_reply) out of date
>>>>>>>>> *WARNING* kernel: Object code (erlang) out of date
>>>>>>>>> *WARNING* kernel: Object code (error_handler) out of date
>>>>>>>>> *WARNING* kernel: Object code (error_logger) out of date
>>>>>>>>> *WARNING* kernel: Object code (file) out of date
>>>>>>>>> *WARNING* kernel: Object code (file_server) out of date
>>>>>>>>> *WARNING* kernel: Object code (file_io_server) out of date
>>>>>>>>> *WARNING* kernel: Object code (prim_file) out of date
>>>>>>>>> *WARNING* kernel: Object code (global) out of date
>>>>>>>>> *WARNING* kernel: Object code (global_group) out of date
>>>>>>>>> *WARNING* kernel: Object code (global_search) out of date
>>>>>>>>> *WARNING* kernel: Object code (group) out of date
>>>>>>>>> *WARNING* kernel: Object code (heart) out of date
>>>>>>>>> *WARNING* kernel: Object code (hipe_unified_loader) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet6_tcp) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet6_tcp_dist) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet6_udp) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_config) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_hosts) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_gethost_native) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_tcp_dist) out of date
>>>>>>>>> *WARNING* kernel: Object code (init) out of date
>>>>>>>>> *WARNING* kernel: Object code (kernel) out of date
>>>>>>>>> *WARNING* kernel: Object code (kernel_config) out of date
>>>>>>>>> *WARNING* kernel: Object code (net) out of date
>>>>>>>>> *WARNING* kernel: Object code (net_adm) out of date
>>>>>>>>> *WARNING* kernel: Object code (net_kernel) out of date
>>>>>>>>> *WARNING* kernel: Object code (os) out of date
>>>>>>>>> *WARNING* kernel: Object code (ram_file) out of date
>>>>>>>>> *WARNING* kernel: Object code (rpc) out of date
>>>>>>>>> *WARNING* kernel: Object code (user) out of date
>>>>>>>>> *WARNING* kernel: Object code (user_drv) out of date
>>>>>>>>> *WARNING* kernel: Object code (user_sup) out of date
>>>>>>>>> *WARNING* kernel: Object code (disk_log) out of date
>>>>>>>>> *WARNING* kernel: Object code (disk_log_1) out of date
>>>>>>>>> *WARNING* kernel: Object code (disk_log_server) out of date
>>>>>>>>> *WARNING* kernel: Object code (disk_log_sup) out of date
>>>>>>>>> *WARNING* kernel: Object code (dist_ac) out of date
>>>>>>>>> *WARNING* kernel: Object code (erl_ddll) out of date
>>>>>>>>> *WARNING* kernel: Object code (erl_epmd) out of date
>>>>>>>>> *WARNING* kernel: Object code (erts_debug) out of date
>>>>>>>>> *WARNING* kernel: Object code (gen_tcp) out of date
>>>>>>>>> *WARNING* kernel: Object code (gen_udp) out of date
>>>>>>>>> *WARNING* kernel: Object code (gen_sctp) out of date
>>>>>>>>> *WARNING* kernel: Object code (prim_inet) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_db) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_dns) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_parse) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_res) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_tcp) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_udp) out of date
>>>>>>>>> *WARNING* kernel: Object code (inet_sctp) out of date
>>>>>>>>> *WARNING* kernel: Object code (pg2) out of date
>>>>>>>>> *WARNING* kernel: Object code (seq_trace) out of date
>>>>>>>>> *WARNING* kernel: Object code (wrap_log_reader) out of date
>>>>>>>>> *WARNING* kernel: Object code (zlib) out of date
>>>>>>>>> *WARNING* kernel: Object code (otp_ring0) out of date
>>>>>>>>> *WARNING* stdlib: Object code (base64) out of date
>>>>>>>>> *WARNING* stdlib: Object code (beam_lib) out of date
>>>>>>>>> *WARNING* stdlib: Object code (c) out of date
>>>>>>>>> *WARNING* stdlib: Object code (calendar) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dets) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dets_server) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dets_sup) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dets_utils) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dets_v8) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dets_v9) out of date
>>>>>>>>> *WARNING* stdlib: Object code (dict) out of date
>>>>>>>>> *WARNING* stdlib: Object code (digraph) out of date
>>>>>>>>> *WARNING* stdlib: Object code (digraph_utils) out of date
>>>>>>>>> *WARNING* stdlib: Object code (edlin) out of date
>>>>>>>>> *WARNING* stdlib: Object code (edlin_expand) out of date
>>>>>>>>> *WARNING* stdlib: Object code (epp) out of date
>>>>>>>>> *WARNING* stdlib: Object code (eval_bits) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_bits) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_compile) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_eval) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_expand_records) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_internal) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_lint) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_parse) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_posix_msg) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_pp) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_scan) out of date
>>>>>>>>> *WARNING* stdlib: Object code (erl_tar) out of date
>>>>>>>>> *WARNING* stdlib: Object code (error_logger_file_h) out of date
>>>>>>>>> *WARNING* stdlib: Object code (error_logger_tty_h) out of date
>>>>>>>>> *WARNING* stdlib: Object code (escript) out of date
>>>>>>>>> *WARNING* stdlib: Object code (ets) out of date
>>>>>>>>> *WARNING* stdlib: Object code (file_sorter) out of date
>>>>>>>>> *WARNING* stdlib: Object code (filelib) out of date
>>>>>>>>> *WARNING* stdlib: Object code (filename) out of date
>>>>>>>>> *WARNING* stdlib: Object code (gb_trees) out of date
>>>>>>>>> *WARNING* stdlib: Object code (gb_sets) out of date
>>>>>>>>> *WARNING* stdlib: Object code (gen) out of date
>>>>>>>>> *WARNING* stdlib: Object code (gen_event) out of date
>>>>>>>>> *WARNING* stdlib: Object code (gen_fsm) out of date
>>>>>>>>> *WARNING* stdlib: Object code (gen_server) out of date
>>>>>>>>> *WARNING* stdlib: Object code (io) out of date
>>>>>>>>> *WARNING* stdlib: Object code (io_lib) out of date
>>>>>>>>> *WARNING* stdlib: Object code (io_lib_format) out of date
>>>>>>>>> *WARNING* stdlib: Object code (io_lib_fread) out of date
>>>>>>>>> *WARNING* stdlib: Object code (io_lib_pretty) out of date
>>>>>>>>> *WARNING* stdlib: Object code (lib) out of date
>>>>>>>>> *WARNING* stdlib: Object code (lists) out of date
>>>>>>>>> *WARNING* stdlib: Object code (log_mf_h) out of date
>>>>>>>>> *WARNING* stdlib: Object code (math) out of date
>>>>>>>>> *WARNING* stdlib: Object code (ms_transform) out of date
>>>>>>>>> *WARNING* stdlib: Object code (orddict) out of date
>>>>>>>>> *WARNING* stdlib: Object code (ordsets) out of date
>>>>>>>>> *WARNING* stdlib: Object code (otp_internal) out of date
>>>>>>>>> *WARNING* stdlib: Object code (pg) out of date
>>>>>>>>> *WARNING* stdlib: Object code (pool) out of date
>>>>>>>>> *WARNING* stdlib: Object code (proc_lib) out of date
>>>>>>>>> *WARNING* stdlib: Object code (proplists) out of date
>>>>>>>>> *WARNING* stdlib: Object code (qlc) out of date
>>>>>>>>> *WARNING* stdlib: Object code (qlc_pt) out of date
>>>>>>>>> *WARNING* stdlib: Object code (queue) out of date
>>>>>>>>> *WARNING* stdlib: Object code (random) out of date
>>>>>>>>> *WARNING* stdlib: Object code (regexp) out of date
>>>>>>>>> *WARNING* stdlib: Object code (sets) out of date
>>>>>>>>> *WARNING* stdlib: Object code (shell) out of date
>>>>>>>>> *WARNING* stdlib: Object code (shell_default) out of date
>>>>>>>>> *WARNING* stdlib: Object code (slave) out of date
>>>>>>>>> *WARNING* stdlib: Object code (sofs) out of date
>>>>>>>>> *WARNING* stdlib: Object code (string) out of date
>>>>>>>>> *WARNING* stdlib: Object code (supervisor) out of date
>>>>>>>>> *WARNING* stdlib: Object code (supervisor_bridge) out of date
>>>>>>>>> *WARNING* stdlib: Object code (sys) out of date
>>>>>>>>> *WARNING* stdlib: Object code (timer) out of date
>>>>>>>>> *WARNING* stdlib: Object code (win32reg) out of date
>>>>>>>>> *WARNING* stdlib: Object code (zip) out of date/
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Thanks a lot!
>>>>>>>>>
>>>>>>>>> Matt
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------------------
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> erlang-questions mailing list
>>>>>>>>> 
>>>>>>>>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>  --
>>>>>>> Mazen Harake <>
>>>>>>> Erlang Software Developer and Consultant,
>>>>>>> Erlang Training & Consulting, Ltd
>>>>>>>
>>>>>>> Mobile Phone: +44 (0)795 13 26 317
>>>>>>> Office Phone: +44 (0)207 45 61 020
>>>>>>> Office Address:
>>>>>>> 401 London Fruit & Wool Exchange
>>>>>>> Brushfield St, London, E1 6EL
>>>>>>> United Kingdom
>>>>>>>
>>>>>>> This email and its attachments may be confidential and are intended
>>>>>>> solely
>>>>>>> for the use of the individual to whom it is addressed. Any views or
>>>>>>> opinions
>>>>>>> expressed are solely those of the author and do not necessarily
>>>>>>> represent
>>>>>>> those of "Erlang Training & Consulting, Ltd".
>>>>>>>
>>>>>>> If you are not the intended recipient of this email and its
>>>>>>> attachments,
>>>>>>> you must take no action based upon them, nor must you copy or show
>>>>>>> them
>>>>>>> to
>>>>>>> anyone. Please contact the sender if you believe you have received
>>>>>>> this
>>>>>>> email in error.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------
>>>>>> _______________________________________________
>>>>>> erlang-questions mailing list
>>>>>> 
>>>>>> http://www.erlang.org/mailman/listinfo/erlang-questions
>>>>>>
>>>>>>
> 




More information about the erlang-questions mailing list