私は現在、それぞれが独自のMakefileのセットを使用するC ++バイナリのセットを、Autotoolsをベースにしたより新しいものにアップグレードするために取り組んでいます。ただし、サードパーティのライブラリ(Oracle Instant Clientなど)をビルド/パッケージ化プロセスに含める方法がわかりません。
これは私が見逃した本当に単純なものですか?
編集して詳細を追加
私の現在のビルド環境は次のようになります。
/src
/lib
/libfoo
... source and header files
Makefile
/oci #Oracle Instant Client
... header and shared libraries
Makefile
/bin
/bar
... source and header files
Makefile
Makefile
/build
/bin
/lib
build.sh
現在、トップレベルのbuild.shは次の手順を実行します。
- 各libのMakefileを実行し、出力を/ build/libにコピーします
- 各バイナリのMakefileを実行し、出力を/ build/binにコピーします
各Makefileには、さまざまな兄弟ディレクトリへのハードコードされたパスのセットがあります。言うまでもなく、これは維持するのが悪夢になっています。私はautotoolsのテストを開始しましたが、行き詰まっているのは、コンパイル時のリンクとディストリビューションへのバンドルのために/src/lib/oci/*.soを/build/libにコピーするのと同じことを考えています。