mirror of
https://github.com/processone/ejabberd.git
synced 2024-10-31 15:21:38 +01:00
114 lines
4.0 KiB
Erlang
114 lines
4.0 KiB
Erlang
%%%-------------------------------------------------------------------
|
|
%%% @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, asn1,
|
|
syntax_tools, os_mon, xmerl],
|
|
|
|
ConfiguredOTPApps = lists:flatmap(
|
|
fun({tools, true}) ->
|
|
[tools, runtime_tools];
|
|
({odbc, true}) ->
|
|
[odbc];
|
|
(_) ->
|
|
[]
|
|
end, Vars),
|
|
|
|
OTPApps = RequiredOTPApps ++ ConfiguredOTPApps,
|
|
|
|
DepRequiredApps = [cache_tab, p1_tls, p1_stringprep, p1_xml, esip, p1_stun,
|
|
p1_yaml, p1_utils, jiffy, oauth2, xmlrpc],
|
|
|
|
|
|
DepConfiguredApp0 = lists:flatmap(
|
|
fun({mysql, true}) -> [p1_mysql];
|
|
({pgsql, true}) -> [p1_pgsql];
|
|
({sqlite, true}) -> [sqlite3];
|
|
({pam, true}) -> [p1_pam];
|
|
({zlib, true}) -> [p1_zlib];
|
|
({riak, true}) -> [riakc, riak_pb, protobuffs, hamcrest, meck];
|
|
({elixir, true}) -> [elixir, rebar_elixir_plugin];
|
|
({iconv, true}) -> [p1_iconv];
|
|
({tools, true}) -> [meck];
|
|
({redis, true}) -> [eredis];
|
|
({lager, true}) -> [lager, goldrush];
|
|
({lager, false}) -> [p1_logger];
|
|
(_) -> []
|
|
end, Vars),
|
|
|
|
DepConfiguredApps = lists:usort(fun(A, B) -> A >= B end, DepConfiguredApp0),
|
|
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.yml.example", "etc/ejabberd/ejabberd.yml"},
|
|
{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:
|