Makefile 到 Shell 转换
Makefile to Shell Conversion
正在尝试将基本 Makefile 转换为 shell 等效文件,但在一些基础知识中迷失了方向。
下面是Makefile中的一段代码
WHAT1_UC := ALOHA
WHAT1_NUM := 1
WHAT1_WHERELOG_VAR = $(WHAT1_UC)_WHERE_FILENAME
ifeq ($(strip $(WHAT1_NUM)), 1)
$(WHAT1_WHERELOG_VAR) = mac.@PATH@.log
else
$(WHAT1_WHERELOG_VAR) = $(RLDIR)/mac.@PATH@.t%.log
endif
export $(WHAT1_WHERELOG_VAR)
查询:
一种。在此 @PATH@.log 代表什么?它是否选择默认的环境变量 PATH ?
b.那么 WHAT1_WHERELOG_VAR 的最终值是多少,是 export ALOHA_WHERE_FILENAME = mac.@PATH@.log ??
下面是一段 shell 代码,正在尝试基于上面的 Make 代码,但无法复制它的等价物。
WHAT1_UC="ALOHA"
WHAT1_NUM=1
WHAT1_WHERELOG_VAR=${WHAT1_UC}_WHERE_FILENAME
if [ $WHAT1_NUM == 1 ]; then
export ${WHAT1_WHERELOG_VAR}=mac@$PATH@.log
else
export ${WHAT1_WHERELOG_VAR}=${RLDIR}/mac.@PATH@.t%.log
fi
要使用的 @PATH@ 的 shell 等价物是什么??
请澄清以上问题。让我知道错过了什么?谢谢
Query: a. In this what does @PATH@.log represents ?
在POSIX或GNUmake
中,@PATH@.log代表@PATH@.log。但是 @PATH@ 部分可能不是故意的——它有一个占位符的外观,本应由单独的程序填充,例如 autoconf
,作为生成 makefile 的一部分看着。
或者,这可能是为了在构建过程中被替代。
Is it picking the
default env variable PATH ?
不,它在我所知道的任何 makefile 方言中都没有特殊含义。
b. So what will be the final value of
WHAT1_WHERELOG_VAR,
是ALOHA_WHERE_FILENAME.
is it export ALOHA_WHERE_FILENAME = mac.@PATH@.log
??
没有。 $(WHAT1_WHERELOG_VAR)
和 ${WHAT1_WHERELOG_VAR}
扩展为变量 WHAT1_WHERELOG_VAR
的值。它们与设置该变量的值无关。
What is the shell equivalent of @PATH@ to be used ??
是@PATH@
,对shell的意义并不比对make
的意义大。
正在尝试将基本 Makefile 转换为 shell 等效文件,但在一些基础知识中迷失了方向。
下面是Makefile中的一段代码
WHAT1_UC := ALOHA WHAT1_NUM := 1 WHAT1_WHERELOG_VAR = $(WHAT1_UC)_WHERE_FILENAME ifeq ($(strip $(WHAT1_NUM)), 1) $(WHAT1_WHERELOG_VAR) = mac.@PATH@.log else $(WHAT1_WHERELOG_VAR) = $(RLDIR)/mac.@PATH@.t%.log endif export $(WHAT1_WHERELOG_VAR)
查询: 一种。在此 @PATH@.log 代表什么?它是否选择默认的环境变量 PATH ? b.那么 WHAT1_WHERELOG_VAR 的最终值是多少,是 export ALOHA_WHERE_FILENAME = mac.@PATH@.log ??
下面是一段 shell 代码,正在尝试基于上面的 Make 代码,但无法复制它的等价物。
WHAT1_UC="ALOHA"
WHAT1_NUM=1
WHAT1_WHERELOG_VAR=${WHAT1_UC}_WHERE_FILENAME
if [ $WHAT1_NUM == 1 ]; then
export ${WHAT1_WHERELOG_VAR}=mac@$PATH@.log
else
export ${WHAT1_WHERELOG_VAR}=${RLDIR}/mac.@PATH@.t%.log
fi
要使用的 @PATH@ 的 shell 等价物是什么??
请澄清以上问题。让我知道错过了什么?谢谢
Query: a. In this what does @PATH@.log represents ?
在POSIX或GNUmake
中,@PATH@.log代表@PATH@.log。但是 @PATH@ 部分可能不是故意的——它有一个占位符的外观,本应由单独的程序填充,例如 autoconf
,作为生成 makefile 的一部分看着。
或者,这可能是为了在构建过程中被替代。
Is it picking the default env variable PATH ?
不,它在我所知道的任何 makefile 方言中都没有特殊含义。
b. So what will be the final value of WHAT1_WHERELOG_VAR,
是ALOHA_WHERE_FILENAME.
is it export ALOHA_WHERE_FILENAME = mac.@PATH@.log ??
没有。 $(WHAT1_WHERELOG_VAR)
和 ${WHAT1_WHERELOG_VAR}
扩展为变量 WHAT1_WHERELOG_VAR
的值。它们与设置该变量的值无关。
What is the shell equivalent of @PATH@ to be used ??
是@PATH@
,对shell的意义并不比对make
的意义大。