]> git.proxmox.com Git - mirror_smartmontools-debian.git/blobdiff - Makefile.am
New upstream version 6.6
[mirror_smartmontools-debian.git] / Makefile.am
index c496bc9e202cfe42295cacb8592f05fcb2d22d2e..7540f57019ded8de4e97941935827415e127ab0d 100644 (file)
@@ -1,6 +1,6 @@
 ## Process this file with automake to produce Makefile.in
 #
-# $Id: Makefile.am 4299 2016-04-16 19:45:57Z chrfranke $
+# $Id: Makefile.am 4519 2017-10-08 15:41:54Z chrfranke $
 #
 
 @SET_MAKE@
@@ -63,6 +63,8 @@ smartctl_SOURCES = \
         ataprint.h \
         dev_ata_cmd_set.cpp \
         dev_ata_cmd_set.h \
+        dev_intelliprop.cpp \
+        dev_intelliprop.h \
         dev_interface.cpp \
         dev_interface.h \
         dev_tunnelled.h \
@@ -96,6 +98,8 @@ EXTRA_smartctl_SOURCES = \
         os_netbsd.h \
         os_openbsd.cpp \
         os_openbsd.h \
+        os_os2.cpp \
+        os_os2.h \
         os_qnxnto.cpp \
         os_qnxnto.h \
         os_solaris.cpp \
@@ -115,8 +119,8 @@ EXTRA_smartctl_SOURCES = \
 
 if OS_WIN32_MINGW
 
-smartctl_LDADD        += smartctl_res.o $(os_win32_manifest)
-smartctl_DEPENDENCIES += smartctl_res.o $(os_win32_manifest)
+smartctl_LDADD        += smartctl_res.o
+smartctl_DEPENDENCIES += smartctl_res.o
 
 endif
 
@@ -129,6 +133,8 @@ smartd_SOURCES = \
         atacmds.h \
         dev_ata_cmd_set.cpp \
         dev_ata_cmd_set.h \
+        dev_intelliprop.cpp \
+        dev_intelliprop.h \
         dev_interface.cpp \
         dev_interface.h \
         dev_tunnelled.h \
@@ -158,6 +164,8 @@ EXTRA_smartd_SOURCES = \
         os_netbsd.h \
         os_openbsd.cpp \
         os_openbsd.h \
+        os_os2.cpp \
+        os_os2.h \
         os_qnxnto.cpp \
         os_qnxnto.h \
         os_solaris.cpp \
@@ -174,6 +182,7 @@ EXTRA_smartd_SOURCES = \
         dev_legacy.cpp \
         linux_nvme_ioctl.h \
         freebsd_nvme_ioctl.h \
+        netbsd_nvme_ioctl.h \
         megaraid.h
 
 if OS_WIN32_MINGW
@@ -184,8 +193,8 @@ smartd_SOURCES += \
         os_win32/syslog_win32.cpp \
         os_win32/syslog.h
 
-smartd_LDADD        += smartd_res.o $(os_win32_manifest)
-smartd_DEPENDENCIES += smartd_res.o $(os_win32_manifest)
+smartd_LDADD        += smartd_res.o
+smartd_DEPENDENCIES += smartd_res.o
 
 endif
 
@@ -360,6 +369,7 @@ uninstall-sysconfDATA:
 smartdscript_SCRIPTS = smartd_warning.sh
 
 EXTRA_DIST = \
+        .editorconfig \
         autogen.sh \
         smartd.initd.in \
         smartd.freebsd.initd.in \
@@ -380,32 +390,36 @@ EXTRA_DIST = \
         os_win32/default.manifest \
         os_win32/installer.nsi \
         os_win32/runcmd.c \
-        os_win32/smartctl_res.rc.in \
-        os_win32/smartd_res.rc.in \
+        os_win32/smartd_mailer.ps1 \
+        os_win32/smartd_mailer.conf.sample.ps1 \
         os_win32/smartd_warning.cmd \
         os_win32/syslogevt.mc \
         os_win32/update-smart-drivedb.nsi \
         os_win32/wbemcli_small.h \
