summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Smith <dizzyd@dizzyd.com>2010-02-13 10:18:18 -0700
committerDave Smith <dizzyd@dizzyd.com>2010-02-13 10:18:18 -0700
commit0f7b47ce7b2e946a0ff98fb96e0b82cfc55fd7bb (patch)
tree9d3ffbea766de7205e66a7d4b28e1d51aa9a70ce
parentd486dff6e8c05ec87bd18c0ae1d3d050d9703ce2 (diff)
parent96c1ceba6007551812add22d585f46256d78e106 (diff)
Merging w/ mainline
-rwxr-xr-xbootstrap3
-rw-r--r--src/rebar_erlc_compiler.erl19
-rw-r--r--src/rebar_port_compiler.erl4
-rw-r--r--src/rebar_utils.erl8
4 files changed, 24 insertions, 10 deletions
diff --git a/bootstrap b/bootstrap
index 5f57d2c..9916324 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,5 +1,6 @@
#!/usr/bin/env escript
-%% -*- erlang -*-
+%% -*- tab-width: 4;erlang-indent-level: 4;indent-tabs-mode: nil -*-
+%% ex: ft=erlang ts=4 sw=4 et
main(Args) ->
%% Get a string repr of build time
diff --git a/src/rebar_erlc_compiler.erl b/src/rebar_erlc_compiler.erl
index 51b7f17..c41b96d 100644
--- a/src/rebar_erlc_compiler.erl
+++ b/src/rebar_erlc_compiler.erl
@@ -106,13 +106,20 @@ inspect(Source, IncludePath) ->
-spec inspect_epp(Epp::pid(), Module::string(), Includes::[string()]) -> {string(), [string()]}.
inspect_epp(Epp, Module, Includes) ->
case epp:parse_erl_form(Epp) of
- {ok, {attribute, _, module, ActualModule}} ->
- %% If the module name includes package info, we get a list of atoms...
- case is_list(ActualModule) of
- true ->
+ {ok, {attribute, _, module, ModInfo}} ->
+ case ModInfo of
+ %% Typical module name, single atom
+ ActualModule when is_atom(ActualModule) ->
+ ActualModuleStr = atom_to_list(ActualModule);
+ %% Packag-ized module name, list of atoms
+ ActualModule when is_list(ActualModule) ->
ActualModuleStr = string:join([atom_to_list(P) || P <- ActualModule], ".");
- false ->
- ActualModuleStr = atom_to_list(ActualModule)
+ %% Parameterized module name, single atom
+ {ActualModule, _} when is_atom(ActualModule) ->
+ ActualModuleStr = atom_to_list(ActualModule);
+ %% Parameterized and packagized module name, list of atoms
+ {ActualModule, _} when is_list(ActualModule) ->
+ ActualModuleStr = string:join([atom_to_list(P) || P <- ActualModule], ".")
end,
inspect_epp(Epp, ActualModuleStr, Includes);
{ok, {attribute, 1, file, {Module, 1}}} ->
diff --git a/src/rebar_port_compiler.erl b/src/rebar_port_compiler.erl
index a347cb7..b08a046 100644
--- a/src/rebar_port_compiler.erl
+++ b/src/rebar_port_compiler.erl
@@ -253,7 +253,9 @@ default_env() ->
" -I", filename:join(erts_dir(), include),
" "])},
{"DRIVER_LDFLAGS", lists:concat([" -L", code:lib_dir(erl_interface, lib),
- " -lerl_interface -lei"])}].
+ " -lerl_interface -lei"])},
+ {"ERLANG_ARCH", integer_to_list(8 * erlang:system_info(wordsize))},
+ {"ERLANG_TARGET", rebar_utils:get_arch()}].
diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl
index 7265058..1e99caa 100644
--- a/src/rebar_utils.erl
+++ b/src/rebar_utils.erl
@@ -28,6 +28,7 @@
-export([get_cwd/0,
is_arch/1,
+ get_arch/0,
get_os/0,
sh/2, sh/3,
sh_failfast/2,
@@ -48,14 +49,17 @@ get_cwd() ->
is_arch(ArchRegex) ->
- Arch = erlang:system_info(system_architecture),
- case re:run(Arch, ArchRegex, [{capture, none}]) of
+ case re:run(get_arch(), ArchRegex, [{capture, none}]) of
match ->
true;
nomatch ->
false
end.
+get_arch() ->
+ Words = integer_to_list(8 * erlang:system_info(wordsize)),
+ erlang:system_info(system_architecture) ++ "-" ++ Words.
+
get_os() ->
Arch = erlang:system_info(system_architecture),
case match_first([{"linux", linux}, {"darwin", darwin}], Arch) of