ライブラリでのソースの条件的コンパイルは,プログラムでのソースの条件的
コンパイルと同じ方法で達成することが可能です(see Conditional Sources).違いは,_LDADDの代わりに_LIBADDを使用し,
libtoolオブジェクト(.loファイル)について記述することだけです.
そのため,Conditional Sourcesのhelloの例を真似てみると, 以下のようなMakefile.amを用いてhello-linux.cまたは hello-generic.cのいずれかを使用してlibhello.laライブラリ をビルドすることが可能でしょう.
lib_LTLIBRARIES = libhello.la
libhello_la_SOURCES = hello-common.c
EXTRA_libhello_la_SOURCES = hello-linux.c hello-generic.c
libhello_la_LIBADD = $(HELLO_SYSTEM)
libhello_la_DEPENDENCIES = $(HELLO_SYSTEM)
そして,$(HELLO_SYSTEM)が./configureで
hello-linux.loまたはhello-generic.loのいずれかに設定され
ていることを確かめて下さい.
また,Automake条件式を使用して以下のように簡単にすることも可能でしょう.
lib_LTLIBRARIES = libhello.la
libhello_la_SOURCES = hello-common.c
if LINUX
libhello_la_SOURCES += hello-linux.c
else
libhello_la_SOURCES += hello-generic.c
endif