From: Paolo Bonzini Date: Sun, 12 Jul 2009 09:28:57 +0000 (+0200) Subject: Move atlocal feature tests to configure X-Git-Tag: v2.64~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87a4d6ae61e2a44ed2a72dba8226752a571cb9d4;p=thirdparty%2Fautoconf.git Move atlocal feature tests to configure This test makes atlocal code use configure tests instead. This is best practice and could make diagnosing autoconf bugs easier. 2009-07-12 Paolo Bonzini * configure.ac: Test for unsupported characters in files and directories here... * tests/atlocal.in: ... and not here. --- diff --git a/ChangeLog b/ChangeLog index d2567106..2e5822de 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-07-12 Paolo Bonzini + + Move atlocal feature tests to configure + * configure.ac: Test for unsupported characters in files and + directories here... + * tests/atlocal.in: ... and not here. + 2009-07-09 Eric Blake Fix test typo. diff --git a/configure.ac b/configure.ac index a5fcad0a..d5659e2c 100644 --- a/configure.ac +++ b/configure.ac @@ -68,6 +68,37 @@ fi ]) AC_SUBST([ac_cv_sh_n_works]) +AC_MSG_CHECKING([for characters that cannot appear in file names]) +AC_CACHE_VAL( [ac_cv_unsupported_fs_chars], +[ac_cv_unsupported_fs_chars= +for c in '\\' '"' '<' '>' '*' '?' '|' +do + touch "conftest.t${c}t" 2>/dev/null + test -f "conftest.t${c}t" && rm -f "conftest.t${c}t" && continue + # $c cannot be used in a file name. + ac_cv_unsupported_fs_chars=$ac_cv_unsupported_fs_chars$c +done +]) +if test -n "$ac_cv_unsupported_fs_chars"; then + AC_MSG_RESULT([$ac_cv_unsupported_fs_chars]) +else + AC_MSG_RESULT([none]) +fi + +AC_SUBST([ac_cv_unsupported_fs_chars]) + +AC_CACHE_CHECK([whether directories can have trailing spaces], + [ac_cv_dir_trailing_space], +[rm -rf 'conftest.d ' && mkdir 'conftest.d ' && touch 'conftest.d /tfile' 2>/dev/null +status=$? +rm -rf 'conftest.d ' +case $status$? in #( + 00) ac_cv_dir_trailing_space=yes ;; #( + *) ac_cv_dir_trailing_space=no ;; +esac +]) +AC_SUBST([ac_cv_dir_trailing_space]) + # Initialize the test suite. AC_CONFIG_TESTDIR([tests]) AC_CONFIG_FILES([tests/Makefile tests/atlocal]) diff --git a/tests/atlocal.in b/tests/atlocal.in index ad72c374..adce2bf8 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -29,27 +29,16 @@ ac_cv_sh_n_works='@ac_cv_sh_n_works@' # Check whether the underlying system can manage some unusual # symbols in file names. -unsupported_fs_chars= -for c in '\\' '"' '<' '>' '*' '?' '|' -do - touch "t${c}t" 2>/dev/null - test -f "t${c}t" && rm -f "t${c}t" && continue - # $c cannot be used in a file name. - unsupported_fs_chars=$unsupported_fs_chars$c -done -if test -z "$unsupported_fs_chars"; then +if test -z '@ac_cv_unsupported_fs_chars@'; then func_sanitize_file_name () { echo "$@"; } else - func_sanitize_file_name () { echo "$@" | tr -d "$unsupported_fs_chars"; } + func_sanitize_file_name () { echo "$@" | tr -d '@ac_cv_unsupported_fs_chars@'; } fi # Can we create directories with trailing whitespaces in their name? -rm -rf 'tdir ' && mkdir 'tdir ' && touch 'tdir /tfile' 2>/dev/null -a=$? -rm -rf 'tdir ' -case $a$? in #( -00) - func_sanitize_dir_name () { echo "$@"; } ;; #( -*) - func_sanitize_dir_name () { echo "$@" | sed 's/ *$//'; } ;; -esac +ac_cv_dir_trailing_space='@ac_cv_dir_trailing_space@' +if test "$ac_cv_dir_trailing_space" = yes; then + func_sanitize_dir_name () { echo "$@"; } +else + func_sanitize_dir_name () { echo "$@" | sed 's/ *$//'; } +fi