summaryrefslogtreecommitdiff
path: root/generate_deps
diff options
context:
space:
mode:
Diffstat (limited to 'generate_deps')
-rw-r--r--generate_deps20
1 files changed, 10 insertions, 10 deletions
diff --git a/generate_deps b/generate_deps
index dbb2d6df4d..916006d101 100644
--- a/generate_deps
+++ b/generate_deps
@@ -2,7 +2,7 @@
%% -*- erlang -*-
-mode(compile).
-main([IncludeDir, ErlDir, TargetFile]) ->
+main([IncludeDir, ErlDir, EbinDir, TargetFile]) ->
ErlDirContents = filelib:wildcard("*.erl", ErlDir),
ErlFiles = [filename:join(ErlDir, FileName) || FileName <- ErlDirContents],
Modules = sets:from_list(
@@ -13,8 +13,8 @@ main([IncludeDir, ErlDir, TargetFile]) ->
FileName <- filelib:wildcard("*.hrl", IncludeDir)]),
Deps = lists:foldl(
fun (Path, Deps1) ->
- dict:store(Path,
- detect_deps(IncludeDir, Modules, Headers, Path),
+ dict:store(Path, detect_deps(IncludeDir, EbinDir,
+ Modules, Headers, Path),
Deps1)
end, dict:new(), ErlFiles),
{ok, Hdl} = file:open(TargetFile, [write, delayed_write]),
@@ -23,23 +23,23 @@ main([IncludeDir, ErlDir, TargetFile]) ->
ok;
(Path, Dep, ok) ->
Module = filename:basename(Path, ".erl"),
- ok = file:write(Hdl, ["$(EBIN_DIR)/", Module, ".beam:"]),
- ok = sets:fold(
- fun (E, ok) -> file:write(Hdl, [" ", E]) end, ok, Dep),
+ ok = file:write(Hdl, [EbinDir, "/", Module, ".beam:"]),
+ ok = sets:fold(fun (E, ok) -> file:write(Hdl, [" ", E]) end,
+ ok, Dep),
file:write(Hdl, [" ", ErlDir, "/", Module, ".erl\n"])
end, ok, Deps),
ok = file:write(Hdl, [TargetFile, ": ", escript:script_name(), "\n"]),
ok = file:sync(Hdl),
ok = file:close(Hdl).
-detect_deps(IncludeDir, Modules, Headers, Path) ->
+detect_deps(IncludeDir, EbinDir, Modules, Headers, Path) ->
{ok, Forms} = epp:parse_file(Path, [IncludeDir], [{use_specs, true}]),
lists:foldl(
fun ({attribute, _LineNumber, behaviour, Behaviour}, Deps) ->
case sets:is_element(Behaviour, Modules) of
- true -> sets:add_element(["$(EBIN_DIR)/",
- atom_to_list(Behaviour),
- ".beam"], Deps);
+ true -> sets:add_element(
+ [EbinDir, "/", atom_to_list(Behaviour), ".beam"],
+ Deps);
false -> Deps
end;
({attribute, _LineNumber, file, {FileName, _LineNumber1}}, Deps) ->