]> git.ipfire.org Git - thirdparty/tar.git/blobdiff - configure.ac
tar: fix current_block confusion
[thirdparty/tar.git] / configure.ac
index 3bff70ed1d289ac95ca5aeb858bf778ba3ec2939..aba0d02f7677245ddb2ee758f826f39629175a03 100644 (file)
@@ -1,6 +1,6 @@
 # Configure template for GNU tar.  -*- autoconf -*-
 
-# Copyright 1991, 1994-2010, 2013 Free Software Foundation, Inc.
+# Copyright 1991, 1994-2010, 2013-2024 Free Software Foundation, Inc.
 
 # This file is part of GNU tar.
 
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
-AC_INIT([GNU tar], [1.27], [bug-tar@gnu.org])
+AC_INIT([GNU tar], [1.35], [bug-tar@gnu.org])
 AC_CONFIG_SRCDIR([src/tar.c])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
-AC_PREREQ([2.63])
-AM_INIT_AUTOMAKE([1.11 gnits tar-ustar dist-bzip2 dist-xz dist-shar std-options silent-rules])
+AC_PREREQ([2.71])
+AM_INIT_AUTOMAKE([1.15 gnits tar-ustar dist-bzip2 dist-xz std-options silent-rules])
 
 # Enable silent rules by default:
 AM_SILENT_RULES([yes])
@@ -32,10 +32,9 @@ AC_EXEEXT
 AC_PROG_RANLIB
 AC_PROG_YACC
 gl_EARLY
+AC_CHECK_TOOLS([AR], [ar])
 
 AC_SYS_LARGEFILE
