跳至正文
Wener Notes

Makefile

约 1 分钟阅读

平台相关

如果有 Go 环境推荐使用 go env GOOS

make
accel_Darwin	:=hvf
accel_Linux		:=kvm
platform		  :=$(shell uname -s)
accel			    ?=$(accel_$(platform))
  • msys2
    • -s 输出 MSYS_NT-10.0-17763
    • -o 输出 Msys

warning: overriding commands for target

  • 无法关闭错误信息
  • 可以考虑 base 使用 <xxx>-default 的命名方式
  • Overriding Part of Another Makefile
    • 推荐 $(MAKE) -f base.Makefile, 但是会产生额外的 进程
base.mk
build-default:
        echo  'build default'
%:  %-default # 让 build 隐含执行 build-default
        @true
make
build: # 必须要定义 target

默认值

make
NAMESPACE := $(or $(NAMESPACE), $(shell basename $(shell pwd)))

ONESHELL

  • 3.8.2+
  • macOS 默认 make 为 3.8.1
make
.ONESHELL:
logo:
	cd build
	ls

关联信息

反向链接、本文链接的其他页面和外部资料。

参考资料

其他外链1 条
最近更新commit 11827b3编辑