J'ai le Makefile suivant pour construire mon projet Erlang:Comment créer deux répertoires sources différents dans une sortie Makefile dans un répertoire bin?
.SUFFIXES: .erl .beam .yrl
ERL_SRC := $(wildcard src/*.erl)
ERL_OBJ := $(patsubst src/%.erl,ebin/%.beam,${ERL_SRC})
all: main
main: ${ERL_OBJ}
ebin/%.beam: src/%.erl
erlc +debug_info -W -o ebin $<
clean:
rm -fr ebin/*.beam
Je suis en train de mettre à jour ce aussi construire mes tests eunit dans le test/dossier eunit et que la sortie va dans le même dossier de ebin que src comme ceci:
.SUFFIXES: .erl .beam .yrl
ERL_SRC := $(wildcard src/*.erl)
ERL_OBJ := $(patsubst src/%.erl,ebin/%.beam,${ERL_SRC})
EUNIT_SRC := $(wildcard test/eunit/*.erl)
EUNIT_OBJ := $(patsubst test/eunit/%.erl,ebin/%.beam,${EUNIT_SRC})
all: main
main: ${ERL_OBJ}
ebin/%.beam: src/%.erl test/eunit/%.erl
erlc +debug_info -W -o ebin $<
clean:
rm -fr ebin/*.beam
eunit: ${EUNIT_OBJ}
test: main eunit
faire principaux fonctionne très bien, mais si je tente make test échoue avec:
make: *** No rule to make target `ebin/data_eunit.beam', needed by `eunit'. Stop.
le module de test data_eunit.erl est situé dans test/eunit. Le problème semble être avec la cible ebin /%. Si j'échange src /%. Erl avec test/eunit /%. Erl alors je peux construire les tests mais pas le src. Comment puis-je faire une construction à partir de deux dossiers source et avoir la sortie aller à un dossier de sortie?
Je suis vraiment nouveau à l'utilisation de make/Makefile. J'ai essayé de trouver une solution mais j'ai du mal à trouver une solution. –