标签: bsdmake

bmake的优点

除了bmake相当于GNU make的BSD之外,我无法清楚地理解它比GNU make更具优势.谁能帮我?我只能找到一个有点帮助的资源.更多的帮助或指示表示赞赏.

谢谢,帕布

makefile build gnu-make bsdmake

10
推荐指数
3
解决办法
4095
查看次数

make和gmake兼容if else语句

是否有任何类型的if/else语句与GNU make和Berkley make(freeBSD)兼容?

GNU MAKE:

 ifeq ($(BUILD_TYPE), debug)
Run Code Online (Sandbox Code Playgroud)

伯克利制造:

.ifdef (BUILD_TYPE)
Run Code Online (Sandbox Code Playgroud)

gnu makefile gnu-make bsdmake

6
推荐指数
1
解决办法
1469
查看次数

使用BSD制作Catchall目标

在BSD Makefile中,是否可以定义一个包罗万象的目标?我正在寻找相当于GNU的GNU:

%:
    @echo caught target $@
Run Code Online (Sandbox Code Playgroud)

我希望预处理器拥有足够的魔力来动态定义目标,但无法弄清楚如何这样做.所有局部变量(例如.TARGET,仅目标工作但不在全局范围内工作).

makefile bsdmake

6
推荐指数
1
解决办法
1389
查看次数

如何在 GNU Make 中以编程方式定义目标?

我不知道有什么方法可以在 GNU Make 中以编程方式定义目标。这怎么可能?

有时可以使用替代方法离开。然而,在 Makefile 中以编程方式定义目标的能力对于使用make. 在 FreeBSD 的构建系统或诸如BSD Owl 之类的Makefile 库中可以找到复杂生成规则的示例

shell 脚本和 Makefile 之间的主要区别是:

  • 在 Makefile 中,程序的状态由命令行和文件系统给出,因此可以在作业中断后恢复作业。当然,这需要正确地编写 Makefile,但即使这相当困难,也比使用 shell 脚本实现类似的效果要容易得多。

  • 在 Makefile 中,用建议或钩子装饰一个过程是非常容易的,而这在 shell 脚本中基本上是不可能的。

例如,一个非常简单且有用的模式如下:

build: pre-build
build: do-build
build: post-build
Run Code Online (Sandbox Code Playgroud)

这将build目标呈现为三个目标的组合,一个包含实际指令do-build,另外两个是钩子,在 之前和之后执行do-build。许多为 BSD Make 编写的构建系统都使用这种模式,顺便说一下,它允许以编程方式定义目标,以便可以批量编写:

.for _target in configure build test install
.if !target(${_target})
${_target}: pre-${_target}
${_target}: do-${_target}
${_target}: post-${_target}
.endif
.endfor
Run Code Online (Sandbox Code Playgroud)

.if/.endif块引入的条件使用户能够使用自己对 any 的定义${_target}

GNU Make 的那个片段的翻译是什么?

makefile gnu-make bsdmake

4
推荐指数
1
解决办法
1674
查看次数

如何有条件地为Makefile(BSD + GNU)中的变量赋值?

从我的角度来看,我有一个相当复杂的Makefile。

这主要是因为我想在那里添加颜色和其他不必要的东西。

无论如何,我可以跳进我的问题:

除了Linux,我最近还支持* BSD,因此我需要检查在多个地方使用的平台。Makefile中可以进行条件变量赋值吗?就像是:


platform := [ $$(uname) = Linux ] && echo Linux || echo BSD or other
Run Code Online (Sandbox Code Playgroud)

当然这是行不通的,但是希望您能理解我的意思。


我需要一个可以与BSD make和GNU 一起使用的解决方案make

conditional makefile gnu-make bsdmake

3
推荐指数
1
解决办法
766
查看次数

标签 统计

bsdmake ×5

makefile ×5

gnu-make ×4

build ×1

conditional ×1

gnu ×1