我正在使用 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 来做到这一点?
最小的库可以有单一来源。
不要在需要的地方列出 libObjectively.la,而是列出所有较小的库。