Automake + libtool:每个对象 CFLAGS 的模式规则?

问题描述 投票:0回答:2

我正在使用 GNU Automake 和 libtool 来编译我的程序。我的

Makefile.am
看起来像这样:

lib_LTLIBRARIES = \
    libObjectively.la

libObjectively_la_SOURCES = \
    Array.c \
    Class.c \
    Condition.c \
    Date.c \
    DateFormatter.c \
    Dictionary.c \
    Lock.c \
    Log.c \
    Object.c \
    String.c \
    Thread.c

libObjectively_la_CFLAGS = \
    -I ..

libObjectively_la_LDFLAGS = \
    -pthread \
    -shared

一切都编译得很好。但是,我也希望使用模式规则为每个源文件设置 CFLAGS。在常规的旧

Makefile
语法中,这看起来像:

%.o: %.c $(CC) $(CFLAGS) -D__Class=$(subst .o,,$@) -o $@ $<

有没有办法用 Automake + libtool 来做到这一点?

c pattern-matching gnu-make automake libtool
2个回答
1
投票


0
投票

最小的库可以有单一来源。

不要在需要的地方列出 libObjectively.la,而是列出所有较小的库。

© www.soinside.com 2019 - 2024. All rights reserved.