使用Autotools构建动态程序列表

3

我有一个手写的Makefile文件,内容如下:

all: $(patsubst %.c,%.so,$(wildcard *.c))

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

我需要将这个makefile转换为autotools(主要是为了使用好的CFLAGS和LDFLAGS) 我第一次阅读autotools文档时认为这是不可能的,因为autotools需要预先知道所有目标... 但我可能是错的。 有什么想法吗?
2个回答

2

Automake希望知道所有的文件名,但通常会有一个启动脚本,在运行Automake之前创建Makefile.am。以下是一个相当天真的例子:

#!/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 主要内容。

0

类似于某些东西

bin_PROGRAMS = program1
if boolean_flag
    bin_PROGRAMS += program2
endif

在Makefile.am中对我有用 - 你只需要弄清楚如何设置标志

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接