Das ist mein 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
Ich kann make compile
mehrmals laufen und bekommen
aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ make compile
./rebar get-deps compile
==> erlang-sqlite (get-deps)
==> erlang-sqlite (compile)
Aus irgendeinem Grund make test
gibt Laufen jedoch immer
aromanov@alexey-desktop:~/workspace/gm-controller/lib/erlang-sqlite$ make test
make: `test' is up to date.
auch wenn die Dateien nicht kompiliert sind. Die Frage ist, warum?
Das Ausführen des gleichen Befehls funktioniert direkt:
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)
...
all
,test
undclear
sind Ihre Makefile-test
fürtest_rule
oder etwas anderes.BEARBEITEN: Dies gilt nur für einige Versionen von
make
- Sie sollten Ihre Manpage überprüfen.Sie können die
-B
Flagge auch an übergebenmake
. Laut Manpage bedeutet dies:So
make -B test
würde Ihr Problem lösen , wenn Sie in einer Situation sind , wo Sie bearbeiten wollen nicht dieMakefile
oder den Namen Ihres Testordners ändern.quelle
-B
ist abwärtskompatibler Modus für mich ... (FreeBSD, OS / GNU Toolkit scheint nicht in Frage gestellt zu sein)--always-make
für dich?.PHONY
Ziel scheint jedoch irgendwie tragbar zu sein ... (Zumindest für FreeBSD, nicht sicher über Dinge wie Solaris)--always-make
Option zum Arbeiten benötigt, ist Ihr Makefile beschädigt.Dies passiert, wenn Sie eine Datei mit demselben Namen wie der Makefile-Zielname in dem Verzeichnis haben, in dem sich das Makefile befindet.
quelle
Mein Fehler war, den Zielnamen "Dateiname.c:" anstelle von "Dateiname:" zu machen.
quelle