Como saber se o GNU make está sendo usado em um makefile?

1

Eu sei que o GNU Make é de longe o mais comumente usado, mas eu estou procurando uma maneira de verificar se o GNU Make é o programa de criação que está sendo usado. Existe uma variável especial que eu posso imprimir a partir do Makefile como:

@echo "$(MAKE_VERSION)"

E se eu tiver o GNU Make e outra variante instalada?

which make
/usr/bin/make
    
por tarabyte 27.07.2015 / 22:35

3 respostas

1

Usando:

$(MAKE) --version

funciona aqui. Minha saída é:

make --version
GNU Make 3.82
Built for i686-pc-linux-gnu
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
    
por 27.07.2015 / 22:47
3

Do manual do GNU :

By default, when make looks for the makefile, it tries the following names, in order: GNUmakefile, makefile and Makefile.

Então, se você nomear seu arquivo de criação GNUmakefile , então você deve ter certeza de que ele será lido apenas pelo GNU make e não por qualquer outro make.

    
por 27.07.2015 / 22:57
0

de aqui a única maneira que eu encontrei fazendo isso em um makefile é

  ifeq (3.81,$(firstword $(sort $(MAKE_VERSION) 3.81)))
    # stuff that requires make-3.81 or higher
  endif
    
por 07.12.2018 / 13:50

Tags