求救,关于Makefile里的shell编程和make 对象的问题!!!

发布于 2022-10-01 09:13:30 字数 2049 浏览 11 评论 0

在makefile中使用shell编程的方式对变量进行赋值一般可以采用如下方式

SUBDIR   :sh=   echo src src1 (即把src 和src1赋给变量SUBDIR)

但是好象没有甚么作用。

另外一种是使用 SUBIR   :=  $(shell   echo src src1 ) 是可以的。
但是我想把像 if [ -d src/aaa ]
              then
                       echo aaa
              fi

这种需要判断的shell程序加入到  SUBDIR中,不知道行不行。 即

SUBDIR    := $(shell if [ -d src/aaa ])
             then
                          echo aaa
             fi)
像这种形式的程序,如何在makefile中使用?
我不想用  SUBDIR :=$(sell  ./sh)  这种把结果输出到一个本地shell中。
而是直接在makefile的变量里进行判断。

问题2:

在makfile中如下写法

SUBDIRS         :=      $(shell  $(SRC)/finddir.sh)

install:=       TARGET = install
all:=           TARGET = all
lint:=          TARGET = lint
clean:=         TARGET = clean

install all lint clean : $(SUBDIRS)

$(SUBDIRS):FRC
     
        cd $@ ; $(MAKE) $(TARGET)
FRC:

执行make all 或是 make clean 时,变量 TARGET好象根本就没有传进去,不知道为什么,总是执行 make 这个命令,即开始编译程序, 而不去执行make clean。 把 $(TARGET) 打印出来也是空的。不知道为甚么TARGET没有传进去。

请教高手!

     

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文