首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用autotools创建动态程序列表

用autotools创建动态程序列表
EN

Stack Overflow用户
提问于 2012-11-23 19:37:36
回答 2查看 131关注 0票数 3

我有以下常规的(手写) makefile:

代码语言:javascript
复制
all: $(patsubst %.c,%.so,$(wildcard *.c))

%.so: %.c
     $(CC) $(CFLAGS) $(LDFLAGS) -rdynamic -o $@ $^

我需要将这个makefile转换成autotools (主要是用好的东西填充CFLAGS和LDFLAGS )。第一次阅读autotools文档时,我认为这是不可能的,因为autotools需要事先知道它的所有目标……但我可能错了。

有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2012-11-24 01:27:27

automake当然想知道所有的文件名,但是在运行Automake之前有一个创建Makefile.am的引导脚本是很常见的。这里有一个相当幼稚的例子:

代码语言:javascript
复制
#!/bin/sh

cat Makefile.am.head > Makefile.am
ls *.c | sed 's/$/ \\/' >> Makefile.am
cat Makefile.am.tail >> Makefile.am
autoreconf -ivf

请注意,如果您要使用自动工具,您可能无论如何都不想编写生成*.so的规则,而应该使用libtool和LTLIBRARIES主工具。

票数 2
EN

Stack Overflow用户

发布于 2012-11-23 21:04:10

就像这样

代码语言:javascript
复制
bin_PROGRAMS = program1
if boolean_flag
    bin_PROGRAMS += program2
endif

在Makefile.am works for me(tm)中--您只需要弄清楚如何设置标志

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13528327

复制
相关文章

相似问题

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