我需要使用或不使用某些库来编译我的程序,具体取决于它运行的两个主机中的哪一个.我不知道HOST=在makefile 的右侧使用什么来使我的工作符合我的要求:
ifeq(${HOST},${ADDITIONAL_LIBS_HOST})
ADD_LIBS= ...
Run Code Online (Sandbox Code Playgroud)
${ADDITIONAL_LIBS_HOST} 是来自的主人的名字
echo ${HOSTNAME}
一些想法:
这是GNU autoconf旨在解决的那种情况.运行./configure,找出可用的库,并生成适当的Makefile.
您可以通过执行以下操作来获取当前主机名:
HOST=$(shell hostname)
Run Code Online (Sandbox Code Playgroud)
然后你可以在条件中使用它.
您可以改为让Makefile执行以下操作:
include Makefile.local
Run Code Online (Sandbox Code Playgroud)
然后在每个主机上有不同的Makefile.local文件.
Re:你的评论,给出像这样的Makefile:
HOST=$(shell hostname)
all:
@echo $(HOST)
Run Code Online (Sandbox Code Playgroud)
将生成以下输出:
$ make all
fafnir.local
Run Code Online (Sandbox Code Playgroud)
(假设你当地的主人是"fafnir.local".我的是哪个.)
| 归档时间: |
|
| 查看次数: |
6525 次 |
| 最近记录: |