]> git.proxmox.com Git - mirror_smartmontools-debian.git/blobdiff - INSTALL
New upstream version 6.6
[mirror_smartmontools-debian.git] / INSTALL
diff --git a/INSTALL b/INSTALL
index 7af41e33a91a5e260d9f9227419f94096159213a..fcffe649b81983d3980fc9430fefd39699c787e4 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -1,10 +1,10 @@
 Smartmontools installation instructions
 =======================================
 
 Smartmontools installation instructions
 =======================================
 
-$Id: INSTALL 2925 2009-10-02 20:45:54Z chrfranke $
+$Id: INSTALL 4574 2017-10-29 15:41:13Z chrfranke $
 
 Please also see the smartmontools home page:
 
 Please also see the smartmontools home page:
-http://smartmontools.sourceforge.net/
+http://www.smartmontools.org/
 
 Table of contents:
 
 
 Table of contents:
 
@@ -32,54 +32,6 @@ Table of contents:
     kernel version greater than or equal to 2.2.14. So any recent
     Linux distribution should support smartmontools.
 
     kernel version greater than or equal to 2.2.14. So any recent
     Linux distribution should support smartmontools.
 
-    There are two parts of smartmontools that may require a patched or
-    nonstandard kernel:
-
-    (1) To get the ATA RETURN SMART STATUS command, the kernel needs
-    to support the HDIO_DRIVE_TASK ioctl().
-
-    (2) To run Selective Self-tests, the kernel needs to support the
-    HDIO_DRIVE_TASKFILE ioctl().
-
-    If your kernel does not support one or both of these ioctls, then
-    smartmontools will "mostly" work.  The things that don't work will
-    give you harmless warning messages.
-
-    Although "not officially supported" by the developers, smartmontools
-    has also been successfully build and run on a legacy Linux system
-    with kernel 2.0.33 and libc.so.5. On such systems, the restrictions
-    above apply.
-
-    For item (1) above, any 2.4 or 2.6 series kernel will provide
-    HDIO_DRIVE_TASK support.  Some 2.2.20 and later kernels also
-    provide this support IF they're properly patched and
-    configured. [Andre Hedrick's IDE patches may be found at
-    http://www.funet.fi/pub/linux/kernel/people/hedrick/ide-2.2.20/ or
-    are available from your local kernel.org mirror.  They are not
-    updated for 2.2.21 or later, and may contain a few bugs.].
-    If the configuration option CONFIG_IDE_TASK_IOCTL
-    exists in your 2.2.X kernel source code tree, then your 2.2.X
-    kernel will probably support this ioctl. [Note that this kernel
-    configuration option does NOT need to be enabled. Its presence
-    merely indicates that the required HDIO_DRIVE_TASK ioctl() is
-    supported.]
-
-    For item (2) above, your kernel must be configured with the kernel
-    configuration option CONFIG_IDE_TASKFILE_IO enabled.  This
-    configuration option is present in all 2.4 and 2.6 series
-    kernels. Some 2.2.20 and later kernels also provide this support
-    IF they're properly patched and configured as described above.
-
-    Please see FAQ section of the URL above for additional details.
-
-    If you are using 3ware controllers, for full functionality you
-    must either use version 1.02.00.037 or greater of the 3w-xxxx
-    driver, or patch earlier 3ware 3w-xxxx drivers.  See
-    http://smartmontools.sourceforge.net/3w-xxxx.txt
-    for the patch.  The version 1.02.00.037 3w-xxxx.c driver was
-    incorporated into kernel 2.4.23-bk2 on 3 December 2003 and into
-    kernel 2.6.0-test5-bk11 on 23 September 2003.
-
     B) FreeBSD
 
     For FreeBSD support, a 5-current kernel that includes ATAng is
     B) FreeBSD
 
     For FreeBSD support, a 5-current kernel that includes ATAng is
@@ -102,11 +54,8 @@ Table of contents:
 
     E) Cygwin
 
 
     E) Cygwin
 
-    The code was tested on Cygwin 1.5.7, 1.5.11 and 1.5.18-22. It should
-    also work on other recent releases.
-
-    Release 1.5.15 or later is recommended for Cygwin smartd. Older versions
-    do not provide syslogd support.
+    The code was tested on Cygwin 2.9.0-3 x86 and x86_64. It should also
+    work on other recent releases.
 
     Both Cygwin and Windows versions of smartmontools share the same code
     to access the IDE/ATA or SCSI devices. The information in the "Windows"
 
     Both Cygwin and Windows versions of smartmontools share the same code
     to access the IDE/ATA or SCSI devices. The information in the "Windows"
@@ -114,51 +63,19 @@ Table of contents:
 
     F) Windows
 
 
     F) Windows
 