+        os_win32/versioninfo.rc.in \
         os_win32/wtssendmsg.c \
         $(docs_DATA) \
         $(examples_DATA) \
         $(examples_SCRIPTS)
 
 CLEANFILES = \
-        smartd.conf.5 \
-        smartd.conf.4 \
         smartd.8 \
         smartd.1m \
         smartd.8.html \
         smartd.8.html.tmp \
+        smartd.8.pdf \
         smartd.8.txt \
         smartctl.8 \
         smartctl.1m \
         smartctl.8.html \
         smartctl.8.html.tmp \
+        smartctl.8.pdf \
         smartctl.8.txt \
+        smartd.conf.5 \
+        smartd.conf.4 \
         smartd.conf.5.html \
         smartd.conf.5.html.tmp \
+        smartd.conf.5.pdf \
         smartd.conf.5.txt \
         smartd.initd \
         smartd.freebsd.initd \
@@ -415,6 +429,10 @@ CLEANFILES = \
         update-smart-drivedb \
         update-smart-drivedb.8 \
         update-smart-drivedb.1m \
+        update-smart-drivedb.8.html \
+        update-smart-drivedb.8.html.tmp \
+        update-smart-drivedb.8.pdf \
+        update-smart-drivedb.8.txt \
         SMART
 
 # 'make maintainer-clean' also removes files generated by './autogen.sh'
@@ -658,10 +676,12 @@ update-smart-drivedb.1m: update-smart-drivedb.8
        @$(SOLARIS_MAN_FILTER) < update-smart-drivedb.8 > $@
 
 
-# Commands to convert man pages into .html and .txt
+# Convert man pages into .html, .pdf and .txt
 # TODO: configure
 MAN2HTML = man2html
 #MAN2HTML = groff -man -Thtml
+MAN2PDF = man -Tpdf -l
+#MAN2PDF = groff -man -Tpdf
 MAN2TXT = groff -man -Tascii -P'-bcou'
 
 # Remove HTTP header and fix links in man2html output
@@ -671,11 +691,11 @@ FIXHTML = sed -e '1s,^Content-type.*,,' \
               -e 's,<A HREF="[^"]*/man2html?[^"]*">\([^<]*\)</A>,\1,g' \
               -e 's,<A HREF="mailto:[^s][^m][^a][^"]*">\([^<]*\)</A>,\1,g'
 
-# Convert man pages into .html and .txt
+htmlman: smartctl.8.html smartd.8.html smartd.conf.5.html update-smart-drivedb.8.html
 
-htmlman: smartctl.8.html smartd.8.html smartd.conf.5.html
+pdfman:  smartctl.8.pdf smartd.8.pdf smartd.conf.5.pdf update-smart-drivedb.8.pdf
 
-txtman:  smartctl.8.txt smartd.8.txt smartd.conf.5.txt
+txtman:  smartctl.8.txt smartd.8.txt smartd.conf.5.txt update-smart-drivedb.8.txt
 
 %.5.html: %.5
        $(MAN2HTML) $< > $@.tmp
@@ -687,6 +707,12 @@ txtman:  smartctl.8.txt smartd.8.txt smartd.conf.5.txt
        @echo ' $$(FIXHTML) < $@.tmp > $@'
        @$(FIXHTML) < $@.tmp > $@
 
+%.5.pdf: %.5
+       $(MAN2PDF) $< > $@
+
+%.8.pdf: %.8
+       $(MAN2PDF) $< > $@
+
 %.5.txt: %.5
        $(MAN2TXT) $< > $@
 
@@ -706,38 +732,64 @@ check:
 if OS_WIN32_MINGW
 # Windows resources
 
-smartctl_res.o: smartctl_res.rc
+smartctl_res.o: smartctl_res.rc $(os_win32_manifest)
+       $(WINDRES) $< $@
+
+smartd_res.o: smartd_res.rc syslogevt.rc $(os_win32_manifest)
        $(WINDRES) $< $@
 
-smartd_res.o: smartd_res.rc syslogevt.rc
-       $(WINDRES) -I. $< $@
+runcmda_res.o: runcmda_res.rc defadmin.manifest
+       $(WINDRES) $< $@
+
+runcmdu_res.o: runcmdu_res.rc $(os_win32_manifest)
+       $(WINDRES) $< $@
+
+wtssendmsg_res.o: wtssendmsg_res.rc $(os_win32_manifest)
+       $(WINDRES) $< $@
 
