0

私はautotoolの使用の初心者ですが、Makefile.amにシェルスクリプトを追加したいのですが、以下の方法を使用すると、autotoolによって作成されたMakefileが予期されていません。正しいものを作成するためにどのように書くことができますか。お返事をありがとうございます!

PS:これは私のconfigure.inとMakefile.am(parts)です

configure.in:

if test "$sample" = yes;then
    DEFS="$DEFS -DSAMPLE=1"
    AC_SUBST(SAMPLE, [yes])
fi

Makefile.am:

if test "$SAMPLE" = yes;then
    noinst_PROGRAMS = test
    test_SOURCES = test.c
else
    bin_PROGRAMS = release
    release_SOURCES = main.c
fi

Makefile autotoolが作成されました:

 ........
 ........
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 clean-libLTLIBRARIES clean-libtool clean-noinstPROGRAMS ctags \
 distclean distclean-compile distclean-generic \
 distclean-libtool distclean-tags distdir dvi dvi-am html \
 html-am info info-am install install-am install-data \
 install-data-am install-dvi install-dvi-am install-exec \
 install-exec-am install-html install-html-am \
 install-includeHEADERS install-info install-info-am \
 install-libLTLIBRARIES install-man install-pdf install-pdf-am \
 install-ps install-ps-am install-strip installcheck \
 installcheck-am installdirs maintainer-clean \
 maintainer-clean-generic mostlyclean mostlyclean-compile \
 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 tags uninstall uninstall-am uninstall-includeHEADERS \
 uninstall-libLTLIBRARIES

if test "yes" = yes;then
fi
4

1 に答える 1

1

Automake条件文はそのようには機能しません。マニュアルを参照してください。

外観は次のとおりです。

configure.ac:

AM_CONDITIONAL([SAMPLE], [test "$SAMPLE" = yes])

Makefile.am:

if SAMPLE
noinst_PROGRAMS = test
test_SOURCES = test.c
else
bin_PROGRAMS = release
release_SOURCES = main.c
endif
于 2012-04-29T07:58:37.830 に答える