CLIENT-SRC=$(wildcard client/*.erl) CLIENT-BIN=$(CLIENT-SRC:.erl=.beam) SERVER-SRC=$(wildcard server/*.erl) SERVER-BIN=$(SERVER-SRC:.erl=.beam) COMMON-SRC=$(wildcard common/*.erl) COMMON-BIN=$(COMMON-SRC:.erl=.beam) .PHONY: all client server clean clean-client clean-server all: client server clean: clean-client clean-server clean-client: clean-common -$(RM) $(CLIENT-BIN) clean-server: clean-common -$(RM) $(SERVER-BIN) clean-common: -$(RM) $(COMMON-BIN) client: $(CLIENT-BIN) $(COMMON-BIN) server: $(SERVER-BIN) $(COMMON-BIN) %.beam: %.erl erlc -o $(dir $@) $<