最近在编译android的时候,脚本(shell)中有个变量,希望能够在makefile中得到这个变量值,进行编译。
source脚本的时候定义这个变量,make的时候用到这个变量。
如何在makefile中获得shell环境变量:
1、在写makefile的时候,有时我们需要获取shell命令的结果,并将其赋值给变量,下面是个例子
ROOT = $(shell pwd)
all:
@echo "ROOT = $(ROOT)"
或者直接
ROOT = `pwd`
但是上述的是针对shell命令的,试过针对变量的话,makefile那边无法获取到变量值。
2、
如果你已经导出了环境变量:
export demoPath=/usr/local/demo
只需在makefile
(make
导入你设置的所有环境变量):
DEMOPATH = ${demoPath} # Or $(demoPath) if you prefer.
如果尚未导出环境变量,则在导出该变量之前,或除非在命令行上显式传递它,否则无法访问该变量:
make DEMOPATH="${demoPath}" …
如果你使用的是C shell导数,则替换setenv demoPath /usr/local/demo
为export
命令。
上述大牛的解释 经过试验可用:
做法:shell中:export CUSTOMER_FOLDER=${customer_folder}
makefile中:@cp -f $(PHOTOSPHERE_ROOT)/projects/$(CUSTOMER_FOLDER)/boot0.jpg