-    The code was tested on Windows 98SE, NT4(SP5,SP6), 2000(SP4),
-    XP(no SP,SP1a,SP2) and Vista RC 1. It should also work on Windows
-    95(OSR2), 98, ME and 2003.
-
-    On 9x/ME, only standard (legacy) IDE/ATA devices 0-3 are supported.
-    The driver SMARTVSD.VXD must be present in WINDOWS\SYSTEM\IOSUBSYS
-    to get loaded at Windows startup. The default location in a new
-    installation of some versions of Windows is the WINDOWS\SYSTEM folder.
-    In this case, move SMARTVSD.VXD to WINDOWS\SYSTEM\IOSUBSYS and reboot
-    (http://support.microsoft.com/kb/265854/en-us).
-    SMARTVSD.VXD may also be missing in a new installation
-    (http://support.microsoft.com/kb/199886/en-us).
-
-    SMARTVSD.VXD relies on the standard IDE port driver ESDI_506.PDR.
-    If the system uses a vendor specific driver, access of SMART data
-    is not possible on 9x/ME. This is the case if e.g. the optional
-    "IDE miniport driver" is installed on a system with VIA chipset.
-
-    Some ATA controllers (e.g. Promise) provided a custom SMARTVSD.VXD
-    for their Win9x/ME driver. To access SMART data from both the legacy
-    (/dev/h[a-d]) and this additional (/dev/hd[e-h]) controller, rename
-    this file to SMARTVSE.VXD. Open the file with a hex editor and replace
-    all occurrences of the string "SMARTVSD" with "SMARTVSE". Then reinstall
-    the original Windows SMARTVSD.VXD.
-
-    On NT4/2000/XP/2003, ATA or SATA devices are supported if the device
-    driver implements the SMART IOCTL.
-
-    The IDE/ATA read log command (smartctl -l, --log, -a, --all) is
-    not supported by the SMART IOCTL of NT4/2000/XP. Undocumented
-    and possibly buggy system calls are used for this purpose,
-    see WARNINGS file for details.
-
-    SCSI devices are supported on all versions of Windows. An installed
-    ASPI interface (WNASPI32.DLL) is required to access SCSI devices.
-    The code was tested with Adaptec Windows ASPI drivers 4.71.2.
-    (http://www.adaptec.com/en-US/support/scsi_soft/ASPI/ASPI-4.70/)
-    Links to other ASPI drivers can be found at http://www.nu2.nu/aspi/.
-
-    3ware 9000 RAID controllers are supported using new features available
-    in the Windows driver release 9.4.0 (3wareDrv.sys 3.0.2.70) or later.
-    Older drivers provide SMART access to the first physical drive (port)
-    of each logical drive (unit). If driver support is not available
-    (7000/8000 series, 9000 on XP 64), smartctl can be used to parse SMART
-    data output from CLI or 3DM.
+    The code was tested on Windows XP SP3, 2003, Vista, Windows 7, 8, 8.1
+    and Windows 10 up to 1709.  Support von Windows 9x/ME and NT4 was
+    removed after smartmontools 5.43.
+
+    ATA or SATA devices are supported if the device driver implements
+    the SMART IOCTLs or IOCTL_IDE_PASS_THROUGH or IOCTL_ATA_PASS_THROUGH.
+    Only the latter provides full pass-through support which is needed
+    for all smartmontools features.
+
+    SATA devices behind a Intel RST driver are accessed through CSMI.
+
+    SCSI and USB devices are accessed through SPTI. Special driver support
+    is not required.
 
     G) MacOS/Darwin
 
 
     G) MacOS/Darwin
 
@@ -202,29 +119,34 @@ Table of contents:
     hard drive comes with the offline test switched on by default, so
     even that works.
 
     hard drive comes with the offline test switched on by default, so
     even that works.
 
+    The OS X SAT SMART Driver provides access to SMART data for SAT capable
+    USB and Firewire devices:
+    https://github.com/kasbert/OS-X-SAT-SMART-Driver
+    https://github.com/RJVB/OS-X-SAT-SMART-Driver
+    This does not require any smartctl -d TYPE option and should work also
+    with older smartmontools releases.
+
     H) OS/2, eComStation
 
     The code was tested on eComStation 1.1, but it should work on all versions
     of OS/2.
     Innotek LibC 0.5 runtime is required.
     H) OS/2, eComStation
 
     The code was tested on eComStation 1.1, but it should work on all versions
     of OS/2.
     Innotek LibC 0.5 runtime is required.
-    Currently only ATA disks are supported, SCSI support will be added.
+    Only ATA disks are supported.
 
 [2] Installing from SVN
 =======================
 
     Get the sources from the SVN repository:
 
 [2] Installing from SVN
 =======================
 
     Get the sources from the SVN repository:
-    svn co https://smartmontools.svn.sourceforge.net/svnroot/smartmontools/trunk/smartmontools smartmontools
+    svn co http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools smartmontools
 
     Then type:
     ./autogen.sh
     and continue with step [3] below, skipping the "unpack the tarball" step.
 
     The autogen.sh command is ONLY required when installing from
 
     Then type:
     ./autogen.sh
     and continue with step [3] below, skipping the "unpack the tarball" step.
 
     The autogen.sh command is ONLY required when installing from
-    SVN. You need GNU Autoconf (version 2.50 or greater), GNU Automake
-    (version 1.7 or greater) and their dependencies installed in order
-    to run it.  You can get these here:
-    http://www.gnu.org/directory/GNU/autoconf.html
-    http://www.gnu.org/directory/GNU/automake.html
+    SVN. You need GNU Autoconf (version 2.60 or greater), GNU Automake
+    (version 1.10 or greater) and their dependencies installed in order
+    to run it.
 
 [3] Installing from the source tarball
 ======================================
 
 [3] Installing from the source tarball
 ======================================
