Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'rebar.config.script')
-rw-r--r--rebar.config.script132
1 files changed, 132 insertions, 0 deletions
diff --git a/rebar.config.script b/rebar.config.script
new file mode 100644
index 000000000..9ab6ef9ea
--- /dev/null
+++ b/rebar.config.script
@@ -0,0 +1,132 @@
+%%%-------------------------------------------------------------------
+%%% @author Evgeniy Khramtsov <ekhramtsov@process-one.net>
+%%% @copyright (C) 2013, Evgeniy Khramtsov
+%%% @doc
+%%%
+%%% @end
+%%% Created : 1 May 2013 by Evgeniy Khramtsov <ekhramtsov@process-one.net>
+%%%-------------------------------------------------------------------
+Cfg = case file:consult("vars.config") of
+ {ok, Terms} ->
+ Terms;
+ _Err ->
+ []
+ end,
+
+Macros = lists:flatmap(
+ fun({roster_gateway_workaround, true}) ->
+ [{d, 'ROSTER_GATEWAY_WORKAROUND'}];
+ ({transient_supervisors, true}) ->
+ [{d, 'NO_TRANSIENT_SUPERVISORS'}];
+ ({nif, true}) ->
+ [{d, 'NIF'}];
+ ({db_type, mssql}) ->
+ [{d, 'mssql'}];
+ ({lager, true}) ->
+ [{d, 'LAGER'}];
+ (_) ->
+ []
+ end, Cfg),
+
+DebugInfo = case lists:keysearch(debug, 1, Cfg) of
+ {value, {debug, true}} ->
+ [debug_info];
+ _ ->
+ []
+ end,
+
+HiPE = case lists:keysearch(hipe, 1, Cfg) of
+ {value, {hipe, true}} ->
+ [native];
+ _ ->
+ []
+ end,
+
+Includes = [{i, "include"},
+ {i, filename:join(["deps", "p1_xml", "include"])}],
+
+SrcDirs = lists:foldl(
+ fun({tools, true}, Acc) ->
+ [tools|Acc];
+ (_, Acc) ->
+ Acc
+ end, [], Cfg),
+
+Deps = [{p1_logger, ".*", {git, "git://github.com/processone/p1_logger"}},
+ {p1_cache_tab, ".*", {git, "git://github.com/processone/cache_tab"}},
+ {p1_tls, ".*", {git, "git://github.com/processone/tls"}},
+ {p1_stringprep, ".*", {git, "git://github.com/processone/stringprep"}},
+ {p1_xml, ".*", {git, "git://github.com/processone/xml"}},
+ {xmlrpc, ".*", {git, "git://github.com/rds13/xmlrpc"}}],
+
+ConfigureCmd = fun(Pkg, Flags) ->
+ {'get-deps',
+ "sh -c 'cd deps/" ++ Pkg ++
+ " && ./configure" ++ Flags ++ "'"}
+ end,
+
+XMLFlags = lists:foldl(
+ fun({nif, true}, Acc) ->
+ Acc ++ " --enable-nif";
+ ({full_xml, true}, Acc) ->
+ Acc ++ " --enable-full-xml";
+ (_, Acc) ->
+ Acc
+ end, "", Cfg),
+
+PostHooks = [ConfigureCmd("p1_tls", ""),
+ ConfigureCmd("p1_stringprep", ""),
+ ConfigureCmd("p1_xml", XMLFlags)],
+
+CfgDeps = lists:flatmap(
+ fun({mysql, true}) ->
+ [{p1_mysql, ".*", {git, "git://github.com/processone/mysql"}}];
+ ({pgsql, true}) ->
+ [{p1_pgsql, ".*", {git, "git://github.com/processone/pgsql"}}];
+ ({pam, true}) ->
+ [{p1_pam, ".*", {git, "git://github.com/processone/epam"}}];
+ ({zlib, true}) ->
+ [{p1_zlib, ".*", {git, "git://github.com/processone/zlib"}}];
+ ({stun, true}) ->
+ [{p1_stun, ".*", {git, "git://github.com/processone/stun"}}];
+ ({json, true}) ->
+ [{jiffy, ".*", {git, "git://github.com/davisp/jiffy"}}];
+ ({iconv, true}) ->
+ [{p1_iconv, ".*", {git, "git://github.com/processone/eiconv"}}];
+ ({http, true}) ->
+ [{ibrowse, ".*", {git, "git://github.com/cmullaparthi/ibrowse"}},
+ {lhttpc, ".*", {git, "git://github.com/esl/lhttpc"}}];
+ ({lager, true}) ->
+ [{lager, ".*", {git, "git://github.com/basho/lager"}}];
+ (_) ->
+ []
+ end, Cfg),
+
+CfgPostHooks = lists:flatmap(
+ fun({pam, true}) ->
+ [ConfigureCmd("p1_pam", "")];
+ ({zlib, true}) ->
+ [ConfigureCmd("p1_zlib", "")];
+ ({iconv, true}) ->
+ [ConfigureCmd("p1_iconv", "")];
+ (_) ->
+ []
+ end, Cfg),
+
+{ok, Cwd} = file:get_cwd(),
+
+Config = [{erl_opts, Includes ++ Macros ++ HiPE ++ DebugInfo ++
+ [{src_dirs, [asn1, src | SrcDirs]}]},
+ {sub_dirs, ["rel"]},
+ {ct_extra_params, "-include "
+ ++ filename:join([Cwd, "tools"]) ++ " "
+ ++ filename:join([Cwd, "deps", "p1_xml", "include"])},
+ {post_hooks, PostHooks ++ CfgPostHooks},
+ {deps, Deps ++ CfgDeps}],
+%%io:format("ejabberd configuration:~n ~p~n", [Config]),
+Config.
+
+%% Local Variables:
+%% mode: erlang
+%% End:
+%% vim: set filetype=erlang tabstop=8: