web-dev-qa-db-ja.com

automakeがINSTALLを上書きしないようにするにはどうすればよいですか?

カスタムINSTALLファイルを持つプロジェクトに取り組んでいます。 automake --add-missing(より正確にはautoreconf -i)を実行すると、GNUのデフォルトのINSTALLファイルが生成され、ファイルが上書きされます。

この動作を防ぐにはどうすればよいですか? GNU INSTALLファイルをまったく生成しないか、別の名前で作成する必要があります。

また、automakeが生成する可能性のある他のファイルを無効にしたくありません。


編集1:automakeマニュアル から:

--add-missingオプションが指定されている場合、automakeは、INSTALLファイルの汎用バージョンと、GNU General Public License […]の現在のバージョンのテキストを含むCOPYINGファイルを追加します。ただし、既存のCOPYINGファイルがautomakeによって上書きされることはありません。

既存のCOPYINGファイルは上書きされないと書かれていますが、INSTALLファイルについては何も述べていないため、無条件に上書きされるようです。

編集2:要求に応じて、ここに私のconfigure.acMakefile.am、およびautogen.shを実行します。 autoreconfプロジェクト:

configure.ac

AC_INIT([program name], [version number], [bug report], [short name], [url])
AC_CONFIG_SRCDIR([Main/Source/main.cpp])

AM_PROG_AS 
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AC_PROG_CC
AC_PROG_CXX

CFLAGS="$CFLAGS $SDL_CFLAGS "
LIBS="$LIBS $SDL_LIBS"
CPPFLAGS="$SDL_CFLAGS -DLINUX
          -DLOCAL_STATE_DIR=\\\"$sharedstatedir/<program name>\\\"
          -DDATADIR=\\\"$datadir\\\" -DUSE_SDL -DGCC"

AC_PROG_INSTALL
AC_PROG_RANLIB
AC_CONFIG_FILES(<list of Makefiles in subdirs>)
AC_OUTPUT

Makefile.am

SUBDIRS = FooLib Main Bar Baz
EXTRA_DIST = LICENSING <and a bunch of unrelated files>

autogen.sh

autoreconf -f -i
6
zenith

問題の原因は、-f、つまりautoreconfへの--forceタグでした。

そのmanページには、「すべてのファイルが廃止されたと見なす」と記載されていますが、これは少しあいまいなので、最初は問題に関連付けることができませんでした。 そのhtml手動入力 はさらに誤解を招く可能性があります:

入力ファイル(configure.acおよび存在する場合はaclocal.m4)よりも新しいconfigureスクリプトおよび構成ヘッダーも再作成します。

構成スクリプトについてのみ説明しますが、実際には、標準のGNUファイルも処理します。

そして結局のところautoreconf -fは実際にautomake --force-missingを呼び出します。これには、「標準ファイルの強制更新」というより明確な説明があります。 そのhtml手動エントリ それをさらに明確にします:

--add-missingと一緒に使用すると、標準ファイルがソースツリーにすでに存在している場合でも再インストールされます。 […]

autoreconf呼び出しから-fタグを削除すると、これが解決されました。

結論:autoreconfで作業している人々は手動エントリを書くことができません。 automakeで作業している人はできます。

4
zenith

AM_INIT_AUTOMAKEconfigure.acforeignオプションを追加します。これにより、autotoolsにGNUコーディング標準に準拠していないことが通知され、Automakeは通常のGNU AUTHORS、COPYING、INSTALLを含むプロジェクトテキストファイルを作成しません。 、NEWS、README、およびChangeLogファイル。これらのファイルの自動作成は実際にはかなり役に立ちません。いつでも自分で作成できます。

5
Faheem Mitha