Here's is the simple debug macro I use:
-ifdef(debug).
-define(DEBUG(Format, Args),
io:format("~s.~w: DEBUG: " ++ Format, [ ?MODULE, ?LINE | Args])).
-else.
-define(DEBUG(Format, Args), true).
-endif.
Write it down in a "debug.hrl" file, then you only need to add this line in any file header:-include("debug.hrl").
This simple macro gives you the module name and the line number. This saves me a lot of time.Then you need to define the "debug" atom to let your macro do what you want. The compile:file/2 handles options for this, the syntax is {d, debug}
You can also use some simple helper module to compile multiples files using simple regexp:
Here's the code:
-module(utils_compile).
-export([c/1, c/2, d/1, d/2]).
c(FilePattern) ->
c(FilePattern, "../ebin").
c(FilePattern, OutDir) ->
filelib:fold_files(".", FilePattern ++ ".erl$", false,
fun(X, _Acc) ->
io:format("Compiling ~p~n", [ X ]),
compile:file(X, [{outdir, OutDir}, report]) end, []).
d(FilePattern) ->
d(FilePattern, "../ebin").
d(FilePattern, OutDir) ->
filelib:fold_files(".", FilePattern ++ ".erl$", false,
fun(X, _Acc) ->
io:format("Compiling (debug) ~p~n", [ X ]),
compile:file(X, [{outdir, OutDir}, {d, debug}, report]) end, []).
No comments:
Post a Comment