@@ -238,14 +160,38 @@ Table of contents:
     make install (you may need to be root to do this)
 
     As shown (with no options to ./configure) this defaults to the
     make install (you may need to be root to do this)
 
     As shown (with no options to ./configure) this defaults to the
-    following set of installation directories:   
+    following set of installation directories and other settings:
+
     --prefix=/usr/local
     --prefix=/usr/local
-    --sbindir=/usr/local/sbin
-    --sysconfdir=/usr/local/etc
-    --mandir=/usr/local/share/man
-    --with-docdir=/usr/local/share/doc/smartmontools-VERSION
-    --with-initscriptdir=/usr/local/etc/rc.d/init.d
+    --exec-prefix='${prefix}'
+    --sbindir='${exec_prefix}/sbin'
+    --sysconfdir='${prefix}/etc'
+    --localstatedir='${prefix}/var'
+    --datarootdir='${prefix}/share'
+    --datadir='${datarootdir}'
+    --mandir='${datarootdir}/man'
+    --docdir='${datarootdir}/doc/smartmontools'
     --disable-sample
     --disable-sample
+    --with-systemdsystemunitdir=auto
+    --with-systemdenvfile=auto
+    --with-initscriptdir=auto
+    --with-exampledir='${docdir}/examplescripts'
+    --with-drivedbdir='${datadir}/smartmontools'
+    --with-update-smart-drivedb
+    --with-gnupg
+    --with-smartdscriptdir='${sysconfdir}'
+    --with-smartdplugindir='${smartdscriptdir}/smartd_warning.d'
+    --with-scriptpath='/bin:/usr/bin'
+    --without-savestates
+    --without-attributelog
+    --with-os-deps='os_linux.o dev_areca.o' (platform specific)
+    --without-selinux
+    --with-libcap-ng=auto
+    --without-nvme-devicescan
+    --without-solaris-sparc-ata (Solaris SPARC only)
+    --with-working-snprintf (Windows: guessed)
+    --with-mingw-aslr=auto (Windows only)
+    --with-cxx11-option=auto
 
     These will usually not overwrite existing "distribution" installations on
     Linux Systems since the FHS reserves this area for use by the system
 
     These will usually not overwrite existing "distribution" installations on
     Linux Systems since the FHS reserves this area for use by the system
@@ -254,10 +200,8 @@ Table of contents:
     For different installation locations or distributions, simply add
     arguments to ./configure as shown in [4] below.
 
     For different installation locations or distributions, simply add
     arguments to ./configure as shown in [4] below.
 
-    If you wish to alter the default C compiler flags, set an
-    environment variable CFLAGS='your options' before doing
-    ./configure, or else do:
-    make CFLAGS='your options'
+    If you wish to alter the default C++ compiler flags, add
+    CXXFLAGS='your options' to ./configure command.
 
     The first output line of smartctl and smartd provides information
     about release number, last SVN checkin date and revison, platform,
 
     The first output line of smartctl and smartd provides information
     about release number, last SVN checkin date and revison, platform,
@@ -269,7 +213,7 @@ Table of contents:
 ================================================
 
 Note: Please send corrections/additions to:
 ================================================
 
 Note: Please send corrections/additions to:
-smartmontools-support@lists.sourceforge.net
+smartmontools-support@listi.jpberlin.de
 
 Debian:
   If you don't want to overwrite any distribution package, use:
 
 Debian:
   If you don't want to overwrite any distribution package, use:
