%%%-------------------------------------------------------------------
%%% @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>
%%%-------------------------------------------------------------------
Cfg = [{full_xml, @full_xml@},
{flash_hack, @flash_hack@},
{nif, @nif@}].
Macros = lists:flatmap(
fun({full_xml, true}) ->
[{d, 'FULL_XML_SUPPORT'}];
({nif, true}) ->
[{d, 'NIF'}];
({flash_hack, true}) ->
[{d, 'ENABLE_FLASH_HACK'}];
(_) ->
[]
end, Cfg),
NIFPortSpec = case lists:keysearch(nif, 1, Cfg) of
{value, {nif, true}} ->
[{"priv/lib/xml.so", ["c_src/xml.c"]}];
_ ->
[]
end,
FlashHackFlag = case lists:keysearch(flash_hack, 1, Cfg) of
{value, {flash_hack, true}} ->
" -DENABLE_FLASH_HACK";
_ ->
""
end,
Config = [{erl_opts, [debug_info, {src_dirs, [src, specs]}|Macros]},
{port_env, [{"CFLAGS", "$CFLAGS -g -O2 -Wall" ++ FlashHackFlag},
{"LDFLAGS", "$LDFLAGS -lexpat"}]},
{port_specs, [{"priv/lib/expat_erl.so", ["c_src/expat_erl.c"]}
| NIFPortSpec]}],
%%io:format("xml configuration:~n ~p~n", [Config]),
Config.
%% Local Variables:
%% mode: erlang
%% End:
%% vim: set filetype=erlang tabstop=8: