GNU Makefileの条件付き制御構造

一般的なプログラミング言語では、他に...そのようであれば...他にいるかのように制御構造を使用しては...それでGNU Makefileを使用する方法、その後、非常に珍しいことですが?

  • ifeq
  • ifneq

たとえば、次のようにfoo.sh

1#!/ binに/ bashの
 2  
3 ARCH = $(のuname - p)は
 4  であれば [[$ ARCH == " x86_64版" ]]; 次いで
5      ARCH32 = " i686の" 
6      ARCH64は= " x86_64の" 
7  のelif [[$ ARCH == " ppc64le " ]]。その後、
8      ARCH32 = "" 
9      ARCH64 = " ppc64le " 
10  
11      ARCH32 = $ ARCH
 12     ARCH64 = "" 
13  Fiが
14  
15  であれば [[-n $ ARCH32]]。次いで
16      OUTPUT + = " ARCH32 = $ ARCH32 " 
17  Fiが
18  
19  であれば [[-n $ ARCH64]]。その後、
20      OUTPUT + = " ARCH64 = $ ARCH64 " 
21  Fiの
22  
23  エコーの$ OUTPUT

上記foo.shは、Makefileを用いて達成されます。

1 ARCH = $(シェルのuname - P)
 2  
3  ifeq($(ARCH)、x86_64の)
 4         ARCH32 = i686の
 5         ARCH64 = x86_64の
 6  ifeq($(ARCH)、ppc64le)
 7         ARCH32 =
 8         ARCH64 = ppc64le
 9  他の
10         ARCH32 = $(ARCH)
 11         ARCH64 =
 12  ENDIF
 13  
14  ifneq($(ARCH32))
 15      OUTPUT + = ARCH32 = $(ARCH32)
 16  ENDIF
 17  
18 ifneq($(ARCH64))
 19      OUTPUT + = ARCH64 = $(ARCH64)
 20  ENDIF
 21  
22  全:FOO
 23  FOO:
 24      @echo $(OUTPUT)

次のようにFoo.sh Makefileと実行結果は以下のとおりです。

$のは、uname - P 
x86_64版
の$ bashのfooの。SH 
ARCH32 = i686のARCH64 = x86_64版
$ 作る - Makefileのfを
ARCH32 = i686のARCH64 = x86_64版

このように、

  • ifeq($(VAR)は、)  はbashに相当する [[-z $のVAR]
  • ifneq ($(VARには)、) bashのと等価である [[-n $のVAR]]

おすすめ

転載: www.cnblogs.com/idorax/p/11585706.html