@@ -279,15 +223,15 @@ Filesystem Hierarchy Standard (FHS, http://www.pathname.com/fhs/):
   ./configure --sbindir=/usr/local/sbin                               \
               --sysconfdir=/usr/local/etc                             \
               --mandir=/usr/local/man                                 \
   ./configure --sbindir=/usr/local/sbin                               \
               --sysconfdir=/usr/local/etc                             \
               --mandir=/usr/local/man                                 \
-              --with-initscriptdir=/usr/local/etc/rc.d/init.d         \
-              --with-docdir=/usr/local/share/doc/smartmontools-VERSION
+              --docdir=/usr/local/share/doc/smartmontools             \
+              --with-initscriptdir=/usr/local/etc/init.d
 
 Red Hat:
   ./configure --sbindir=/usr/sbin                               \
 
 Red Hat:
   ./configure --sbindir=/usr/sbin                               \
-             --sysconfdir=/etc                                 \
-             --mandir=/usr/share/man                           \
-             --with-initscriptdir=/etc/rc.d/init.d             \
-             --with-docdir=/usr/share/doc/smartmontools-VERSION
+              --sysconfdir=/etc                                 \
+              --mandir=/usr/share/man                           \
+              --docdir=/usr/share/doc/smartmontools             \
+              --with-initscriptdir=/etc/rc.d/init.d
 
 Slackware:
   If you don't want to overwrite any "distribution" package, use:
 
 Slackware:
   If you don't want to overwrite any "distribution" package, use:
@@ -297,8 +241,8 @@ Slackware:
   ./configure --sbindir=/usr/sbin                               \
               --sysconfdir=/etc                                 \
               --mandir=/usr/share/man                           \
   ./configure --sbindir=/usr/sbin                               \
               --sysconfdir=/etc                                 \
               --mandir=/usr/share/man                           \
-              --with-initscriptdir=/etc/rc.d                    \
-              --with-docdir=/usr/share/doc/smartmontools-VERSION
+              --docdir=/usr/share/doc/smartmontools             \
+              --with-initscriptdir=/etc/rc.d
 
   And
   removepkg smartmontools smartsuite (only root can do this)
 
   And
   removepkg smartmontools smartsuite (only root can do this)
@@ -321,8 +265,8 @@ SuSE:
   ./configure --sbindir=/usr/sbin                                        \
               --sysconfdir=/etc                                          \
               --mandir=/usr/share/man                                    \
   ./configure --sbindir=/usr/sbin                                        \
               --sysconfdir=/etc                                          \
               --mandir=/usr/share/man                                    \
+              --docdir=/usr/share/doc/packages/smartmontools-VERSION     \
               --with-initscriptdir=/etc/init.d                           \
               --with-initscriptdir=/etc/init.d                           \
-              --with-docdir=/usr/share/doc/packages/smartmontools-VERSION
 
 [5] Guidelines for FreeBSD
 ==========================
 
 [5] Guidelines for FreeBSD
 ==========================
@@ -330,15 +274,15 @@ SuSE:
   the following:
 
   ./configure --prefix=/usr/local                                      \
   the following:
 
   ./configure --prefix=/usr/local                                      \
+              --docdir=/usr/local/share/doc/smartmontools-VERSION      \
               --with-initscriptdir=/usr/local/etc/rc.d/                \
               --with-initscriptdir=/usr/local/etc/rc.d/                \
-              --with-docdir=/usr/local/share/doc/smartmontools-VERSION \
-             --enable-sample
+              --enable-sample
 
   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
   be installed with the string '.sample' append to the name, so you will end
   up with the following:
 
   NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
   be installed with the string '.sample' append to the name, so you will end
   up with the following:
-       /usr/local/etc/smartd.conf.sample
-       /usr/local/etc/rc.d/smartd.sample
+        /usr/local/etc/smartd.conf.sample
+        /usr/local/etc/rc.d/smartd.sample
 
 
 [6] Guidelines for Darwin
 
 
 [6] Guidelines for Darwin
@@ -350,16 +294,12 @@ SuSE:
 
   CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
     ./configure --host=i386-apple-darwin \
 
   CXX='g++ -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386' \
     ./configure --host=i386-apple-darwin \
-               --with-initscriptdir=/Library/StartupItems
+                --with-initscriptdir=/Library/StartupItems
 
 
-[7] Guidelines for NetBSD/OpenBSD
-=================================
+[7] Guidelines for NetBSD
+=========================
   ./configure --prefix=/usr/pkg                                       \
   ./configure --prefix=/usr/pkg                                       \
-             --with-docdir=/usr/pkg/share/doc/smartmontools
-
-  On OpenBSD, it is important that you use GNU make (gmake from 
-  /usr/ports/devel/gmake) to build smartmontools, as the BSD make doesn't
-  know how to make the manpages.
+              --docdir=/usr/pkg/share/doc/smartmontools
 
 [8] Guidelines for Solaris
 ==========================
 
 [8] Guidelines for Solaris
 ==========================
@@ -383,15 +323,15 @@ SuSE:
      --sbindir=/usr/sbin                                \
      --sysconfdir=/etc                                  \
      --mandir=/usr/share/man                            \
      --sbindir=/usr/sbin                                \
      --sysconfdir=/etc                                  \
      --mandir=/usr/share/man                            \
-     --with-docdir=/usr/share/doc/smartmontools-VERSION \
+     --docdir=/usr/share/doc/smartmontools-VERSION      \
      --with-initscriptdir=/etc/init.d
 
     To start the script automatically on bootup, create hardlinks that
     indicate when to start/stop in:
      --with-initscriptdir=/etc/init.d
 
     To start the script automatically on bootup, create hardlinks that
     indicate when to start/stop in:
-                   /etc/rc[S0123].d/
+                    /etc/rc[S0123].d/
     pointing to /etc/init.d/smartd. Create:
     pointing to /etc/init.d/smartd. Create:
-           K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
-           S<snum>smartd in rc3.d
+            K<knum>smartd in rcS.d, rc0.d, rc1.d, rc2.d
+            S<snum>smartd in rc3.d
     where <knum> is related to <snum> such that the higher snum is the
     lower knum must be.
 
     where <knum> is related to <snum> such that the higher snum is the
     lower knum must be.
 
@@ -415,8 +355,8 @@ Same as Red Hat:
   ./configure --sbindir=/usr/sbin                               \
               --sysconfdir=/etc                                 \
               --mandir=/usr/share/man                           \
   ./configure --sbindir=/usr/sbin                               \
               --sysconfdir=/etc                                 \
               --mandir=/usr/share/man                           \
-              --with-initscriptdir=/etc/rc.d/init.d             \
-              --with-docdir=/usr/share/doc/smartmontools-VERSION
+              --docdir=/usr/share/doc/smartmontools             \
+              --with-initscriptdir=/etc/rc.d/init.d
 
   Using DOS text file type as default for the working directories ("textmode"
   mount option) is not recommended. Building the binaries and man pages using
 
   Using DOS text file type as default for the working directories ("textmode"
   mount option) is not recommended. Building the binaries and man pages using
@@ -424,19 +364,14 @@ Same as Red Hat:
   file type ("binmode" mount option) set. The "autogen.sh" script prints a
   warning if DOS type is selected.
 
   file type ("binmode" mount option) set. The "autogen.sh" script prints a
   warning if DOS type is selected.
 
-  If installing from SVN, you may check out all files either with CR/LF
-  or LF line endings. Starting with release 3.1-7, Cygwin's bash does no
-  longer accept scripts with CR/LF by default. To run the initial script
-  ./autogen.sh checked out with CR/LF on a "binmode" mount, type:
-
-  bash -O igncr ./autogen.sh
-
-  instead. This is not necessary for the generated ./configure script.
+  Files may also be checked out with a non-Cygwin SVN client which uses CR/LF
+  for svn:eol-style=native.  The "autogen.sh" script has svn:eol-style=LF.
+  Bash option "-o igncr" is not required.
 
 [10] Guidelines for Windows
 ===========================
 
 
 [10] Guidelines for Windows
 ===========================
 
-To compile the Windows release with MinGW gcc on MSYS, use:
+To compile statically linked Windows release with MinGW gcc on MSYS, use:
 
   ./configure
   make
 
   ./configure
   make
@@ -444,20 +379,15 @@ To compile the Windows release with MinGW gcc on MSYS, use:
   Instead of using "make install", copy the .exe files into
   some directory in the PATH.
 
   Instead of using "make install", copy the .exe files into
   some directory in the PATH.
 
-To compile with MinGW gcc 3.x on Cygwin, use:
+Cross-compile statically linked 32-bit and 64-bit versions with MinGW-w64:
 
 
-  ./configure --build=i686-pc-mingw32
+  ./configure --build=$(./config.guess) \
+              --host=i686-w64-mingw32
 
 
-  The above does not work if gcc 4.x is installed and selected as
-  default by /usr/sbin/alternatives.  If the configure command aborts
-  with error message '... does not support -mno-cygwin', select
-  gcc 3.x by:
+  ./configure --build=$(./config.guess) \
+              --host=x86_64-w64-mingw32
 
 
-  CC=gcc-3 CXX=g++-3 ./configure --build=i686-pc-mingw32
-
-  Alternatively, a MinGW-targeted cross-compiler can be used if available:
-
-  ./configure --build=i686-pc-cygwin --host=i686-pc-mingw32
+  Tested on Cygwin, Debian and Fedora.
 
 
 To build the Windows binary distribution, use:
 
 
 To build the Windows binary distribution, use:
@@ -485,6 +415,15 @@ To create a Windows installer, use:
   package. See http://nsis.sourceforge.net/ for documentation and
   download location.
 
   package. See http://nsis.sourceforge.net/ for documentation and
   download location.
 
+  It is also possible to (cross-)build the installer on Linux.
+  This was successfully tested on Debian and Fedora with package
+  "nsis".
+
+To create a combined 32-/64-bit installer, use this in 32-bit build
+directory if 64-build directory is at ../build64:
+
+  make builddir_win64=../build64 installer_win32
+
 To both create and run the (interactive) installer, use:
 
   make install-win32
 To both create and run the (interactive) installer, use:
 
   make install-win32
@@ -494,26 +433,19 @@ To both create and run the (interactive) installer, use:
 
   The binary distribution includes all documentation files converted
   to DOS text file format and *.html and *.txt preformatted man pages.
 
   The binary distribution includes all documentation files converted
   to DOS text file format and *.html and *.txt preformatted man pages.
-  The tools unix2dos.exe (package cygutils) and zip.exe (package zip
-  or a native Win32 release of Info-ZIP, http://www.info-zip.org) are
-  necessary but may be not installed by Cygwin's default settings.
 
 
-To prepare os_win32 directory for MSVC8, use the following on Cygwin:
+To prepare os_win32/vc14 directory for MS Visual Studio C++ 2015 builds,
+use the following on MSYS or Cygwin:
 
   mkdir vctmp && cd vctmp
 
   mkdir vctmp && cd vctmp
-  ../configure --build=mingw32
-  make config-vc8
-
-  The MSVC8 project files (os_win32/smartmontools_vc8.sln,
-  os_win32/smart{ctl,d}_vc8.vcproj) are included in SVN (but not in
-  source tarball). The target config-vc8 from a Makefile configured
-  for MinGW creates os_win32/{config,svnversion}_vc8.h from
-  ./{config,svnversion}.h. The configure skript must be run outside
-  of the source directory to avoid inclusion of the original config.h.
+  ../configure [... any MinGW option set from above ...]
+  make config-vc14
 
 
-  Unlike MinGW, MSVC can also be used to build the syslog message file
-  tool syslogevt.exe. See smartd man page for usage information about
-  this tool.
+  The MSVC project files (os_win32/vc14/*) are included in SVN (but not
+  in source tarball). The target config-vc14 from a Makefile configured
+  for MinGW creates os_win32/vc14/{config.h,smart*.rc,svnversion.h}.
+  The configure skript must be run outside of the source directory to
+  avoid inclusion of the original config.h.
 
 
 [11] Guidelines for OS/2, eComStation
 
 
 [11] Guidelines for OS/2, eComStation
@@ -521,35 +453,25 @@ To prepare os_win32 directory for MSVC8, use the following on Cygwin:
 
 To compile the OS/2 code, please run
 
 
 To compile the OS/2 code, please run
 
-  ./os_os2/configure.os2
+  ./configure
   make
   make install
 
 [12] Guidelines for OpenBSD
   make
   make install
 
 [12] Guidelines for OpenBSD
-==========================
+===========================
   To match the way it will installed when it becomes available as a PORT, use
   the following:
 
   ./configure --prefix=/usr/local                                      \
   To match the way it will installed when it becomes available as a PORT, use
   the following:
 
   ./configure --prefix=/usr/local                                      \
-             --sysconfdir=/etc
-              --with-initscriptdir=/usr/local/share/doc/smartmontools-VERSION \
-              --with-docdir=/usr/local/share/doc/smartmontools-VERSION \
-             --enable-sample
-
-  It is important that you use GNU make (gmake from /usr/ports/devel/gmake)
-  to build smartmontools, as the default OpenBSD make doesn't know how to build
-  the man pages.
-
-  NOTE1: --with-initscriptdir installs a SystemV startup script.  It really
-  should be --without-initscriptdir, but the Makefile code is incorrect and
-  trys to install the initscript (smartd) to /no.  So, an interim fix it to
-  set the initscript dir to the doc dir.
+              --sysconfdir=/etc                                        \
+              --docdir=/usr/local/share/doc/smartmontools-VERSION      \
+              --without-initscriptdir                                  \
+              --enable-sample
 
 
-  NOTE2: --enable-sample will cause the smartd.conf and smartd RC files to
+  NOTE: --enable-sample will cause the smartd.conf and smartd RC files to
   be installed with the string '.sample' append to the name, so you will end
   up with the following:
   be installed with the string '.sample' append to the name, so you will end
   up with the following:
-       /usr/local/etc/smartd.conf.sample
-       /usr/local/etc/rc.d/smartd.sample
+        /etc/smartd.conf.sample
 
 [13] Comments
 ============
 
 [13] Comments
 ============
@@ -561,6 +483,11 @@ by the following:
   cd objdir
   ../configure [options]
 
   cd objdir
   ../configure [options]
 
+Man pages contents is platform-specific by default. Info specific to other
+platforms may be not visible. To generate man pages with full contents use:
+
+  make os_man_filter=
+
 To install to another destination (used mainly by package maintainers,
 or to examine the package contents without risk of modifying any
 system files) you can replace the step:
 To install to another destination (used mainly by package maintainers,
 or to examine the package contents without risk of modifying any
 system files) you can replace the step:
@@ -568,7 +495,7 @@ system files) you can replace the step:
 with:
   make DESTDIR=/home/myself/smartmontools-package install
 
 with:
   make DESTDIR=/home/myself/smartmontools-package install
 
-Use a full path. Paths like ~/smartmontools-package may not work.
+Use a full path. Paths like ./smartmontools-package may not work.
 
 After installing smartmontools, you can read the man pages, and try
 out the commands:
 
 After installing smartmontools, you can read the man pages, and try
 out the commands:
@@ -577,50 +504,65 @@ man smartd.conf
 man smartctl
 man smartd
 
 man smartctl
 man smartd
 
-/usr/sbin/smartctl -s on -o on -S on /dev/hda (only root can do this)
-/usr/sbin/smartctl -a /dev/hda (only root can do this)
+/usr/sbin/smartctl -s on -o on -S on /dev/sda (only root can do this)
+/usr/sbin/smartctl -a /dev/sda (only root can do this)
 
 Note that the default location for the manual pages are
 /usr/share/man/man5 and /usr/share/man/man8.  If "man" doesn't find
 them, you may need to add /usr/share/man to your MANPATH environment
 variable.
 
 
 Note that the default location for the manual pages are
 /usr/share/man/man5 and /usr/share/man/man8.  If "man" doesn't find
 them, you may need to add /usr/share/man to your MANPATH environment
 variable.
 
-Source and binary RPM packages are available at
-http://sourceforge.net/project/showfiles.php?group_id=64297
+Source and binary packages for Windows are available at
+http://sourceforge.net/projects/smartmontools/files/
 
 
-Refer to http://smartmontools.sourceforge.net/index.html#howtodownload
-for any additional download and installation instructions.
+Refer to http://www.smartmontools.org/wiki/Download for any additional
+download and installation instructions.
 
 The following files are installed if ./configure has no options:
 
 
 The following files are installed if ./configure has no options:
 
-/usr/local/sbin/smartd                                  [Executable daemon]
 /usr/local/sbin/smartctl                                [Executable command-line utility]
 /usr/local/sbin/smartctl                                [Executable command-line utility]
+/usr/local/sbin/smartd                                  [Executable daemon]
+/usr/local/sbin/update-smart-drivedb                    [Drive database update script]
 /usr/local/etc/smartd.conf                              [Configuration file for smartd daemon]
 /usr/local/etc/smartd.conf                              [Configuration file for smartd daemon]
-/usr/local/etc/rc.d/init.d/smartd                       [Init/Startup script for smartd]
+/usr/local/etc/smartd_warning.sh                        [Warning skript for smartd daemon]
 /usr/local/share/man/man5/smartd.conf.5                 [Manual page]
 /usr/local/share/man/man8/smartctl.8                    [Manual page]
 /usr/local/share/man/man8/smartd.8                      [Manual page]
 /usr/local/share/man/man5/smartd.conf.5                 [Manual page]
 /usr/local/share/man/man8/smartctl.8                    [Manual page]
 /usr/local/share/man/man8/smartd.8                      [Manual page]
-/usr/local/share/doc/smartmontools-5.X/AUTHORS          [Information about the authors and developers]
-/usr/local/share/doc/smartmontools-5.X/CHANGELOG        [A log of changes. Also see SVN]
-/usr/local/share/doc/smartmontools-5.X/COPYING          [GNU General Public License Version 2]
-/usr/local/share/doc/smartmontools-5.X/INSTALL          [Installation instructions: what you're reading!]
-/usr/local/share/doc/smartmontools-5.X/NEWS             [Significant bugs discovered in old versions]
-/usr/local/share/doc/smartmontools-5.X/README           [Overview]
-/usr/local/share/doc/smartmontools-5.X/TODO             [Things that need to be done/fixed]
-/usr/local/share/doc/smartmontools-5.X/WARNINGS         [Systems where lockups or other serious problems were reported]
-/usr/local/share/doc/smartmontools-5.X/smartd.conf      [Example configuration file for smartd]
-/usr/local/share/doc/smartmontools-5.X/examplescripts   [Executable scripts for -M exec of smartd.conf (4 files)]
+/usr/local/share/man/man8/update-smart-drivedb.8        [Manual page]
+/usr/local/share/doc/smartmontools/AUTHORS              [Information about the authors and developers]
+/usr/local/share/doc/smartmontools/ChangeLog            [A log of changes. Also see SVN]
+/usr/local/share/doc/smartmontools/COPYING              [GNU General Public License Version 2]
+/usr/local/share/doc/smartmontools/INSTALL              [Installation instructions: what you're reading!]
+/usr/local/share/doc/smartmontools/NEWS                 [Significant enhancements and fixes]
+/usr/local/share/doc/smartmontools/README               [Overview]
+/usr/local/share/doc/smartmontools/TODO                 [Things that need to be done/fixed]
+/usr/local/share/doc/smartmontools/smartd.conf          [Example configuration file for smartd]
+/usr/local/share/doc/smartmontools/examplescripts/      [Executable scripts for -M exec of smartd.conf (4 files)]
+/usr/local/share/smartmontools/drivedb.h                [Drive database]
+
+Due to checks done by '--with-systemdsystemunitdir=auto' and '--with-initscriptdir=auto',
+one of the following files may also be installed:
+
+/usr/local/lib/systemd/system/smartd.service            [Systemd service file for smartd]
+/usr/local/etc/rc.d/init.d/smartd                       [Init/Startup script for smartd]
+/usr/local/etc/init.d/smartd                            [Init/Startup script for smartd]
+/usr/local/etc/rc.d/smartd                              [Init/Startup script for smartd]
+
+If /usr/local/etc/smartd.conf exists and differs from the
+default then the default configuration file is installed as
+/usr/local/etc/smartd.conf.sample instead.
 
 The commands:
 
 make htmlman
 
 The commands:
 
 make htmlman
+make pdfman
 make txtman
 
 make txtman
 
-may be used to build .html and .txt preformatted man pages.
+may be used to build .html, .pdf and .txt preformatted man pages.
 These are used by the dist-win32 make target to build the Windows
 distribution.
 The commands also work on other operating system configurations
 These are used by the dist-win32 make target to build the Windows
 distribution.
 The commands also work on other operating system configurations
-if suitable versions of man2html, groff and grotty are installed.
+if suitable versions of man, man2html and groff are installed.
 On systems without man2html, the following command should work
 if groff is available:
 
 On systems without man2html, the following command should work
 if groff is available:
 
@@ -644,83 +586,84 @@ a documentation file doc/latex/refman.pdf:
 ===========================================================
 
 When you type:
 ===========================================================
 
 When you type:
-./configure [options]
-there are six particularly important variables that affect where the
-smartmontools software is installed.  The variables are listed here,
-with their default values in square brackets, and the quantities that
-they affect described following that.  This is a very wide table: please read
-it in a wide window.
-
-OPTIONS              DEFAULT                                      AFFECTS
--------              -------                                      -------
---prefix             /usr/local                                   Please see below
---sbindir            ${prefix}/sbin                               Directory for smartd/smartctl executables;
-                                                                  Contents of smartd/smartctl man pages
---mandir             ${prefix}/share/man                          Directory for smartctl/smartd/smartd.conf man pages
---sysconfdir         ${prefix}/etc                                Directory for smartd.conf;
-                                                                  Contents of smartd executable;
-                                                                  Contents of smartd/smartd.conf man pages;
-                                                                  Directory for rc.d/init.d/smartd init script
---with-initscriptdir  ${sysconfdir}/init.d/rc.d                   Location of init scripts
---with-docdir         ${prefix}/share/doc/smartmontools-5.X       Location of the documentation
---enable-sample       --disable-sample                            Adds the string '.sample' to the names of the smartd.conf file and the smartd RC file
---with-os-deps        os_<guessed>.o                              OS dependent module(s)
---with-selinux        <not set>                                   Enables SELinux support.  If smartmontools has to create the /dev/tw[ae] device
-                                                                  nodes for 3ware/AMCC controllers, this option ensures that the nodes are created
-                                                                  with correct SELinux file contexts.
---enable-drivedb      --disable-drivedb                           Enables default drive database file '${drivedbdir}/drivedb.h'
---with-drivedbdir     ${prefix}/share/smartmontools/drivedb.h     Directory for 'drivedb.h' (specifying this option implies --enable-drivedb)
---enable-savestates   --disable-savestates                        Enables default smartd state files '${savestates}MODEL-SERIAL.ata.state'
---with-savestates     ${prefix}/var/lib/smartmontools/smartd.     Prefix for smartd state files (specifying this option implies --enable-savestates)
+./configure --help
+a description of available configure options is printed
+[with defaults in square brackets].  See also section [3] above.
+
+
+The following old configure options are no longer supported:
+
+Old option                 Replacement
+--with-docdir=DIR          --docdir=DIR (autoconf >= 2.60)
+--enable-drivedb           [no option needed]
+--disable-drivedb          --without-drivedbdir
+--enable-savestates        --with-savestates[=yes]
+--disable-savestates       [no option needed]
+--enable-attrbutelog       --with-attributelog[=yes]
+--disable-savestates       [no option needed]
+
+
+The defaults for --with-initscriptdir and --with-systemdsystemunitdir are
+guessed such that the following rules apply:
+- If --prefix=/usr --sysconfdir=/etc is specified, the guessed directories
+  should be the defaults used by the current OS or distribution.
+- If --sysconfdir=/etc is NOT specified, the guessed directories should
+  always be below ${prefix} or below ${sysconfdir}.
 
 Here's an example:
 If you set --prefix=/home/joe and none of the other four
 variables then the different directories that are used would be:
 --sbindir             /home/joe/sbin
 
 Here's an example:
 If you set --prefix=/home/joe and none of the other four
 variables then the different directories that are used would be:
 --sbindir             /home/joe/sbin
+--docdir              /home/joe/share/doc/smartmontools
 --mandir              /home/joe/share/man
 --sysconfdir          /home/joe/etc
 --mandir              /home/joe/share/man
 --sysconfdir          /home/joe/etc
---with-initscriptdir  /home/joe/etc/init.d/rc.d
---with-docdir        /home/joe/doc/smartmontools-5.X
+--with-exampledir     /home/joe/share/doc/smartmontools/examplescripts
+--with-drivedbdir     /home/joe/share/smartmontools
+--with-initscriptdir         [see below]
+--with-systemdsystemunitdir  [see below]
 
 
-This is useful for test installs in a harmless subdirectory somewhere.
+If systemd is present (and pkg-config reports /lib/systemd/system
+as the systemdsystemunitdir):
 
 
-Here are the four possible cases for the four variables above:
+--with-initscriptdir         [disabled]
+--with-systemdsystemunitdir  /home/joe/lib/systemd/system
 
 
-Case 1:
---prefix not set
---variable not set
-===> VARIABLE gets default value above
+else if /etc/rc.d/init.d exists:
 
 
-Case 2:
---prefix set
---variable not set
-===> VARIABLE gets PREFIX/ prepended to default value above
+--with-initscriptdir         /home/joe/etc/rc.d/init.d
+--with-systemdsystemunitdir  [disabled]
+
+else if /etc/init.d exists:
+
+--with-initscriptdir         /home/joe/etc/init.d
+--with-systemdsystemunitdir  [disabled]
+
+else if /etc/rc.d exists:
+
+--with-initscriptdir         /home/joe/etc/rc.d
+--with-systemdsystemunitdir  [disabled]
 
 
-Case 3:
---prefix not set
---variable set
-===> VARIABLE gets value that is set
+else
 
 
-Case 4:
---prefix is set
---variable is set
-===> PREFIX is IGNORED, VARIABLE gets value that is set
+--with-initscriptdir         [disabled]
+--with-systemdsystemunitdir  [disabled]
 
 
 Here are the differences with and without --enable-sample, assuming
 
 
 Here are the differences with and without --enable-sample, assuming
-no other options specified (see above for details)
+that initscript location is set and no other options specified 
+(see above for details)
 
 Case 1:
 --enable-sample provided
 ==> Files installed are:
 
 Case 1:
 --enable-sample provided
 ==> Files installed are:
-       /usr/local/etc/smartd.conf.sample
-       /usr/local/etc/rc.d/init.d/smartd.sample
+        /usr/local/etc/smartd.conf.sample
+        /usr/local/etc/rc.d/init.d/smartd.sample
 
 Case 2:
 --disable-sample provided or parameter left out
 ==> Files installed are:
 
 Case 2:
 --disable-sample provided or parameter left out
 ==> Files installed are:
-       /usr/local/etc/smartd.conf
-       /usr/local/etc/rc.d/init.d/smartd
+        /usr/local/etc/smartd.conf
+        /usr/local/etc/rc.d/init.d/smartd
 
 Additional information about using configure can be found here:
 
 Additional information about using configure can be found here:
-http://www.gnu.org/software/autoconf/manual/autoconf-2.57/html_mono/autoconf.html#SEC139
+https://www.gnu.org/software/autoconf/manual/autoconf.html#Running-configure-Scripts