【问题标题】:unknown number of built sources with automake未知数量的带有 automake 的构建源
【发布时间】:2012-04-15 19:43:08
【问题描述】:

我有一个脚本,可以生成以前未知编号和名称的 c++ 源文件,然后需要将其编译到一个库中。到目前为止,我在 Makefile 中使用一个简单的(shell)for 循环来完成此操作:

compile:
        for f in `ls -1 *.cpp` ; do g++ -c ...
        ...

目录中不会有其他 c++ 源代码,所以我只编译那里的所有内容。

现在我想将我的构建系统更改为 autoconf/automake,我想知道这样做的“正确”方式是什么。我发现的教程仅涵盖您知道将生成的源的数量和名称的情况。

例如,有没有一种方法可以访问编译器名称和 autoconf/automake 为我整理的所有标志,以便我可以将它们插入到我自己的编译命令中?

提前致谢。

【问题讨论】:

    标签: autoconf automake generated-code


    【解决方案1】:

    我会更改脚本以生成一个Makefile.am,明确列出所有这些文件。

    【讨论】:

    • 但是我已经有一个 Makefile.am 负责运行脚本和生成源代码。该脚本依赖于其他输入文件,每当它们发生变化时都需要重新运行。 (我想我应该提到这一点。)
    【解决方案2】:

    所以你有类似的东西:

    FOO_SCRIPT=script.sh
    libfoo_la_SOURCES=foo.cpp bar.cpp baz.cpp
    
    foo.cpp : foo.input
            $(FOO_SCRIPT) $<
    
    bar.cpp baz.cpp : bar.input
            $(FOO_SCRIPT) $<
    

    【讨论】:

      【解决方案3】:
      SRC= $(wildcard *.cpp)
      OBJ= $(SRC:.cpp=.o)
      [...]
      target: $(OBJ)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-06
        • 2014-03-03
        • 2017-01-01
        • 1970-01-01
        相关资源
        最近更新 更多