-# Convert version for VERSIONINFO resource: 6.1 r3754 -> 6.1.0.3754, set Copyright year
+# Convert version for VERSIONINFO resource: 6.6 r4519 -> 6.6.0.4519,
+# set description, name, version and year
 WIN_RC_FILTER = { \
     ver=`echo '$(PACKAGE_VERSION).0' | sed -n 's,^\([0-9]*\.[0-9]*\.[0-9]*\).*$$,\1,p'` && \
     rev=`sed -n 's,^.*REV[^"]*"\([0-9]*\).*$$,\1,p' svnversion.h` && \
     txtver="$${ver:-0.0.0}.$${rev:-0}" && binver=`echo "$$txtver" | sed 's|\.|,|g'` && \
     yy=`sed -n 's,^.*DATE[^"]*"20\([0-9][0-9]\).*$$,\1,p' svnversion.h` && yy="$${yy:-XX}" && \
-    sed -e "s|@BINARY_VERSION@|$$binver|g" -e "s|@TEXT_VERSION@|$$txtver|g" -e "s|@YY@|$$yy|g"; }
+    sed -e "s|@DESC@|$$d|" -e "s|@NAME@|$$n|" -e "s|@BINARY_VERSION@|$$binver|g" \
+        -e "s|@TEXT_VERSION@|$$txtver|g" -e "s|@YY@|$$yy|g"; }
 
-smartctl_res.rc: os_win32/smartctl_res.rc.in Makefile svnversion.h
-       @echo ' $$(WIN_RC_FILTER) < $< > $@'
-       @$(WIN_RC_FILTER) < $< > $@
+WIN_MAKE_RES = \
+    echo "n=$$n d=\"$$d"'"; $$(WIN_RC_FILTER) < $< > $@'; \
+    $(WIN_RC_FILTER) < $< > $@
 
-smartd_res.rc: os_win32/smartd_res.rc.in Makefile svnversion.h
-       @echo ' $$(WIN_RC_FILTER) < $< > $@'
-       @$(WIN_RC_FILTER) < $< > $@
+WIN_APP_MANIFEST = \
+    if test -n '$(os_win32_manifest)'; then \
+      echo "echo '1 24 \"$(srcdir)/$(os_win32_manifest)\"' >> $@"; \
+      echo '1 24 "$(srcdir)/$(os_win32_manifest)"' >> $@; \
+    fi
 
-syslogevt.rc: os_win32/syslogevt.mc
-       $(WINDMC) -b $<
+smartctl_res.rc: os_win32/versioninfo.rc.in Makefile svnversion.h
+       @n=smartctl d="Control and Monitor Utility for SMART Disks"; $(WIN_MAKE_RES)
+       @$(WIN_APP_MANIFEST)
+
+smartd_res.rc: os_win32/versioninfo.rc.in Makefile svnversion.h
+       @n=smartd d="SMART Disk Monitoring Daemon"; $(WIN_MAKE_RES)
+       echo '#include "./syslogevt.rc"' >> $@
+       @$(WIN_APP_MANIFEST)
 
-# Application manifests
+runcmdu_res.rc: os_win32/versioninfo.rc.in Makefile svnversion.h
+       @n=runcmdu d="Run console command"; $(WIN_MAKE_RES)
+       @$(WIN_APP_MANIFEST)
 
-default.manifest.o: os_win32/default.manifest
-       echo '1 24 "$<"' | $(WINDRES) -J rc -o $@
+runcmda_res.rc: os_win32/versioninfo.rc.in Makefile svnversion.h
+       @n=runcmda d="Run console command as admin"; $(WIN_MAKE_RES)
+       echo '1 24 "./defadmin.manifest"' >> $@
 
