aboutsummaryrefslogtreecommitdiff
path: root/rel/reltool.config.script
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2013-04-08 11:12:54 +0200
committerChristophe Romain <christophe.romain@process-one.net>2013-06-13 11:11:02 +0200
commit4d8f7706240a1603468968f47fc7b150b788d62f (patch)
tree92d55d789cc7ac979b3c9e161ffb7f908eba043a /rel/reltool.config.script
parentFix Guide: ejabberd_service expects a shaper_rule, not a shaper (diff)
Switch to rebar build tool
Use dynamic Rebar configuration Make iconv dependency optional Disable transient_supervisors compile option Add hipe compilation support Only compile ibrowse and lhttpc when needed Make it possible to generate an OTP application release Add --enable-debug compile option Add --enable-all compiler option Add --enable-tools configure option Add --with-erlang configure option. Add --enable-erlang-version-check configure option. Add lager support Improve the test suite
Diffstat (limited to '')
-rw-r--r--rel/reltool.config.script104
1 files changed, 104 insertions, 0 deletions
diff --git a/rel/reltool.config.script b/rel/reltool.config.script
new file mode 100644
index 000000000..a52df7b0a
--- /dev/null
+++ b/rel/reltool.config.script
@@ -0,0 +1,104 @@
+%%%-------------------------------------------------------------------
+%%% @author Evgeniy Khramtsov <ekhramtsov@process-one.net>
+%%% @copyright (C) 2013, Evgeniy Khramtsov
+%%% @doc
+%%%
+%%% @end
+%%% Created : 8 May 2013 by Evgeniy Khramtsov <ekhramtsov@process-one.net>
+%%%-------------------------------------------------------------------
+Vars = case file:consult(filename:join(["..", "vars.config"])) of
+ {ok, Terms} ->
+ Terms;
+ _Err ->
+ []
+ end,
+
+RequiredOTPApps = [sasl, crypto, public_key, ssl,
+ mnesia, inets, compiler],
+
+ConfiguredOTPApps = lists:flatmap(
+ fun({tools, true}) ->
+ [tools, runtime_tools];
+ (_) ->
+ []
+ end, Vars),
+
+OTPApps = RequiredOTPApps ++ ConfiguredOTPApps,
+
+DepRequiredApps = [p1_logger, p1_cache_tab, p1_tls, p1_stringprep, p1_xml, xmlrpc],
+
+DepConfiguredApps = lists:flatmap(
+ fun({mysql, true}) -> [p1_mysql];
+ ({pgsql, true}) -> [p1_pgsql];
+ ({pam, true}) -> [p1_pam];
+ ({zlib, true}) -> [p1_zlib];
+ ({stun, true}) -> [p1_stun];
+ ({json, true}) -> [jiffy];
+ ({iconv, true}) -> [p1_iconv];
+ ({http, true}) -> [ibrowse, lhttpc];
+ ({odbc, true}) -> [odbc];
+ (_) -> []
+ end, Vars),
+
+DepApps = DepRequiredApps ++ DepConfiguredApps,
+
+Sys = [{lib_dirs, []},
+ {erts, [{mod_cond, derived}, {app_file, strip}]},
+ {app_file, strip},
+ {rel, "ejabberd", proplists:get_value(vsn, Vars),
+ [
+ kernel,
+ stdlib,
+ ejabberd
+ ] ++ OTPApps ++ DepApps},
+ {rel, "start_clean", "",
+ [
+ kernel,
+ stdlib
+ ]},
+ {boot_rel, "ejabberd"},
+ {profile, embedded},
+ {incl_cond, exclude},
+ {excl_archive_filters, [".*"]}, %% Do not archive built libs
+ {excl_sys_filters, ["^bin/.*", "^erts.*/bin/(dialyzer|typer)",
+ "^erts.*/(doc|info|include|lib|man|src)"]},
+ {excl_app_filters, ["\.gitignore"]},
+ {app, stdlib, [{incl_cond, include}]},
+ {app, kernel, [{incl_cond, include}]},
+ {app, ejabberd, [{incl_cond, include}, {lib_dir, ".."}]}]
+++ lists:map(
+ fun(App) ->
+ {app, App, [{incl_cond, include},
+ {lib_dir, "../deps/" ++ atom_to_list(App)}]}
+ end, DepApps)
+++ lists:map(
+ fun(App) ->
+ {app, App, [{incl_cond, include}]}
+ end, OTPApps).
+
+Overlay = [
+ {mkdir, "var/log/ejabberd"},
+ {mkdir, "var/lock"},
+ {mkdir, "var/lib/ejabberd"},
+ {mkdir, "etc/ejabberd"},
+ {mkdir, "doc"},
+ {template, "files/erl", "\{\{erts_vsn\}\}/bin/erl"},
+ {template, "../ejabberdctl.template", "bin/ejabberdctl"},
+ {copy, "../ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"},
+ {copy, "../ejabberd.cfg.example", "etc/ejabberd/ejabberd.cfg"},
+ {copy, "../inetrc", "etc/ejabberd/inetrc"},
+ {copy, "files/install_upgrade.escript", "bin/install_upgrade.escript"}
+ ],
+
+Config = [{sys, Sys},
+ {overlay_vars, "../vars.config"},
+ {target_dir, "ejabberd"},
+ {overlay, Overlay}],
+
+%%io:format("ejabberd release:~n ~p~n", [Config]),
+Config.
+
+%% Local Variables:
+%% mode: erlang
+%% End:
+%% vim: set filetype=erlang tabstop=8: