既存のライブラリを-fPICつけてコンパイルする方法

オープンソースのライブラリは大体automakeの各種ファイルが付属しているが、それらを使って./configure→makeしてもlibxxx.aとかlibxxx.soまでしか作らない。悲しいことに、Apache moduleに組み込もうと思ってlibxxx.aやlibxxx.soを渡しても、apxs(apxs2)は文句を垂れる。なぜなら、Apache moduleは-fPICオプションをつけてコンパイルしたlibxxx.laしか受け付けておらず(参考 : http://httpd.apache.org/docs/2.0/programs/apxs.html)、公開されているライブラリほぼ確実に-fPICオプションなんかつけていないからである。

以下の方法でlibxxx.laを作れば宜しい。

1. libtool-devをインストール
2. ライブラリのconfigure.acを軽く見渡して、「AC_PROG_...」と書かれた行がたくさんあるブロックに

AC_PROG_LIBTOOL

と追記 (AC_PROG_LIBTOOLがDeprecatedと言われたら、代わりに「LT_INIT」と追記)
3. /usr/share/libtool/ 以下からconfig.sub, config.guess, ltmain.shをln-s
4. Makefile.amに

lib_LTLIBRARIES=libxxx.la
libxxx_la_SOURCES=xxx.c yyy.c

と追記 (ただし.aと.laは同時にMakeできないので、Makefile.amに.aのルール(lib_LIBRARIES=libxxx.a)が記述されている場合は消す)
5. ./configure
6. make