-defadmin.manifest.o: defadmin.manifest
-       echo '1 24 "$<"' | $(WINDRES) -J rc -o $@
+wtssendmsg_res.rc: os_win32/versioninfo.rc.in Makefile svnversion.h
+       @n=wtssendmsg d="Send console messages"; $(WIN_MAKE_RES)
+       @$(WIN_APP_MANIFEST)
+
+syslogevt.rc: os_win32/syslogevt.mc
+       $(WINDMC) -b $<
 
 defadmin.manifest: os_win32/default.manifest
        sed 's,"asInvoker","requireAdministrator",' $< > $@
@@ -761,6 +813,8 @@ EXEFILES_WIN32 = \
         $(exedir_win32)/smartctl.exe \
         $(exedir_win32)/smartctl-nc.exe \
         $(exedir_win32)/smartd.exe \
+        $(exedir_win32)/smartd_mailer.ps1 \
+        $(exedir_win32)/smartd_mailer.conf.sample.ps1 \
         $(exedir_win32)/smartd_warning.cmd \
         $(exedir_win32)/runcmda.exe \
         $(exedir_win32)/runcmdu.exe \
@@ -786,11 +840,11 @@ FILES_WIN32 = \
         $(docdir_win32)/checksums$(win_bits).txt \
         $(docdir_win32)/smartd.conf \
         $(docdir_win32)/smartctl.8.html \
-        $(docdir_win32)/smartctl.8.txt \
+        $(docdir_win32)/smartctl.8.pdf \
         $(docdir_win32)/smartd.8.html \
-        $(docdir_win32)/smartd.8.txt \
+        $(docdir_win32)/smartd.8.pdf \
         $(docdir_win32)/smartd.conf.5.html \
-        $(docdir_win32)/smartd.conf.5.txt
+        $(docdir_win32)/smartd.conf.5.pdf
 
 if ENABLE_DRIVEDB
 FILES_WIN32 += \
@@ -801,13 +855,14 @@ CLEANFILES += \
         $(FILES_WIN32) \
         defadmin.manifest \
         distdir.mkdir \
-        runcmda.exe runcmdu.exe \
+        runcmda.exe runcmda_res.rc \
+        runcmdu.exe runcmdu_res.rc \
         smartctl-nc.exe smartctl-nc.exe.tmp \
         smartctl_res.rc smartd_res.rc \
         syslogevt.h \
         syslogevt.rc syslogevt_*.bin \
         update-smart-drivedb.exe \
-        wtssendmsg.exe
+        wtssendmsg.exe wtssendmsg_res.rc
 
 # Note: Only use without options to be compatible with all variants
 UNIX2DOS = unix2dos
@@ -880,14 +935,17 @@ $(exedir_win32)/%.cmd: $(srcdir)/os_win32/%.cmd
        $(UNIX2DOS) < $< > $@
        touch -r $< $@
 
-$(docdir_win32)/%.html: %.html
+$(exedir_win32)/%.ps1: $(srcdir)/os_win32/%.ps1
        $(UNIX2DOS) < $< > $@
        touch -r $< $@
 
-$(docdir_win32)/%.txt: %.txt
+$(docdir_win32)/%.html: %.html
        $(UNIX2DOS) < $< > $@
        touch -r $< $@
 
+$(docdir_win32)/%.pdf: %.pdf
+       cp -p $< $@
+
 $(docdir_win32)/%.txt: $(srcdir)/%
        $(UNIX2DOS) < $< > $@
        touch -r $< $@
@@ -920,37 +978,58 @@ smartctl-nc.exe: smartctl.exe
 runcmd.o: os_win32/runcmd.c
        $(CC) -c -Os $<
 
-runcmdu.exe: runcmd.o $(os_win32_manifest)
+runcmdu.exe: runcmd.o runcmdu_res.o
        $(CC) -o $@ $^
 
-runcmda.exe: runcmd.o defadmin.manifest.o
+runcmda.exe: runcmd.o runcmda_res.o
        $(CC) -o $@ $^
 
-wtssendmsg.exe: os_win32/wtssendmsg.c $(os_win32_manifest)
-       $(CC) -Os -o $@ $< $(os_win32_manifest) -lwtsapi32
+wtssendmsg.exe: os_win32/wtssendmsg.c wtssendmsg_res.o
+       $(CC) -Os -o $@ $^ -lwtsapi32
 
