首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在include_HEADERS上同时使用自动工具nobase和nodist前缀

如何在include_HEADERS上同时使用自动工具nobase和nodist前缀
EN

Stack Overflow用户
提问于 2016-04-27 20:40:56
回答 1查看 1.4K关注 0票数 11

子目录中有一些头文件,必须复制到包含目录中的同名子目录。我可以使用nobase前缀来实现这一点(我正在使用heimdal代码,fyi):

代码语言:javascript
复制
nobase_include_HEADERS = hcrypto/aes.h \
      hcrypto/bn.h      \
      hcrypto/cmac.h    \
      hcrypto/des.h     \
      hcrypto/dh.h      \
      hcrypto/dsa.h     \
etc...

但是其中一些头文件是在构建过程中生成的(因为heimdal必须在这些头文件存在之前构建),所以我需要使用nodist前缀,这样dist就不会死。

I found an article说我可以同时使用它们,甚至提供了一个类似的例子,所以我这样做了:

代码语言:javascript
复制
nobase_nodist_include_HEADERS = hcrypto/aes.h \
      hcrypto/bn.h      \
      hcrypto/cmac.h    \
      hcrypto/des.h     \
      hcrypto/dh.h      \
      hcrypto/dsa.h     \
etc...

我没有注意到任何警告或错误,但这些头文件不会被复制到我的包含目录。我是不是做错了什么,还是自动工具中有bug?

有趣的是,如果我反转前缀,就会得到以下错误:

代码语言:javascript
复制
Makefile.am:93: error: 'nodist_nobase_include_HEADERS' is used but 'nobase_includedir' is undefined

错误的原因在这里的automake documentation中解释。

与“nobase_”或“nodist_”一起使用时,应首先指定“dist_”或“nodist_”

我还定义了nodist_include_HEADERS (它正在工作)。也许这两个定义引起了某种冲突?

我只是尝试删除nodist_include_HEADERS并将我的所有头放在nobase_nodist_include_HEADERS行下,但是现在我的头都没有安装。

自动化和系统信息: Automake (GNU automake) 1.13.4 openSUSE 13.2 (x86_64)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-09 08:06:39

如果标头是由程序生成的,则应该用BUILT_SOURCES标记它们,这样automake就不会混淆如何将其安装为dist

其次,对于不打算安装的头文件,最好使用SOURCES指令,而不是使用HEADERS。试试这个:

代码语言:javascript
复制
nobase_include_SOURCES += hcrypto/aes.h \
    hcrypto/bn.h      \
    hcrypto/cmac.h    \
    hcrypto/des.h     \
    hcrypto/dh.h      \
    hcrypto/dsa.h
BUILT_SOURCES = hcrypto/aes.h \
    hcrypto/bn.h      \
    hcrypto/cmac.h    \
    hcrypto/des.h     \
    hcrypto/dh.h      \
    hcrypto/dsa.h
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36900450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档