makefile中的Case关键字和设置变量

时间:2015-07-30 18:34:02

标签: makefile

以下三行在Makefile中做了什么?

1. SRCS:c=o
2. case "$*" in
3. support)

 OBJS=$(SRCS:c=o)
 %.o: %.c
         case "$*" in \
             support) $(CC) $(CCOPT) -c $(OPTS) $*.c ;; \
             *) $(PCC) $(PCCOPT) -c $(OPTS) $*.c ;; \
             esac

如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

OBJS=$(SRCS:c=o)Substitution Reference

  

当我们说“在一个单词的末尾”时,我们的意思是必须出现一个后跟空格或在值的末尾才能被替换;值的其他出现不会改变。例如:

foo := a.o b.o c.o
bar := $(foo:.o=.c)
     

将'bar'设为'a.c b.c c.c'。请参阅设置变量。

     

...

这一位:

     case "$*" in \
         support) $(CC) $(CCOPT) -c $(OPTS) $*.c ;; \
         *) $(PCC) $(PCCOPT) -c $(OPTS) $*.c ;; \
         esac

%.o: %.c目标的配方,是一个shell脚本。

请参阅Bash Reference ManualPOSIX spec中的case

support)*)位是case语句的一部分(就像esac)。