autotools勉強中 データとヘッダのインストール
実現したいこと
- fat.hなどを$(MONADIR)/fat_write/にインストール。
- fat_template.imgを$(PREFIX)/share/fat_write/にインストール
ついでにMONADIRはなくてもデフォルト値をセットするようにしよう。
acinclude.m4
MONADIRがない場合はWARNをだしてデフォルト値をセットする。
AC_DEFUN([AM_CHECK_MONADIR], [dnl # dnl # Check env MONADIR exists? dnl # AC_MSG_CHECKING([MONADIR...]) if test "$MONADIR" != "" ; then AC_MSG_RESULT(yes $MONADIR) else MONADIR="/usr/local/mona" export MONADIR AC_MSG_WARN(MONADIR not found. use default $MONADIR) fi])
configure.ac
AC_SUBST(MONADIR)とすることでMakefile.amから@MONADIR@で参照することができます。
AM_CHECK_MONADIR AC_SUBST(MONADIR)
Makefile.am
bin_PROGRAMS = fat_write fat_write_CXXFLAGS = -g fat_write_SOURCES = VirtualFloppy.cpp VirtualFloppy.h fat.cpp fat.h file.h main.cpp types.h fat_write_datadir = $(datadir)/fat_write fat_write_data_DATA = fat_template.img mona_includedir = @MONADIR@/include mona_include_HEADERS = fat.cpp VirtualFloppy.h fat.h file.h types.h
_HEADERS変数を利用してヘッダをインストールするように指示します。
同様に_DATA変数を利用してインストールを指示します。
このあたりもっときれいに書けそうな気がするんだけれども。
実際に./configure
./configure 略 checking for mkdir... yes checking MONADIR...... configure: WARNING: MONADIR not found. use default /usr/local/mona make 略 sudo make install make[1]: Entering directory `/home/higepon/fat_write' test -z "/usr/local/bin" || mkdir -p -- "/usr/local/bin" /usr/bin/install -c 'fat_write' '/usr/local/bin/fat_write' test -z "/usr/local/share/fat_write" || mkdir -p -- "/usr/local/share/fat_write" /usr/bin/install -c -m 644 'fat_template.img' '/usr/local/share/fat_write/fat_template.img' test -z "/usr/local/mona/include" || mkdir -p -- "/usr/local/mona/include" /usr/bin/install -c -m 644 'fat.cpp' '/usr/local/mona/include/fat.cpp' /usr/bin/install -c -m 644 'VirtualFloppy.h' '/usr/local/mona/include/VirtualFloppy.h' /usr/bin/install -c -m 644 'fat.h' '/usr/local/mona/include/fat.h' /usr/bin/install -c -m 644 'file.h' '/usr/local/mona/include/file.h' /usr/bin/install -c -m 644 'types.h' '/usr/local/mona/include/types.h' make[1]: Leaving directory `/home/higepon/fat_write'
うまくいきました。
もっときれいに書けるよとか、間違っているよとかご意見求む。
追記
fat_write_datadir = $(datadir)/fat_write
は
fat_write_datadir = $(pkgdatadir)
の方がよさげ。

- 作者: Gary V. Vaughan,Tom Tromey,Ben Elliston,Ian Lance Taylor,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2001/03/01
- メディア: 単行本
- 購入: 1人 クリック: 26回
- この商品を含むブログ (17件) を見る