Next: Libtool Convenience Libraries, Previous: Conditional Libtool Libraries, Up: A Shared Library
ライブラリでのソースの条件的コンパイルは,プログラムでのソースの条件的
コンパイルと同じ方法で達成することが可能です(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