This is my Makefile:
REBAR=./rebar REBAR_COMPILE=$(REBAR) get-deps compile all: compile compile: $(REBAR_COMPILE) test: $(REBAR_COMPILE) skip_deps=true eunit clean: -rm -rf deps ebin priv doc/* docs: $(REBAR_COMPILE) doc ifeq ($(wildcard dialyzer/sqlite3.plt),) static: $(REBAR_COMPILE) build_plt analyze else static: $(REBAR_COMPILE) analyze endif I can run make compile multiple times and get
aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ make compile ./rebar get-deps compile ==> erlang-sqlite (get-deps) ==> erlang-sqlite (compile) However, for some reason running make test always gives
aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ make test make: `test' is up to date. even if the files are not compiled. The question is, why?
Running the same command directly works:
aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ ./rebar get-deps compile skip_deps=true eunit ==> erlang-sqlite (get-deps) ==> erlang-sqlite (compile) Compiled src/sqlite3_lib.erl Compiled src/sqlite3.erl ==> erlang-sqlite (eunit) ...