xcb-util-xrm ライブラリを手動で構築しようとしています。ビルド手順のリンクが2つ見つかりました。1つはi3gaps
の- issue tracker から、もう1つはこのバグレポート here からです。
最初のリンクの手順は、要約すると2016年のものです。
git clone https://github.com/Airblader/xcb-util-xrm
cd xcb-util-xrm
git submodule update --init
./autogen.sh --prefix=/usr
make
Sudo make install
2番目のリンクの手順は2013年のものです。
1)configure.acにLT_INITを追加します
2)autogen.shに「rm-rf m4; git submoduleupdate--init」を実行させます
私の質問は、Zipファイルを git hub からダウンロードして抽出しただけの場合、ubuntu 16.04.1でこのライブラリを構築するにはどうすればよいですか?
これまでに行ったこととして、LT_INIT
をconfigure.ac
に追加しました。次に、次のコマンドを2回実行しました。1回はプレフィックスオプションあり、もう1回はプレフィックスオプションなしです。どちらの場合も、同じ結果になります。
$ ./autogen.sh --prefix=/usr
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy
autoreconf: running: /usr/bin/autoconf
autoreconf: configure.ac: not using Autoheader
autoreconf: running: automake --add-missing --copy --no-force
Makefile.am:35: error: 'pkgconfig_DATA' is used but 'pkgconfigdir' is undefined
Makefile.am:26: error: 'xcbinclude_HEADERS' is used but 'xcbincludedir' is undefined
autoreconf: automake failed with exit status: 1
私の次の調査はautogen.sh
を開くことでした(ファイルの内容はgitハブで見ることができます)。このファイルには2つの主要なコマンドが含まれており、最初のコマンドautoreconf -v --install || exit 1
は上記のエラースタック全体を返します。
私の問題は、エラーを解決する方法がわからないことです。
Makefile.am:35:エラー:「pkgconfig_DATA」は使用されていますが、「pkgconfigdir」は未定義です
Makefile.am
を開いたところ、35行目pkgconfig_DATA = xcb-xrm.pc
が見つかりました。そして、pkg-config
のデフォルトのパスを確認しましたが、今のところ、pkgconfigdir
をどこでどのように定義できるかわかりません。
$pkg-config --variable pc_path pkg-config
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
2016年の手順は、git clone
からでもアーカイブからでも、LT_INIT
を気にすることなく機能しました。フルリリースアーカイブ xcb-util-xrm-1.2.tar.gz をダウンロードする場合は、autogen.sh
を実行する必要はなく、代わりに./configure
を実行できます。ソースアーカイブのみをダウンロードした場合、m4
の内容はありません。
pkg-config
をインストールする必要があります(これにより、発生するMakefile.am
エラーが説明される場合があります)およびlibxcb-util0-dev
(そうでない場合は後でエラーが発生します)。