如何在makefile中获得shell变量

最近在编译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/demoexport命令。

上述大牛的解释 经过试验可用:

做法:shell中:export CUSTOMER_FOLDER=${customer_folder}

          makefile中:@cp -f $(PHOTOSPHERE_ROOT)/projects/$(CUSTOMER_FOLDER)/boot0.jpg 

你可能感兴趣的:(android编译)