summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Kuch <jerryk@vmware.com>2010-11-10 16:04:29 +0000
committerJerry Kuch <jerryk@vmware.com>2010-11-10 16:04:29 +0000
commit67ee034be7bd9e60bcc0cb780dba5a8fe23b2fae (patch)
tree0d015998ef2005c2cbc017294651526a1323b3b0
parent59b4142070bf526299c400aef84370d022eb52b0 (diff)
downloadrabbitmq-server-67ee034be7bd9e60bcc0cb780dba5a8fe23b2fae.tar.gz
generate_deps should no longer trip on detritus.
-rw-r--r--Makefile2
-rw-r--r--generate_deps21
2 files changed, 12 insertions, 11 deletions
diff --git a/Makefile b/Makefile
index 32de335f..46f07376 100644
--- a/Makefile
+++ b/Makefile
@@ -93,7 +93,7 @@ all: $(TARGETS)
$(DEPS_FILE): $(SOURCES) $(INCLUDES)
rm -f $@
- escript generate_deps $(INCLUDE_DIR) $(SOURCE_DIR) \$$\(EBIN_DIR\) $@
+ escript generate_deps $@ $(EBIN_DIR) $(SOURCES) $(INCLUDES)
$(EBIN_DIR)/rabbit.app: $(EBIN_DIR)/rabbit_app.in $(BEAM_TARGETS) generate_app
escript generate_app $(EBIN_DIR) $@ < $<
diff --git a/generate_deps b/generate_deps
index 29587b5a..92bca9ae 100644
--- a/generate_deps
+++ b/generate_deps
@@ -2,18 +2,19 @@
%% -*- erlang -*-
-mode(compile).
-main([IncludeDir, ErlDir, EbinDir, TargetFile]) ->
- ErlDirContents = filelib:wildcard("*.erl", ErlDir),
- ErlFiles = [filename:join(ErlDir, FileName) || FileName <- ErlDirContents],
+main([TargetFile, EbinDir | ErlsAndHrls ]) ->
+ ErlFiles = lists:filter(fun (Path) -> lists:suffix(".erl", Path) end,
+ ErlsAndHrls),
Modules = sets:from_list(
[list_to_atom(filename:basename(FileName, ".erl")) ||
- FileName <- ErlDirContents]),
- Headers = sets:from_list(
- [filename:join(IncludeDir, FileName) ||
- FileName <- filelib:wildcard("*.hrl", IncludeDir)]),
+ FileName <- ErlFiles]),
+ HrlFiles = lists:filter(fun (Path) -> lists:suffix(".hrl", Path) end,
+ ErlsAndHrls),
+ IncludeDirs = lists:usort([filename:dirname(Path) || Path <- HrlFiles]),
+ Headers = sets:from_list(HrlFiles),
Deps = lists:foldl(
fun (Path, Deps1) ->
- dict:store(Path, detect_deps(IncludeDir, EbinDir,
+ dict:store(Path, detect_deps(IncludeDirs, EbinDir,
Modules, Headers, Path),
Deps1)
end, dict:new(), ErlFiles),
@@ -33,8 +34,8 @@ main([IncludeDir, ErlDir, EbinDir, TargetFile]) ->
ok = file:sync(Hdl),
ok = file:close(Hdl).
-detect_deps(IncludeDir, EbinDir, Modules, Headers, Path) ->
- {ok, Forms} = epp:parse_file(Path, [IncludeDir], [{use_specs, true}]),
+detect_deps(IncludeDirs, EbinDir, Modules, Headers, Path) ->
+ {ok, Forms} = epp:parse_file(Path, IncludeDirs, [{use_specs, true}]),
lists:foldl(
fun ({attribute, _LineNumber, Attribute, Behaviour}, Deps)
when Attribute =:= behaviour orelse Attribute =:= behavior ->