Conditions dans le makefile et génération d'une erreur

a marqué ce sujet comme résolu.

Hello tout le monde,

J’essaie de faire en sorte que ma task "prod" ne soit pas appelable sans spécifier la variable d’environment en "staging" ou "prod".

J’ai donc écrit le makefile suivant :

prod:
    is_production_environment=
    ifeq ($(ENV),prod)
        is_production_environment = yes
    endif
    ifeq ($(ENV),staging)
        is_production_environment = yes
    endif

    ifndef is_production_environment
        $(error ENV is not prod, use `make prod ENV=prod` or `make prod ENV=staging`)
    endif
    
    {make build}

Malheureusement l’output est systématiquement la suivante :

Makefile:38: *** ENV is not prod, use `make prod ENV=prod` or `make prod ENV=staging`. Arrêt.

Et si je supprime la dernière condition, j’ai des erreurs sur les conditions précédentes :

/bin/sh: 1: Syntax error: word unexpected (expecting ")")
make: *** [Makefile:43: prod] Error 2

Si ça vous parle je suis ouvert aux suggestions. J’ai trouvé un workaround tout pourri, c’est de faire la condition hors de la task et d’utiliser la commande test. Pourtant le net regorge d’exemples où les conditions sont dans les tasks…

ifeq ($(ENV),prod)
    is_production_environment = yes
endif
ifeq ($(ENV),staging)
    echo "hello"
    is_production_environment = yes
endif
prod:
    # Next line makes makefile fail.
    @test $(is_production_environment)
    ${MAKE} build

Des idées ?

Salut,

Je n’ai pas de réponse à ton problème s’agissant d’une syntaxe propre à GNU make, mais n’y aurait-il pas moyen de faire plus simple ? Par exemple en définissant deux cibles : prod et staging ?

Sinon, as-tu déjà utilisé l’option -n histoire de savoir davantage sur ce que fait make ?

+0 -0

Salut,

Je n’ai pas de réponse à ton problème s’agissant d’une syntaxe propre à GNU make, mais n’y aurait-il pas moyen de faire plus simple ? Par exemple en définissant deux cibles : prod et staging ?

Sinon, as-tu déjà utilisé l’option -n histoire de savoir davantage sur ce que fait make ?

Taurre

C’est vrai que vu qu’il y a peu de choses dans cette étape c’est pertinent. Un copier/coller ferait le taff.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte