如何使makefile主机依赖?

时间:2011-11-05 00:24:53

标签: linux makefile

我需要使用或不使用某些库来编译我的程序,具体取决于它运行的两个主机中的哪一个。我不知道在我的makefile中HOST=的右侧使用了什么来使我的工作符合我的要求:

   ifeq(${HOST},${ADDITIONAL_LIBS_HOST})
   ADD_LIBS= ...   

${ADDITIONAL_LIBS_HOST}是获得的主机名称 echo ${HOSTNAME}

1 个答案:

答案 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"。我的是。)