De la sortie d'un fichier si l'état de deux variables shell sont un certain état

Donc j'ai besoin de m'assurer que si je suis de compilation croisée pour une cible spécifique qu'une variable d'environnement est définie. Si la variable n'est pas définie, alors faire devrait afficher un message, puis sur quitter.

J'ai la règle suivante dans mon Makefile:

.PHONY: checksource

all: checksource default

checksource:
    $(if $(and $(ifeq ($(CROSS_COMPILE), whatever)), $(ifeq ($(VARIABLE),))), \
    ($(shell echo "Error! VARIABLE not defined!") \
     $(shell exit 2)))

Si $CROSS_COMPILE est fixé à quoi que ce soit:

$> echo $CROSS_COMPILE
whatever
$>

et $VARIABLE n'est pas définie:

$> echo $VARIABLE
$>

Il ne quitte pas la marque et de la cible par défaut est construit. Bon, je sais que je pourrais simplement utiliser imbriquée ifeq de le faire, mais je veux faire joli (et d'en apprendre un peu plus sur les makefiles).

OriginalL'auteur MakeDummy | 2010-09-10