-# Build os_win32/vc10/{config.h,smart*.rc,svnversion.h} for MSVC10 from MinGW files
+# Build os_win32/vc14/{config.h,smart*.rc,svnversion.h} for MSVC14 from MinGW files
 
-config-vc10: $(srcdir)/os_win32/vc10/config.h \
-             $(srcdir)/os_win32/vc10/smartctl_res.rc \
-             $(srcdir)/os_win32/vc10/smartd_res.rc \
-             $(srcdir)/os_win32/vc10/svnversion.h
+vcver = 14
 
-$(srcdir)/os_win32/vc10/config.h: config.h Makefile
-       sed -e '1i/* os_win32/vc10/config.h.  Generated from config.h by Makefile.  */' \
-           -e 's,^#define HAVE_\(ATTR_PACKED\|GETTIMEOFDAY\|INTTYPES_H\|[DK_]*NTDDDISK_H\|STRINGS_H\|STRTOULL\|UNISTD_H\|WORKING_SNPRINTF\) 1$$,/* #undef HAVE_\1 */,' \
-           -e 's,^\(#define SMARTMONTOOLS_BUILD_HOST "[^-]*\)[^"]*,\1-pc-w32vc10,' $< > $@
+CONFIG_VC_FILES = \
+        $(srcdir)/os_win32/vc$(vcver)/config.h \
+        $(srcdir)/os_win32/vc$(vcver)/smartctl_res.rc \
+        $(srcdir)/os_win32/vc$(vcver)/smartd_res.rc \
+        $(srcdir)/os_win32/vc$(vcver)/svnversion.h
 
-$(srcdir)/os_win32/vc10/svnversion.h: svnversion.h
-       cp $< $@
+config-vc$(vcver): $(CONFIG_VC_FILES)
 
-$(srcdir)/os_win32/vc10/smartctl_res.rc: smartctl_res.rc
-       cp $< $@
+$(srcdir)/os_win32/vc$(vcver)/config.h: config.h Makefile
+       sed -e '1i/* os_win32/vc$(vcver)/config.h.  Generated from config.h by Makefile.  */' \
+           -e 's,^#define HAVE_\(ATTR_PACKED\|GETTIMEOFDAY\|[DK_]*NTDDDISK_H\|STRINGS_H\|UNISTD_H\|WORKING_SNPRINTF\) 1$$,/* #undef HAVE_\1 */ /* VC$(vcver) */,' \
+           -e 's,^\(#define SMARTMONTOOLS_BUILD_HOST "[^-]*\)[^"]*,\1-pc-w32vc$(vcver),' $< > $@
 
-$(srcdir)/os_win32/vc10/smartd_res.rc: smartd_res.rc
+$(srcdir)/os_win32/vc$(vcver)/svnversion.h: svnversion.h
        cp $< $@
 
+$(srcdir)/os_win32/vc$(vcver)/smartctl_res.rc: smartctl_res.rc
+       sed '/^1 24 /d' $< > $@
+
+$(srcdir)/os_win32/vc$(vcver)/smartd_res.rc: smartd_res.rc
+       sed '/^1 24 /d' $< > $@
+
+clean-vc$(vcver):
+       rm -f $(srcdir)/os_win32/vc$(vcver)/smartmontools.VC.VC.opendb
+       rm -f $(srcdir)/os_win32/vc$(vcver)/smartmontools.VC.db
+       rm -f $(srcdir)/os_win32/vc$(vcver)/syslogevt.h
+       rm -rf $(srcdir)/os_win32/vc$(vcver)/Debug
+       rm -rf $(srcdir)/os_win32/vc$(vcver)/Release
+       rm -rf $(srcdir)/os_win32/vc$(vcver)/x64
+
+distclean-vc$(vcver): clean-vc$(vcver)
+       rm -f $(CONFIG_VC_FILES)
+
+maintainer-clean-vc$(vcver): distclean-vc$(vcver)
+       rm -rf $(srcdir)/os_win32/vc$(vcver)/.vs
+
 endif
+
+
 if OS_DARWIN
 # Definitions for OSX distribution
 distdir_darwin  = $(PACKAGE)-$(VERSION).darwin