Packages
erlexec
1.1.3
2.3.4
2.3.3
retired
2.3.2
retired
2.3.1
retired
2.3.0
retired
2.2.4
retired
2.2.3
retired
2.2.2
retired
2.2.1
retired
2.2.0
retired
2.0.8
retired
2.0.7
retired
2.0.6
retired
2.0.5
retired
2.0.4
retired
2.0.3
retired
2.0.2
retired
2.0.1
retired
2.0.0
retired
1.21.0
retired
1.20.1
retired
1.20.0
retired
1.19.1
retired
1.19.0
1.18.11
1.18.8
1.18.7
1.18.6
1.18.5
1.18.4
1.18.3
1.18.2
1.18.1
1.17.6
1.17.5
1.17.3
1.16.4
1.10.9
1.10.4
1.10.2
1.10.1
1.10.0
1.9.5
1.9.4
1.9.3
1.9.2
1.9.1
1.9.0
1.7.5
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.4.0
1.3.0
1.2.2
1.2.1
1.1.3
1.1.2
1.1.1
1.1.0
1.0.1
retired
OS Process Manager
Current section
Files
Jump to
Current section
Files
rebar.config.script
%% For cross building using erlang:system_info() does not work as rebar runs
%% using the build hosts Erlang runtime.
%% If CXX envrionment variable is defined we are most likely running in a cross environment.
{CXX,Target,Sysroot} = case os:getenv("CXX") of
false -> {"g++",erlang:system_info(system_architecture),""};
Compiler -> {Compiler,string:strip(os:cmd(Compiler ++ " -dumpmachine"), right, $\n),string:strip(os:cmd(Compiler ++ " -print-sysroot"), right, $\n)}
end,
%% Commonly on Linux, compilers report the target triplet as <arch>-<vendor>-linux,
%% however, Erlang runtime reports and expects it as <arch>-<vendor>-linux-gnu.
%% Fix by appending "-gnu".
Mach = case string:str(Target,"linux") of
0 -> Target;
_ -> case string:words(Target,$-) of
4 -> Target;
_ -> Target ++ "-gnu"
end
end,
Vsn = string:strip(os:cmd("git describe --always --tags --abbrev=0 | sed 's/^v//'"), right, $\n),
%% Check for Linux capability API (Install package: libcap-devel).
{LinCXX, LinLD} =
case file:read_file_info(Sysroot ++ "/usr/include/sys/capability.h") of
{ok, _} ->
%io:put_chars("INFO: Detected support of linux capabilities.\n"),
{" -DHAVE_CAP", " -lcap"};
_ ->
{"", ""}
end,
X64 = case Mach of
"x86_64" ++ _E -> " -m64";
_ -> ""
end,
% Replace configuration options read from rebar.config with those dynamically set below
lists:keymerge(1,
lists:keysort(1, [
{port_env, [{"solaris", "CXXFLAGS", "$CXXFLAGS -DHAVE_SETREUID -DHAVE_PTRACE" ++ X64},
{"solaris", "LDFLAGS", "$LDFLAGS -lrt" ++ X64},
{"darwin", "CXXFLAGS", "$CXXFLAGS -DHAVE_SETREUID -DHAVE_PTRACE" ++ X64},
{"darwin", "LDFLAGS", "$LDFLAGS" ++ X64},
{"linux", "CXXFLAGS", "$CXXFLAGS -DHAVE_SETRESUID -DHAVE_PTRACE" ++ LinCXX},
{"linux", "LDFLAGS", "$LDFLAGS" ++ LinLD},
{"CC", CXX},
{"CXX", CXX},
{"CXXFLAGS", "$CXXFLAGS -O0"}
]},
{port_specs,[{filename:join(["priv", Mach, "exec-port"]), ["c_src/*.cpp"]}]},
{edoc_opts, [{overview, "src/overview.edoc"},
{title, "The exec application"},
{includes, ["include"]},
{def, {vsn, Vsn}},
{stylesheet_file, "src/edoc.css"},
{app_default, "http://www.erlang.org/doc/man"}]}
]),
lists:keysort(1, CONFIG)).