# License along with libatasmart. If not, If not, see
# <http://www.gnu.org/licenses/>.
-AC_PREREQ(2.57)
+AC_PREREQ(2.68)
+
+AC_INIT([libatasmart],
+ [0.19],
+ [mzyvongnfzneg (at) 0pointer (dot) net],
+ [libatasmart],
+ [http://git.0pointer.de/?p=libatasmart.git])
-AC_INIT([libatasmart], 0.13, [mzyvongnfzneg (at) 0pointer (dot) net])
AC_CONFIG_SRCDIR([atasmart.c])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR(m4)
+AC_CONFIG_AUX_DIR([build-aux])
-AM_INIT_AUTOMAKE([foreign 1.9 -Wall])
-
-AC_SUBST(PACKAGE_URL, [http://git.0pointer.de/?p=libatasmart.git])
+AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax no-dist-gzip dist-xz])
+AM_SILENT_RULES([yes])
-AC_SUBST(LIBATASMART_VERSION_INFO, [3:3:3])
-
-AC_CANONICAL_HOST
+AC_SUBST(LIBATASMART_VERSION_INFO, [4:4:0])
if type -p stow > /dev/null && test -d /usr/local/stow ; then
- AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
- ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
+ AC_MSG_NOTICE([*** Found /usr/local/stow: default install prefix set to /usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION} ***])
+ ac_default_prefix="/usr/local/stow/${PACKAGE_NAME}-${PACKAGE_VERSION}"
fi
-#### Checks for programs. ####
-
-# CC
-
AC_PROG_CC
+AC_PROG_CC_C99
AM_PROG_CC_C_O
AC_PROG_GCC_TRADITIONAL
-AC_GNU_SOURCE
-
-# C++
-
-AC_PROG_CXX
-
-# GCC flags
-
-test_gcc_flag() {
- AC_LANG_CONFTEST([int main(int argc, char*argv[]) {}])
- $CC -c conftest.c $CFLAGS "$1" -o conftest.o > /dev/null 2> /dev/null
- ret=$?
- rm -f conftest.o
- return $ret
-}
-
-# If using GCC specify some additional parameters
-if test "x$GCC" = "xyes" ; then
-
- # We use gnu99 instead of c99 because many have interpreted the standard
- # in a way that int64_t isn't defined on non-64 bit platforms.
- DESIRED_FLAGS="-std=gnu99 -Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math"
-
- for flag in $DESIRED_FLAGS ; do
- AC_MSG_CHECKING([whether $CC accepts $flag])
- if test_gcc_flag $flag ; then
- CFLAGS="$CFLAGS $flag"
- CXXFLAGS="$CXXFLAGS $flag"
- AC_MSG_RESULT([yes])
- else
- AC_MSG_RESULT([no])
- fi
- done
-fi
-
-#### libtool stuff ####
-
-AC_PROG_LIBTOOL
-
-#### Checks for header files. ####
-
-# ISO
-AC_HEADER_STDC
-
-# XPG4-UNIX
-AC_CHECK_HEADERS([sys/poll.h])
-
-# Other
-AC_CHECK_HEADERS([sys/ioctl.h])
-AC_CHECK_HEADERS([byteswap.h])
-
-#### Typdefs, structures, etc. ####
-
-AC_C_CONST
-AC_C_BIGENDIAN
-AC_TYPE_PID_T
-AC_TYPE_SIZE_T
-AC_CHECK_TYPES(ssize_t, , [AC_DEFINE([ssize_t], [signed long],
- [Define ssize_t if it is not done by the standard libs.])])
-AC_TYPE_OFF_T
-AC_TYPE_SIGNAL
-AC_TYPE_UID_T
-
-#### Large File-Support (LFS) ####
+AX_CC_FOR_BUILD
+AC_USE_SYSTEM_EXTENSIONS
AC_SYS_LARGEFILE
-PKG_CHECK_MODULES([LIBUDEV], [libudev])
-AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
-
-###################################
-# Output #
-###################################
+CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
+ -pipe \
+ -Wall \
+ -W \
+ -Wextra \
+ -Winline \
+ -Wvla \
+ -Wundef \
+ -Wformat=2 \
+ -Wlogical-op \
+ -Wsign-compare \
+ -Wformat-security \
+ -Wmissing-include-dirs \
+ -Wformat-nonliteral \
+ -Wold-style-definition \
+ -Wpointer-arith \
+ -Winit-self \
+ -Wdeclaration-after-statement \
+ -Wfloat-equal \
+ -Wmissing-prototypes \
+ -Wstrict-prototypes \
+ -Wredundant-decls \
+ -Wmissing-declarations \
+ -Wmissing-noreturn \
+ -Wshadow \
+ -Wendif-labels \
+ -Wcast-align \
+ -Wstrict-aliasing=2 \
+ -Wwrite-strings \
+ -Wno-long-long \
+ -Wno-overlength-strings \
+ -Wno-unused-parameter \
+ -Wno-missing-field-initializers \
+ -Wno-unused-result \
+ -Wunsafe-loop-optimizations \
+ -Wpacked \
+ -Werror=overflow \
+ -Wp,-D_FORTIFY_SOURCE=2 \
+ -ffast-math \
+ -fno-common \
+ -fdiagnostics-show-option \
+ -fno-strict-aliasing \
+ -ffunction-sections \
+ -fdata-sections])
+AC_SUBST([WARNINGFLAGS], $with_cflags)
+
+CC_CHECK_FLAGS_APPEND([with_ldflags], [LDFLAGS], [\
+ -Wl,--as-needed \
+ -Wl,--gc-sections])
+AC_SUBST([GCLDFLAGS], $with_ldflags)
+
+PKG_PROG_PKG_CONFIG
+PKG_CHECK_MODULES([LIBUDEV], [libudev >= 143])
+
+LT_PREREQ(2.2)
+LT_INIT([disable-static])
+
+dnl###################################
+dnl# Output #
+dnl###################################
AC_CONFIG_FILES([
Makefile
+strpool/Makefile
libatasmart.pc
])
AC_OUTPUT