我需要使用或不使用某些库来编译我的程序,具体取决于它运行的两个主机中的哪一个。我不知道在我的makefile中HOST=
的右侧使用了什么来使我的工作符合我的要求:
ifeq(${HOST},${ADDITIONAL_LIBS_HOST})
ADD_LIBS= ...
${ADDITIONAL_LIBS_HOST}
是获得的主机名称
echo ${HOSTNAME}
答案 0 :(得分:7)
一些想法:
这是GNU autoconf旨在解决的那种情况。运行./configure
,找出可用的库,并生成适当的Makefile。
您可以通过执行以下操作获取当前主机名:
HOST=$(shell hostname)
然后您可以在条件中使用它。
您可以让您的Makefile执行以下操作:
include Makefile.local
然后在每个主机上都有不同的Makefile.local文件。
Re:你的评论,给出像这样的Makefile:
HOST=$(shell hostname)
all:
@echo $(HOST)
将生成以下输出:
$ make all
fafnir.local
(假设你的当地主人是" fafnir.local"。我的是。)