这是继之后。
我有Makefile.real (来自prev 的Makefile):
all: a b
a:
echo a
exit 1
b:
echo b start
sleep 1
echo b end
现在我想创建Makefile,它是Makefile.real的简单包装
它用相同的args调用) ,它使用与相同的arg调用make,它应该打印错误消息id Makefile.real fails ,这是我的目标--在并行make的末尾打印错误消息(参见)。
因此,以下命令应以错误消息终止:
make -
大型工程通常有一个复杂的Makefile系统。在不同的Makefiles中有很多变量定义和目标-前提依赖关系。有什么方便的方法来打印所有的先决条件并为目标构建规则?
具体来说,有两个问题:
问题1
假设我有四个Makefile:
Makefile1:
p: a b
[some rule]
Makefile2:
q: c d
[some rule]
Makefile3:
r: e f
[some rule]
Makefile:
all: p q r
[some rule]
我是否可以调用一些命令来获得类似于下面的输出?
all: a b c d e f
[
我有这样的Makefile:
b:
@echo "b"
a:
@echo "a"
@make b
我希望这个Makefile在我执行'make a‘之后打印"a\nb“。它做的事情,但它也打印“进入目录”和“离开目录”:
$ make a
a
make[1]: Entering directory `/home/bessarabov'
b
make[1]: Leaving directory `/home/bessarabov'
实际上,这些行并不会让我感到
我阅读了GNU文档中的部分,但不明白如何在make规则中多次定义make变量。
例如,请参见以下简短的makefile:
.PHONY: run
run: a b
TARGET := a
$(TARGET):
echo $(TARGET)
touch $@
TARGET := b
$(TARGET):
echo $(TARGET)
touch $@
,它在运行make时产生以下输出
echo b
b
touch a
echo b
b
touch b
a似乎有一个目标,而自动变量$@确实是a。但是,响应TARGET变量,这也是目标名称,打印b.这里发生了什
我有一个看起来像这样的Makefile:
SOURCE_myfile=/opt
SOURCE_myfile2=/usr/lib
all:
for i in {myfile,myfile2}; do echo $${SOURCE_$$i}; done
我的需要:打印内容的两个变量SOURCE_myfile和SOURCE_myfile2,但它不起作用。有什么想法吗?
% make
for i in {myfile,myfile2}; do echo ${SOURCE_$i}; done
/bin/sh: ${SOURCE_$i}: bad substitution
make: *
让我们说,有一个Makefile的目标如下:
.PHONY: app
target-a: my-dependency
...
target-b: my-dependency
...
my-dependency:
# Print the name of the target which depends on this during run-time
例如,在发出此命令时,我希望my-dependency打印目标-a。
make target-a
例如,在发出此命令时,我希望my-dependency打印目标-b。
make target-b
我对Make的了解很少。有人告诉我,你放在make (不包含"-")之后的所有东西都是一个目标。嗯,我的一个构建过程正在失败。首先有一条线
make path/to/configuration_file
configuration_file不是目标。它是一个自动生成的配置文件,隐藏在目录结构("path/to")中,其形式为
#
# Boot Configuration
#
#
# DRAM Component
#
CONFIG_DRAM_TYPE_LPDDR4=y
# CONFIG_DRAM_TYPE_DDR4 is not set
CONFIG_DDR_S