If your make is GNU-make and all the defined variables include a non-space
character,
ifdef VAR1 && VAR2 && VAR3
can be written as
ifneq ($(and $(VAR1),$(VAR2),$(VAR3)),)
On a related note, probably and function requires version 3.81 or later.
In case some defined variables may be empty strings,
if we prepare the following functions:
ifndef_any_of = $(filter undefined,$(foreach v,$(1),$(origin $(v))))
ifdef_any_of = $(filter-out undefined,$(foreach v,$(1),$(origin $(v))))
then the following conditions:
ifdef VAR1 || VAR2
ifdef VAR1 && VAR2
can be written respectively using call function:
ifneq ($(call ifdef_any_of,VAR1 VAR2),)
ifeq ($(call ifndef_any_of,VAR1 VAR2),)