麻烦使得简单的autoconf设置用于分发共享库

时间:2011-03-27 10:12:19

标签: c linux makefile compilation shared-libraries

在扩展标准makefile(示例,清理,(un)安装等)时遇到问题后,我决定尝试autoconf。

我能找到的唯一文档是如何提供要编译和安装的文件,但不是一个将链接并安装到库位置的文件。

教程的一个例子给我:

# what flags you want to pass to the C compiler & linker
CFLAGS = --pedantic -Wall -std=c99 -O2
LDFLAGS =

# this lists the binaries to produce, the (non-PHONY, binary) targets in
# the previous manual Makefile
bin_PROGRAMS = targetbinary1 targetbinary2 [...] targetbinaryN
targetbinary1_SOURCES = targetbinary1.c myheader.h [...]
targetbinary2_SOURCES = targetbinary2.c
.
.
targetbinaryN_SOURCES = targetbinaryN.c

当然这似乎有点限制,因为它没有暴露Cflags(或我想要的情况下的LDFLAGS)去哪里或是否自动应用它们。

bin_PROGRAMS可以是其他一些选项,但它们似乎只是用于包含库(.la)而不是编译一个,或者将编译的共享库安装到系统。

我是否有点愚蠢包装我的库,所以它可以./configured和类似?是否有任何GNU make的基线指南,这种包装或非正式约定会更容易做到这一点?我期待着研究我的所有选择。

1 个答案:

答案 0 :(得分:2)

我通过使用libtool和automake找到答案,这比处理特定于平台的标志更有意义。