C语言 使用自动工具构建动态程序列表



我有以下常规(手写)制作文件:

all: $(patsubst %.c,%.so,$(wildcard *.c))
%.so: %.c
     $(CC) $(CFLAGS) $(LDFLAGS) -rdynamic -o $@ $^

我需要将此生成文件转换为自动工具(主要用于用好东西填充 CFLAGS 和 LDFLAGS)我第一次阅读自动工具文档使我认为这是不可能的,因为自动工具需要提前知道其所有目标......但我可能是错的。

知道吗?

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

请注意,如果您打算使用 autotools,您可能不想编写规则来生成 *.so,但应该使用 libtool 和 LTLIBRARIES primary。

类似

bin_PROGRAMS = program1
if boolean_flag
    bin_PROGRAMS += program2
endif

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

最新更新