In a Makefile, a deploy recipe needs a environment variable ENV to be set to properly execute itself, whereas others don\'t care, e.g.:
deploy
ENV
You can use ifdef instead of a different target.
ifdef
.PHONY: deploy deploy: ifdef ENV rsync . $(ENV).example.com:/var/www/myapp/ else @echo 1>&2 "ENV must be set" false # Cause deploy to fail endif