If you're using GNU make, you can use the define syntax for multi-line variables:
define message =
You can also include make macros like
$$@ = $@
in a multi-line variable
endef
help:; @ $(info $(message)) :
By playing with the value function and the export directive, you can also include a whole script in your Makefile, which will allow you to use a multi-line command without turning on .ONESHELL globally:
define _script
echo SHELL is $SHELL, PID is $$
cat <<'EOF'
literally $SHELL and $$
EOF
endef
export script = $(value _script)
run:; @ eval "$$script"
will give
SHELL is /bin/sh, PID is 12434
literally $SHELL and $$