diff --git a/Makefile.am b/Makefile.am index 64a159b5..b2040e57 100644 --- a/Makefile.am +++ b/Makefile.am @@ -125,7 +125,6 @@ noinst_HEADERS = \ os/os.h \ os/mingw.h \ os/unix.h \ - os/os.h \ os/portable.h mktest_SOURCES = \ @@ -173,7 +172,7 @@ LIST_TXT = doc/snapraid.txt doc/snapraid_log.txt $(patsubst %, doc/snapraid-%.tx LIST_XML = doc/snapraid.xml doc/snapraid_log.xml $(patsubst %, doc/snapraid-%.xml, $(LANG_CODES)) EXTRA_DIST = \ - autogen.sh autover.sh \ + autogen.sh autover.sh valgrind.supp \ README AUTHORS HISTORY INSTALL BLUEBOX TODO CHECK INSTALL.windows \ COPYING LICENSES/GPL-2.0 LICENSES/GPL-3.0 LICENSES/BSD-2-Clause \ $(LIST_D) \ @@ -1289,16 +1288,16 @@ lcov_html: # Rules for documentation if HAVE_ADVD2 %.1 : %.d - advd2 man < $(srcdir)/$< > $@ + advd2 man < $< > $@ %.txt : %.d - advd2 txt < $(srcdir)/$< | todos > $@ + advd2 txt < $< | todos > $@ %.html : %.d - advd2 html < $(srcdir)/$< > $@ + advd2 html < $< > $@ %.xml : %.d - advd2 xml < $(srcdir)/$< > $@ + advd2 xml < $< > $@ endif # Web distribution @@ -1319,13 +1318,13 @@ distwindows-x86: $(DISTWIN) rm -f $(PACKAGE)-$(VERSION)-windows-x86.zip mkdir tmp cp $(DISTWIN) tmp - cp support/smartctl.exe tmp/smartctl.exe - todos < snapraid.conf.example.windows > tmp/snapraid.conf.example - todos < README > tmp/readme.txt - todos < AUTHORS > tmp/authors.txt - todos < HISTORY > tmp/history.txt - todos < BLUEBOX > tmp/bluebox.txt - todos < LICENSES/GPL-3.0 > tmp/copying.txt + cp $(srcdir)/support/smartctl.exe tmp/smartctl.exe + todos < $(srcdir)/snapraid.conf.example.windows > tmp/snapraid.conf.example + todos < $(srcdir)/README > tmp/readme.txt + todos < $(srcdir)/AUTHORS > tmp/authors.txt + todos < $(srcdir)/HISTORY > tmp/history.txt + todos < $(srcdir)/BLUEBOX > tmp/bluebox.txt + todos < $(srcdir)/LICENSES/GPL-3.0 > tmp/copying.txt cd tmp && zip -r ../$(PACKAGE)-$(VERSION)-windows-x86.zip * rm -r tmp @@ -1333,12 +1332,12 @@ distwindows-x64: $(DISTWIN) rm -f $(PACKAGE)-$(VERSION)-windows-x64.zip mkdir tmp cp $(DISTWIN) tmp - cp support/smartctl.exe tmp/smartctl.exe - todos < snapraid.conf.example.windows > tmp/snapraid.conf.example - todos < README > tmp/readme.txt - todos < AUTHORS > tmp/authors.txt - todos < HISTORY > tmp/history.txt - todos < BLUEBOX > tmp/bluebox.txt - todos < LICENSES/GPL-3.0 > tmp/copying.txt + cp $(srcdir)/support/smartctl.exe tmp/smartctl.exe + todos < $(srcdir)/snapraid.conf.example.windows > tmp/snapraid.conf.example + todos < $(srcdir)/README > tmp/readme.txt + todos < $(srcdir)/AUTHORS > tmp/authors.txt + todos < $(srcdir)/HISTORY > tmp/history.txt + todos < $(srcdir)/BLUEBOX > tmp/bluebox.txt + todos < $(srcdir)/LICENSES/GPL-3.0 > tmp/copying.txt cd tmp && zip -r ../$(PACKAGE)-$(VERSION)-windows-x64.zip * rm -r tmp diff --git a/autover.sh b/autover.sh index 3cc563f6..0eca3f96 100755 --- a/autover.sh +++ b/autover.sh @@ -1,19 +1,21 @@ #!/bin/sh # -if [ -f .version ]; then +SRCDIR="${srcdir:-$(dirname "$0")}" + +if [ -f "$SRCDIR/.version" ]; then # Get version from the .version file - VERSION=$(cat .version) + VERSION=$(cat "$SRCDIR/.version") fi -if [ -z "$VERSION" ] && [ -d .git ]; then +if [ -z "$VERSION" ] && [ -e "$SRCDIR/.git" ]; then # Get version from git tags, removing the 'v' prefix - VERSION=$(git describe --match 'v*' 2>/dev/null | sed 's/^v//') + VERSION=$(git -C "$SRCDIR" describe --match 'v*' 2>/dev/null | sed 's/^v//') fi -if [ -z "$VERSION" ] && [ -d .git ]; then +if [ -z "$VERSION" ] && [ -e "$SRCDIR/.git" ]; then # Fall back to short commit hash - VERSION=0-$(git rev-parse --short HEAD 2>/dev/null) + VERSION=0-$(git -C "$SRCDIR" rev-parse --short HEAD 2>/dev/null) fi if [ -z "$VERSION" ]; then diff --git a/configure.ac b/configure.ac index b77a505a..d6943451 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ dnl Process this file with autoconf to produce a configure script. -AC_PREREQ([2.65]) +AC_PREREQ([2.70]) dnl Get version number from git m4_define([git_revision], m4_esyscmd_s([./autover.sh])) -AC_INIT([SnapRAID CLI], [git_revision], [], [snapraid], [https://www.snapraid.it]) +AC_INIT([SnapRAID CLI],[git_revision],[],[snapraid],[https://www.snapraid.it]) AC_CANONICAL_HOST AC_CANONICAL_BUILD AC_CANONICAL_TARGET @@ -57,7 +57,7 @@ AX_CHECK_COMPILE_FLAG([-fno-omit-frame-pointer], CFLAGS="$CFLAGS -fno-omit-frame # AX_CHECK_COMPILE_FLAG([-fno-inline-small-functions], CFLAGS="$CFLAGS -fno-inline-small-functions", []) # AX_CHECK_COMPILE_FLAG([-fno-optimize-sibling-calls], CFLAGS="$CFLAGS -fno-optimize-sibling-calls", []) AX_CHECK_COMPILE_FLAG([-rdynamic], CFLAGS="$CFLAGS -rdynamic", []) -# This the new default for gcc 10 +# This is the new default for gcc 10 AX_CHECK_COMPILE_FLAG([-fno-common], CFLAGS="$CFLAGS -fno-common", []) dnl Checks for system. @@ -68,9 +68,8 @@ AC_C_BIGENDIAN dnl Checks for header files. AC_HEADER_ASSERT -AC_HEADER_DIRENT AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS([stdint.h inttypes.h unistd.h math.h execinfo.h strings.h getopt.h syslog.h grp.h pwd.h io.h alloca.h]) +AC_CHECK_HEADERS([dirent.h stdint.h inttypes.h unistd.h math.h execinfo.h strings.h getopt.h syslog.h grp.h pwd.h io.h alloca.h]) AC_CHECK_HEADERS([sys/file.h sys/sysctl.h sys/ioctl.h sys/time.h sys/types.h sys/mkdev.h sys/sysmacros.h sys/stat.h sys/prctl.h sys/sysinfo.h sys/utsname.h]) AC_CHECK_HEADERS([linux/fs.h linux/btrfs.h linux/fiemap.h mach/mach_time.h]) @@ -95,13 +94,11 @@ AC_COMPILE_IFELSE([ ]) dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST AC_C_INLINE AC_C_RESTRICT AC_C_VOLATILE AC_TYPE_SIZE_T AC_TYPE_OFF_T -AC_TYPE_SIZE_T AC_TYPE_SSIZE_T AC_TYPE_UINT32_T AC_TYPE_UINT64_T @@ -183,7 +180,6 @@ AC_CHECK_MEMBERS([struct statfs.f_fstypename], [], [], [[ ]]) dnl Checks for libraries -have_pthreads=no AS_IF([test "x$is_windows" = "xyes"], [ AC_MSG_NOTICE([Windows native threads support enabled]) ], [ @@ -198,18 +194,16 @@ AS_IF([test "x$is_windows" = "xyes"], [ AC_MSG_WARN([Single-threaded version]) ]) ]) -AM_CONDITIONAL([HAVE_PTHREAD], [test "x$have_pthreads" = "xyes"]) - dnl Checks for compiler -AC_CHECK_CC_OPT([-Wall], CFLAGS="$CFLAGS -Wall", []) -AC_CHECK_CC_OPT([-Wextra], CFLAGS="$CFLAGS -Wextra", []) -AC_CHECK_CC_OPT([-Wuninitialized], CFLAGS="$CFLAGS -Wuninitialized", []) -AC_CHECK_CC_OPT([-Wshadow], CFLAGS="$CFLAGS -Wshadow", []) -AC_CHECK_CC_OPT([-Wshorten-64-to-32], CFLAGS="$CFLAGS -Wshorten-64-to-32", []) +AX_CHECK_COMPILE_FLAG([-Wall], CFLAGS="$CFLAGS -Wall", []) +AX_CHECK_COMPILE_FLAG([-Wextra], CFLAGS="$CFLAGS -Wextra", []) +AX_CHECK_COMPILE_FLAG([-Wuninitialized], CFLAGS="$CFLAGS -Wuninitialized", []) +AX_CHECK_COMPILE_FLAG([-Wshadow], CFLAGS="$CFLAGS -Wshadow", []) +AX_CHECK_COMPILE_FLAG([-Wshorten-64-to-32], CFLAGS="$CFLAGS -Wshorten-64-to-32", []) dnl Disable warning about zero-length-bounds raised by gcc 10 on linux kernel header on the fm_extents field -AC_CHECK_CC_OPT([-Wno-zero-length-bounds], CFLAGS="$CFLAGS -Wno-zero-length-bounds", []) +AX_CHECK_COMPILE_FLAG([-Wno-zero-length-bounds], CFLAGS="$CFLAGS -Wno-zero-length-bounds", []) dnl Checks for asm AC_ARG_ENABLE([asm], @@ -345,29 +339,29 @@ AC_ARG_ENABLE([debug], [AS_HELP_STRING([--enable-debug],[enable debugging])], [ CFLAGS="-Og -g -pthread -Wall -Wextra" - AC_CHECK_CC_OPT([-rdynamic], CFLAGS="$CFLAGS -rdynamic", []) + AX_CHECK_COMPILE_FLAG([-rdynamic], CFLAGS="$CFLAGS -rdynamic", []) ], []) AC_ARG_ENABLE([warning-as-error], [AS_HELP_STRING([--enable-warning-as-error],[stop build on warnings])], [ - AC_CHECK_CC_OPT([-Werror], CFLAGS="$CFLAGS -Werror", []) + AX_CHECK_COMPILE_FLAG([-Werror], CFLAGS="$CFLAGS -Werror", []) dnl This avoid the Darwin error: clang: error: argument unused during compilation: '-pthread' dnl See: https://llvm.org/bugs/show_bug.cgi?id=7798 - AC_CHECK_CC_OPT([-Wno-error=unused-command-line-argument], CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument", []) + AX_CHECK_COMPILE_FLAG([-Wno-error=unused-command-line-argument], CFLAGS="$CFLAGS -Wno-error=unused-command-line-argument", []) ], []) AC_ARG_ENABLE([warning], [AS_HELP_STRING([--enable-warning],[enable extra warning])], [ - AC_CHECK_CC_OPT([-Wpointer-arith], CFLAGS="$CFLAGS -Wpointer-arith", []) - AC_CHECK_CC_OPT([-Wcast-qual], CFLAGS="$CFLAGS -Wcast-qual", []) - AC_CHECK_CC_OPT([-Wunused], CFLAGS="$CFLAGS -Wunused", []) - AC_CHECK_CC_OPT([-Wunreachable-code], CFLAGS="$CFLAGS -Wunreachable-code", []) - AC_CHECK_CC_OPT([-Wpadded], CFLAGS="$CFLAGS -Wpadded", []) - AC_CHECK_CC_OPT([-Weverything], CFLAGS="$CFLAGS -Weverything", []) + AX_CHECK_COMPILE_FLAG([-Wpointer-arith], CFLAGS="$CFLAGS -Wpointer-arith", []) + AX_CHECK_COMPILE_FLAG([-Wcast-qual], CFLAGS="$CFLAGS -Wcast-qual", []) + AX_CHECK_COMPILE_FLAG([-Wunused], CFLAGS="$CFLAGS -Wunused", []) + AX_CHECK_COMPILE_FLAG([-Wunreachable-code], CFLAGS="$CFLAGS -Wunreachable-code", []) + AX_CHECK_COMPILE_FLAG([-Wpadded], CFLAGS="$CFLAGS -Wpadded", []) + AX_CHECK_COMPILE_FLAG([-Weverything], CFLAGS="$CFLAGS -Weverything", []) ], []) diff --git a/os/portable.h b/os/portable.h index f8074306..1dcd0963 100644 --- a/os/portable.h +++ b/os/portable.h @@ -180,19 +180,6 @@ #if HAVE_DIRENT_H #include -#define NAMLEN(dirent) strlen((dirent)->d_name) -#else -#define dirent direct -#define NAMLEN(dirent) (dirent)->d_namlen -#if HAVE_SYS_NDIR_H -#include -#endif -#if HAVE_SYS_DIR_H -#include -#endif -#if HAVE_NDIR_H -#include -#endif #endif #if HAVE_SYS_TYPES_H