-AC_ISC_POSIX
-AC_C_INLINE
 
 AC_CHECK_HEADERS_ONCE(fcntl.h linux/fd.h memory.h net/errno.h \
   sgtty.h string.h \
@@ -49,19 +48,18 @@ AC_CHECK_HEADERS([sys/buf.h], [], [],
 #include <sys/param.h>
 #endif])
 
-AC_HEADER_SYS_WAIT
-
-AC_HEADER_DIRENT
 AC_HEADER_MAJOR
-AC_HEADER_STAT
-AC_HEADER_STDC
 
 AC_MSG_CHECKING([for st_fstype string in struct stat])
 AC_CACHE_VAL(diff_cv_st_fstype_string,
-  [AC_TRY_COMPILE([#include <sys/types.h>
-#include <sys/stat.h>], [struct stat s; s.st_fstype[0] = 'x';],
-   diff_cv_st_fstype_string=yes,
-   diff_cv_st_fstype_string=no)])
+  [AC_COMPILE_IFELSE(
+     [AC_LANG_PROGRAM(
+        [[#include <sys/types.h>
+          #include <sys/stat.h>
+       ]],
+       [[struct stat s; s.st_fstype[0] = 'x';]])],
+     [diff_cv_st_fstype_string=yes],
+     [diff_cv_st_fstype_string=no])])
 AC_MSG_RESULT($diff_cv_st_fstype_string)
 if test $diff_cv_st_fstype_string = yes; then
   AC_DEFINE(HAVE_ST_FSTYPE_STRING, 1,
@@ -74,11 +72,13 @@ fi
 AC_ARG_WITH([posix-acls],
     AS_HELP_STRING([--without-posix-acls],
                    [do not use POSIX.1e access control lists]),
-    [with_posix_acls=no])
+    [],
+    [with_posix_acls=yes])
 if test "x$with_posix_acls" != "xno"; then
   AC_CHECK_HEADERS(sys/acl.h,, [with_posix_acls=no])
   for tar_acl_func in acl_get_file acl_get_fd acl_set_file acl_set_fd \
-                     acl_to_text acl_from_text; do \
+                     acl_to_text acl_from_text acl_delete_def_file \
+                     acl_free; do \
     test "x$with_posix_acls" = xno && break
     AC_SEARCH_LIBS([$tar_acl_func], [acl pacl], [], [with_posix_acls=no])
   done
@@ -90,11 +90,9 @@ else
   export enable_acl=no
 fi
 
-AC_TYPE_SIGNAL
 AC_TYPE_MODE_T
 AC_TYPE_PID_T
 AC_TYPE_OFF_T
-AC_TYPE_SIZE_T
 AC_TYPE_UID_T
 AC_CHECK_TYPE(major_t, , AC_DEFINE(major_t, int,
                                   [Type of major device numbers.]))
@@ -107,6 +105,32 @@ gt_TYPE_SSIZE_T
 
 # gnulib modules
 gl_INIT
+
+AC_DEFINE([GNULIB_EXCLUDE_SINGLE_THREAD], [1],
+  [Define if all programs in this package call functions of the Gnulib
+   'exclude' module only from a single thread.])
+AC_DEFINE([GNULIB_MBRTOWC_SINGLE_THREAD], [1],
+  [Define if all programs in this package call functions of the Gnulib
+   'mbtowc' module only from a single thread.])
+AC_DEFINE([GNULIB_REGEX_SINGLE_THREAD], [1],
+  [Define if all programs in this package call functions of the Gnulib
+   'regex' module only from a single thread.])
+AC_DEFINE([GNULIB_WCHAR_SINGLE_LOCALE], [1],
+  [Define if all programs in this package call locale-sensitive functions
+   like mbrtowc only after setting the locale, and never change the
+   locale once set.])
+
+if test $ac_cv_lib_error_at_line = no; then
+  # This means that the error() function is not present in libc, so
+  # the one from gnulib will be used instead. This function precedes
+  # error messages it prints with the program name as returned by getprogname()
+  # call, instead of using the name set by set_program_name.
+  # Install workaround.
+  AC_DEFINE([ENABLE_ERROR_PRINT_PROGNAME],[1],
+            [Enable the use of error_print_progname to print program name with error messages.
+            See comment to function tar_print_progname in src/tar.c])
+fi
+
 # paxutils modules
 tar_PAXUTILS
 
@@ -138,7 +162,7 @@ AC_ARG_ENABLE([gcc-warnings],
    gl_gcc_warnings=$enableval],
   [gl_gcc_warnings=no
    if test -d "$srcdir"/.git; then
-     gl_GCC_VERSION_IFELSE([4], [6], [gl_gcc_warnings=yes])
+     gl_GCC_VERSION_IFELSE([11], [2], [gl_gcc_warnings=yes])
    fi]
 )
 
@@ -155,6 +179,8 @@ if test "$gl_gcc_warnings" = yes; then
   nw="$nw -Winline"                 # It's OK to not inline.
   nw="$nw -Wstrict-overflow"       # It's OK to optimize strictly.
   nw="$nw -Wsuggest-attribute=pure" # Too many warnings for now.
+  nw="$nw -Wsystem-headers"         # Don't let system headers trigger warnings
+  nw="$nw -Wstack-protector"
 
   gl_MANYWARN_ALL_GCC([ws])
   gl_MANYWARN_COMPLEMENT([ws], [$ws], [$nw])
@@ -163,12 +189,12 @@ if test "$gl_gcc_warnings" = yes; then
   done
   gl_WARN_ADD([-Wno-sign-compare])     # Too many warnings for now
   gl_WARN_ADD([-Wno-type-limits])      # It's OK to optimize based on types.
-  gl_WARN_ADD([-Wno-unused-parameter]) # Too many warnings for now
   gl_WARN_ADD([-Wno-format-nonliteral])
 
   gl_WARN_ADD([-fdiagnostics-show-option])
   gl_WARN_ADD([-funit-at-a-time])
 
+
   AC_SUBST([WARN_CFLAGS])
 
   AC_DEFINE([lint], [1], [Define to 1 if the compiler is checking for lint.])
@@ -253,6 +279,7 @@ TAR_COMPR_PROGRAM(lzip)
 TAR_COMPR_PROGRAM(lzma)
 TAR_COMPR_PROGRAM(lzop)
 TAR_COMPR_PROGRAM(xz)
+TAR_COMPR_PROGRAM(zstd)
 
 AC_MSG_CHECKING(for default archive format)
 
@@ -346,7 +373,7 @@ AC_CHECK_TYPE(iconv_t,:,
 
 # Gettext.
 AM_GNU_GETTEXT([external], [need-formatstring-macros])
-AM_GNU_GETTEXT_VERSION([0.16])
+AM_GNU_GETTEXT_VERSION([0.21])
 
 # Initialize the test suite.
 AC_CONFIG_TESTDIR(tests)
@@ -356,8 +383,8 @@ AM_MISSING_PROG([AUTOM4TE], [autom4te])
 AC_SUBST(BACKUP_LIBEXEC_SCRIPTS)
 AC_SUBST(BACKUP_SBIN_SCRIPTS)
 AC_ARG_ENABLE(backup-scripts,
-             AC_HELP_STRING([--enable-backup-scripts],
-                             [Create and install backup and restore scripts]),
+             AS_HELP_STRING([--enable-backup-scripts],
+                            [Create and install backup and restore scripts]),
               [case $enableval in
               yes) BACKUP_LIBEXEC_SCRIPTS='$(BACKUP_LIBEXEC_SCRIPTS_LIST)'
                     BACKUP_SBIN_SCRIPTS='$(BACKUP_SBIN_SCRIPTS_LIST)'
@@ -371,7 +398,7 @@ else
        BACKUP_SED_COND='/^\#IF_DATE_FORMAT_OK/,/^\#ELSE_DATE_FORMAT_OK/d;/^\#ENDIF_DATE_FORMAT_OK/d'
 fi
 
-AC_OUTPUT([Makefile\
+AC_CONFIG_FILES([Makefile\
            doc/Makefile\
           gnu/Makefile\
            lib/Makefile\
@@ -379,3 +406,4 @@ AC_OUTPUT([Makefile\
            scripts/Makefile\
            rmt/Makefile\
            src/Makefile])
+AC_OUTPUT