Annotation of embedaddon/smartmontools/Makefile.am, revision 1.1
1.1 ! misho 1: ## Process this file with automake to produce Makefile.in
! 2: #
! 3: # $Id: Makefile.am 3453 2011-10-16 12:45:27Z chrfranke $
! 4: #
! 5:
! 6: @SET_MAKE@
! 7:
! 8: # Make sure .cpp takes precedence to avoid compiling old .c file
! 9: SUFFIXES = .cpp .c .s .o
! 10:
! 11: # BUILD_INFO can be provided by package maintainers (see INSTALL file)
! 12: BUILD_INFO= "(local build)"
! 13:
! 14: AM_CPPFLAGS = -DBUILD_INFO='$(BUILD_INFO)' -DSMARTMONTOOLS_SYSCONFDIR='"$(sysconfdir)"'
! 15: if ENABLE_DRIVEDB
! 16: AM_CPPFLAGS += -DSMARTMONTOOLS_DRIVEDBDIR='"$(drivedbdir)"'
! 17: endif
! 18: if ENABLE_SAVESTATES
! 19: AM_CPPFLAGS += -DSMARTMONTOOLS_SAVESTATES='"$(savestates)"'
! 20: endif
! 21: if ENABLE_ATTRIBUTELOG
! 22: AM_CPPFLAGS += -DSMARTMONTOOLS_ATTRIBUTELOG='"$(attributelog)"'
! 23: endif
! 24:
! 25: if OS_WIN32_MINGW
! 26: AM_CPPFLAGS += -I$(srcdir)/os_win32
! 27: endif
! 28: if NEED_GETOPT_LONG
! 29: AM_CPPFLAGS += -I$(srcdir)/getopt -DHAVE_GETOPT_LONG -D__GNU_LIBRARY__
! 30: endif
! 31: if NEED_REGEX
! 32: AM_CPPFLAGS += -I$(srcdir)/regex
! 33: endif
! 34:
! 35: sbin_PROGRAMS = smartd \
! 36: smartctl
! 37:
! 38: if ENABLE_DRIVEDB
! 39: if OS_WIN32_MINGW
! 40: else
! 41: sbin_SCRIPTS = update-smart-drivedb
! 42: endif
! 43: endif
! 44:
! 45:
! 46: smartd_SOURCES = smartd.cpp \
! 47: atacmdnames.cpp \
! 48: atacmdnames.h \
! 49: atacmds.cpp \
! 50: atacmds.h \
! 51: dev_ata_cmd_set.cpp \
! 52: dev_ata_cmd_set.h \
! 53: dev_interface.cpp \
! 54: dev_interface.h \
! 55: dev_tunnelled.h \
! 56: drivedb.h \
! 57: int64.h \
! 58: knowndrives.cpp \
! 59: knowndrives.h \
! 60: scsicmds.cpp \
! 61: scsicmds.h \
! 62: scsiata.cpp \
! 63: utility.cpp \
! 64: utility.h
! 65:
! 66: smartd_LDADD = @os_deps@ @os_libs@ @CAPNG_LDADD@
! 67: smartd_DEPENDENCIES = @os_deps@
! 68:
! 69: EXTRA_smartd_SOURCES = os_darwin.cpp \
! 70: os_darwin.h \
! 71: os_linux.cpp \
! 72: os_linux.h \
! 73: os_freebsd.cpp \
! 74: os_freebsd.h \
! 75: os_netbsd.cpp \
! 76: os_netbsd.h \
! 77: os_openbsd.cpp \
! 78: os_openbsd.h \
! 79: os_qnxnto.cpp \
! 80: os_qnxnto.h \
! 81: os_solaris.cpp \
! 82: os_solaris.h \
! 83: os_solaris_ata.s \
! 84: os_win32.cpp \
! 85: os_generic.cpp \
! 86: os_generic.h \
! 87: cciss.cpp \
! 88: cciss.h \
! 89: cissio_freebsd.h \
! 90: dev_legacy.cpp \
! 91: megaraid.h
! 92:
! 93:
! 94: if OS_WIN32_MINGW
! 95:
! 96: smartd_SOURCES += \
! 97: os_win32/daemon_win32.cpp \
! 98: os_win32/daemon_win32.h \
! 99: os_win32/hostname_win32.cpp \
! 100: os_win32/hostname_win32.h \
! 101: os_win32/syslog_win32.cpp \
! 102: os_win32/syslog.h
! 103:
! 104: endif
! 105:
! 106: smartctl_SOURCES= smartctl.cpp \
! 107: smartctl.h \
! 108: atacmdnames.cpp \
! 109: atacmdnames.h \
! 110: atacmds.cpp \
! 111: atacmds.h \
! 112: ataprint.cpp \
! 113: ataprint.h \
! 114: dev_ata_cmd_set.cpp \
! 115: dev_ata_cmd_set.h \
! 116: dev_interface.cpp \
! 117: dev_interface.h \
! 118: dev_tunnelled.h \
! 119: drivedb.h \
! 120: int64.h \
! 121: knowndrives.cpp \
! 122: knowndrives.h \
! 123: scsicmds.cpp \
! 124: scsicmds.h \
! 125: scsiata.cpp \
! 126: scsiprint.cpp \
! 127: scsiprint.h \
! 128: utility.cpp \
! 129: utility.h
! 130:
! 131:
! 132: smartctl_LDADD = @os_deps@ @os_libs@
! 133: smartctl_DEPENDENCIES = @os_deps@
! 134:
! 135: EXTRA_smartctl_SOURCES = os_linux.cpp \
! 136: os_linux.h \
! 137: os_freebsd.cpp \
! 138: os_freebsd.h \
! 139: os_netbsd.cpp \
! 140: os_netbsd.h \
! 141: os_openbsd.cpp \
! 142: os_openbsd.h \
! 143: os_qnxnto.cpp \
! 144: os_qnxnto.h \
! 145: os_solaris.cpp \
! 146: os_solaris.h \
! 147: os_win32.cpp \
! 148: os_generic.cpp \
! 149: os_generic.h \
! 150: cciss.cpp \
! 151: cciss.h \
! 152: cissio_freebsd.h \
! 153: dev_legacy.cpp \
! 154: megaraid.h
! 155:
! 156: if NEED_GETOPT_LONG
! 157:
! 158: smartctl_SOURCES += \
! 159: getopt/getopt.c \
! 160: getopt/getopt.h \
! 161: getopt/getopt1.c
! 162:
! 163: smartd_SOURCES += \
! 164: getopt/getopt.c \
! 165: getopt/getopt.h \
! 166: getopt/getopt1.c
! 167:
! 168: endif
! 169:
! 170: if NEED_REGEX
! 171:
! 172: smartctl_SOURCES += \
! 173: regex/regex.c \
! 174: regex/regex.h \
! 175: regex/regex_internal.h
! 176:
! 177: smartd_SOURCES += \
! 178: regex/regex.c \
! 179: regex/regex.h \
! 180: regex/regex_internal.h
! 181:
! 182: # Included by regex.c:
! 183: EXTRA_smartctl_SOURCES += \
! 184: regex/regcomp.c \
! 185: regex/regexec.c \
! 186: regex/regex_internal.c
! 187:
! 188: EXTRA_smartd_SOURCES += \
! 189: regex/regcomp.c \
! 190: regex/regexec.c \
! 191: regex/regex_internal.c
! 192:
! 193: endif
! 194:
! 195: if OS_WIN32
! 196:
! 197: smartctl_SOURCES += \
! 198: csmisas.h \
! 199: os_win32/wmiquery.cpp \
! 200: os_win32/wmiquery.h
! 201:
! 202: smartd_SOURCES += \
! 203: csmisas.h \
! 204: os_win32/wmiquery.cpp \
! 205: os_win32/wmiquery.h
! 206:
! 207: smartctl_LDADD += -lole32 -loleaut32
! 208: smartd_LDADD += -lole32 -loleaut32
! 209:
! 210: endif
! 211:
! 212: if OS_SOLARIS
! 213: # This block is required because Solaris uses manual page section 1m
! 214: # for administrative command (linux/freebsd use section 8) and Solaris
! 215: # uses manual page section 4 for file formats (linux/freebsd use
! 216: # section 5). Automake can deal cleanly with man page sections 1-8
! 217: # and n, but NOT with sections of the form 1m.
! 218: extra_MANS = smartd.conf.4 \
! 219: smartctl.1m \
! 220: smartd.1m
! 221: install-man: $(extra_MANS)
! 222: @$(NORMAL_INSTALL)
! 223: $(mkinstalldirs) $(DESTDIR)$(mandir)/man4
! 224: $(mkinstalldirs) $(DESTDIR)$(mandir)/man1m
! 225: for i in $(extra_MANS); do \
! 226: if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
! 227: else file=$$i; fi; \
! 228: ext=`echo $$i | sed -e 's/^.*\\.//'`; \
! 229: inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
! 230: inst=`echo $$inst | sed -e 's/^.*\///'`; \
! 231: inst=`echo $$inst | sed '$(transform)'`.$$ext; \
! 232: echo " $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man$$ext/$$inst"; \
! 233: $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/man$$ext/$$inst; \
! 234: done
! 235: uninstall-man:
! 236: @$(NORMAL_UNINSTALL)
! 237: for i in $(extra_MANS); do \
! 238: if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
! 239: else file=$$i; fi; \
! 240: ext=`echo $$i | sed -e 's/^.*\\.//'`; \
! 241: inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
! 242: inst=`echo $$inst | sed -e 's/^.*\///'`; \
! 243: inst=`echo $$inst | sed '$(transform)'`.$$ext; \
! 244: echo " rm -f $(DESTDIR)$(mandir)/man$$ext/$$inst"; \
! 245: rm -f $(DESTDIR)$(mandir)/man$$ext/$$inst; \
! 246: done
! 247: %.1m: %.8
! 248: awk '/^.TH/ {$$3="1m"} {print}' < $< | \
! 249: sed -e 's/smartd\.conf\(.*\)(5)/smartd.conf\1(4)/g' \
! 250: -e 's/syslog\.conf\(.*\)(5)/syslog.conf\1(4)/g' \
! 251: -e 's/smartctl\(.*\)(8)/smartctl\1(1m)/g' \
! 252: -e 's/syslogd\(.*\)(8)/syslogd\1(1m)/g' \
! 253: -e 's|/var/log/messages|/var/adm/messages|g' \
! 254: -e 's/smartd\(.*\)(8)/smartd\1(1m)/g' > $@
! 255: %.4: %.5
! 256: awk '/^.TH/ {$$3="4"} {print}' < $< | \
! 257: sed -e 's/smartd\.conf\(.*\)(5)/smartd.conf\1(4)/g' \
! 258: -e 's/syslog\.conf\(.*\)(5)/syslog.conf\1(4)/g' \
! 259: -e 's/smartctl\(.*\)(8)/smartdctl\1(1m)/g' \
! 260: -e 's/syslogd\(.*\)(8)/syslogd\1(1m)/g' \
! 261: -e 's|/var/log/messages|/var/adm/messages|g' \
! 262: -e 's/smartd\(.*\)(8)/smartd\1(1m)/g' > $@
! 263: else
! 264: # For systems that adopts traditional manner
! 265: man_MANS = smartd.conf.5 \
! 266: smartctl.8 \
! 267: smartd.8
! 268: endif
! 269:
! 270: docsdir=$(docdir)
! 271: docs_DATA = AUTHORS \
! 272: CHANGELOG \
! 273: COPYING \
! 274: INSTALL \
! 275: NEWS \
! 276: README \
! 277: TODO \
! 278: WARNINGS \
! 279: smartd.conf
! 280:
! 281: examplesdir=$(exampledir)
! 282: examples_DATA = \
! 283: examplescripts/README
! 284: examples_SCRIPTS = \
! 285: examplescripts/Example1 \
! 286: examplescripts/Example2 \
! 287: examplescripts/Example3 \
! 288: examplescripts/Example4
! 289:
! 290: sysconf_DATA = smartd.conf
! 291:
! 292: # If modified smartd.conf exists install smartd.conf.sample instead
! 293: install-sysconfDATA: $(sysconf_DATA)
! 294: $(mkinstalldirs) $(DESTDIR)$(sysconfdir)
! 295: @s="$(srcdir)/smartd.conf"; \
! 296: f="$(DESTDIR)$(sysconfdir)/smartd.conf$(smartd_suffix)"; \
! 297: if test -z "$(smartd_suffix)" && test -f "$$f"; then \
! 298: if cmp "$$s" "$$f" >/dev/null 2>/dev/null; then :; else \
! 299: echo "************************************************************"; \
! 300: echo "*** $$f preserved"; \
! 301: echo "*** installing smartd.conf.sample instead"; \
! 302: echo "************************************************************"; \
! 303: f="$$f".sample; \
! 304: fi; \
! 305: fi; \
! 306: echo " $(INSTALL_DATA) $$s $$f"; \
! 307: $(INSTALL_DATA) "$$s" "$$f"
! 308:
! 309: # If smartd.conf.sample exists preserve smartd.conf
! 310: uninstall-sysconfDATA:
! 311: @f="$(DESTDIR)$(sysconfdir)/smartd.conf$(smartd_suffix)"; \
! 312: if test -z "$(smartd_suffix)" && test -f "$$f".sample; then \
! 313: echo "************************************************************"; \
! 314: echo "*** $$f preserved"; \
! 315: echo "*** removing smartd.conf.sample instead"; \
! 316: echo "************************************************************"; \
! 317: f="$$f".sample; \
! 318: fi; \
! 319: echo " rm -f $$f"; \
! 320: rm -f "$$f"
! 321:
! 322: EXTRA_DIST = \
! 323: autogen.sh \
! 324: smartd.initd.in \
! 325: smartd.freebsd.initd.in \
! 326: smartd.8.in \
! 327: smartctl.8.in \
! 328: smartd.conf.5.in \
! 329: smartd.conf \
! 330: smartd.service.in \
! 331: update-smart-drivedb.in \
! 332: os_darwin/SMART.in \
! 333: os_darwin/StartupParameters.plist \
! 334: os_darwin/English_Localizable.strings \
! 335: os_win32/installer.nsi \
! 336: os_win32/runcmd.c \
! 337: os_win32/runcmda.exe.manifest \
! 338: os_win32/runcmdu.exe.manifest \
! 339: os_win32/syslogevt.c \
! 340: os_win32/syslogevt.mc \
! 341: os_win32/update-smart-drivedb.nsi \
! 342: os_win32/wbemcli_small.h \
! 343: $(docs_DATA) \
! 344: $(examples_DATA) \
! 345: $(examples_SCRIPTS)
! 346:
! 347: CLEANFILES = \
! 348: smartd.conf.5 \
! 349: smartd.conf.4 \
! 350: smartd.8 \
! 351: smartd.1m \
! 352: smartd.8.html \
! 353: smartd.8.txt \
! 354: smartctl.8 \
! 355: smartctl.1m \
! 356: smartctl.8.html \
! 357: smartctl.8.txt \
! 358: smartd.conf.5.html \
! 359: smartd.conf.5.txt \
! 360: smartd.initd \
! 361: smartd.freebsd.initd \
! 362: smartd.service \
! 363: svnversion.h \
! 364: update-smart-drivedb \
! 365: SMART
! 366:
! 367: # 'make maintainer-clean' also removes files generated by './autogen.sh'
! 368: MAINTAINERCLEANFILES = \
! 369: $(srcdir)/Makefile.in \
! 370: $(srcdir)/aclocal.m4 \
! 371: $(srcdir)/configure \
! 372: $(srcdir)/config.guess \
! 373: $(srcdir)/config.h.in \
! 374: $(srcdir)/config.h.in~ \
! 375: $(srcdir)/config.sub \
! 376: $(srcdir)/depcomp \
! 377: $(srcdir)/install-sh \
! 378: $(srcdir)/missing \
! 379: $(srcdir)/mkinstalldirs
! 380:
! 381: utility.o: svnversion.h
! 382:
! 383: if IS_SVN_BUILD
! 384: # Get version info from SVN
! 385: svnversion.h: CHANGELOG Makefile $(srcdir)/.svn/entries
! 386: echo '/* svnversion.h. Generated by Makefile from svn info. */' > $@
! 387: (cd $(srcdir) \
! 388: && svnversion 2>/dev/null | sed -n 's,^\([0-9].*\),REV "\1",p' \
! 389: && TZ= LC_ALL=C svn info 2>/dev/null \
! 390: | sed -n 'h;s,^.* Date: *\([^ ]*\) .*$$,DATE "\1",p;g;s,^.* Date: *[^ ]* *\([^ ]*\) .*$$,TIME "\1",p') \
! 391: | sed 's,^,#define SMARTMONTOOLS_SVN_,' >> $@
! 392: else
! 393:
! 394: # SVN not available, guess version info from Id strings
! 395: svnversion.h: CHANGELOG Makefile
! 396: echo '/* svnversion.h. Generated by Makefile from Id strings. */' > $@
! 397: (cd $(srcdir) && cat CHANGELOG Makefile.am configure.in smart*.in *.cpp *.h *.s) \
! 398: | sed -n 's,^.*\$$[I][d]: [^ ]* \([0-9][0-9]* [0-9][-0-9]* [0-9][:0-9]*\)[^:0-9][^$$]*\$$.*$$,\1,p' \
! 399: | sort -n -r \
! 400: | sed -n 'h;s,^\([^ ]*\) .*$$,REV "\1",p;g;s,^[^ ]* \([^ ]*\) .*$$,DATE "\1",p;g;s,^[^ ]* [^ ]* \([^ ]*\)$$,TIME "\1",p;q' \
! 401: | sed 's,^,#define SMARTMONTOOLS_SVN_,' >> $@
! 402: endif
! 403:
! 404:
! 405: if ENABLE_DRIVEDB
! 406: drivedb_DATA = drivedb.h
! 407: endif
! 408:
! 409: if ENABLE_SAVESTATES
! 410: # Create $(savestatesdir) only
! 411: savestates_DATA =
! 412: endif
! 413:
! 414: if ENABLE_ATTRIBUTELOG
! 415: # Create $(attributelogdir) only
! 416: attributelog_DATA =
! 417: endif
! 418:
! 419: update-smart-drivedb: update-smart-drivedb.in config.status
! 420: $(SHELL) ./config.status --file=$@
! 421: chmod +x $@
! 422:
! 423:
! 424: if INSTALL_INITSCRIPT
! 425: if OS_DARWIN
! 426: initd_DATA = SMART \
! 427: os_darwin/StartupParameters.plist \
! 428: os_darwin/English_Localizable.strings
! 429:
! 430: initd_install_name = SMART
! 431:
! 432: initd_DATA_install = install-initdDATA-darwin
! 433: initd_DATA_uninstall = uninstall-initdDATA-darwin
! 434:
! 435: SMART : os_darwin/SMART.in
! 436: sed "s|/usr/sbin/|$(sbindir)/|" $< > $@
! 437:
! 438: install-initdDATA-darwin: $(initd_DATA)
! 439: $(mkinstalldirs) $(DESTDIR)$(initddir)
! 440: $(mkinstalldirs) $(DESTDIR)$(initddir)/SMART
! 441: $(mkinstalldirs) $(DESTDIR)$(initddir)/SMART/Resources
! 442: $(INSTALL_SCRIPT) $(top_builddir)/SMART $(DESTDIR)$(initddir)/SMART
! 443: $(INSTALL_DATA) $(srcdir)/os_darwin/StartupParameters.plist \
! 444: $(DESTDIR)$(initddir)/SMART/StartupParameters.plist
! 445: for i in English ; do \
! 446: RDIR=$(DESTDIR)$(initddir)/SMART/Resources/$${i}.lproj ; \
! 447: $(mkinstalldirs) $$RDIR ;\
! 448: $(INSTALL_DATA) $(srcdir)/os_darwin/$${i}_Localizable.strings \
! 449: $$RDIR/Localizable.strings ; \
! 450: done
! 451:
! 452: uninstall-initdDATA-darwin:
! 453: rm -rf $(DESTDIR)$(initddir)/$(initd_install_name)
! 454:
! 455: else
! 456:
! 457: initd_DATA = @initdfile@
! 458:
! 459: @initdfile@: $(srcdir)/@initdfile@.in Makefile
! 460: sed "s|/usr/local/sbin/|$(sbindir)/|g" $(srcdir)/@initdfile@.in > $@
! 461:
! 462: initd_install_name = smartd$(smartd_suffix)
! 463:
! 464: initd_DATA_install = install-initdDATA-generic
! 465: initd_DATA_uninstall = uninstall-initdDATA-generic
! 466:
! 467: install-initdDATA-generic: $(initd_DATA)
! 468: $(mkinstalldirs) $(DESTDIR)$(initddir)
! 469: $(INSTALL_SCRIPT) $(top_builddir)/@initdfile@ $(DESTDIR)$(initddir)/smartd$(smartd_suffix)
! 470:
! 471:
! 472: uninstall-initdDATA-generic:
! 473: rm -rf $(DESTDIR)$(initddir)/$(initd_install_name)
! 474: endif
! 475: else
! 476:
! 477: initd_DATA_install = install-initdDATA-null
! 478: initd_DATA_uninstall = uninstall-initdDATA-null
! 479:
! 480: install-initdDATA-null:
! 481: uninstall-initdDATA-null:
! 482: endif
! 483:
! 484: install-initdDATA : $(initd_DATA_install)
! 485:
! 486: uninstall-initdDATA: $(initd_DATA_uninstall)
! 487:
! 488: if INSTALL_SYSTEMDUNIT
! 489: systemdsystemunit_DATA = smartd.service
! 490: endif
! 491:
! 492: smartd.service: smartd.service.in Makefile
! 493: sed "s|/usr/local/sbin/smartd|$(sbindir)/smartd|g; \
! 494: s|/usr/local/etc/sysconfig/smartmontools|$(sysconfdir)/sysconfig/smartmontools|g" \
! 495: $(srcdir)/smartd.service.in > $@
! 496:
! 497: if ENABLE_CAPABILITIES
! 498: MAN_CAPABILITIES = cat
! 499: else
! 500: MAN_CAPABILITIES = sed '/^\.\\" %IF ENABLE_CAPABILITIES/,/^\.\\" %ENDIF ENABLE_CAPABILITIES/ s,^,.\\"\# ,'
! 501: endif
! 502:
! 503: if ENABLE_DRIVEDB
! 504: MAN_DRIVEDB = sed "s|/usr/local/share/smartmontools/drivedb\\.h|$(drivedbdir)/drivedb.h|g"
! 505: else
! 506: MAN_DRIVEDB = sed '/^\.\\" %IF ENABLE_DRIVEDB/,/^\.\\" %ENDIF ENABLE_DRIVEDB/ s,^,.\\"\# ,'
! 507: endif
! 508:
! 509: if ENABLE_SAVESTATES
! 510: MAN_SAVESTATES = sed "s|/usr/local/var/lib/smartmontools/smartd\\.|$(savestates)|g"
! 511: else
! 512: MAN_SAVESTATES = sed '/^\.\\" %IF ENABLE_SAVESTATES/,/^\.\\" %ENDIF ENABLE_SAVESTATES/ s,^,.\\"\# ,'
! 513: endif
! 514:
! 515: if ENABLE_ATTRIBUTELOG
! 516: MAN_ATTRIBUTELOG = sed "s|/usr/local/var/lib/smartmontools/attrlog\\.|$(attributelog)|g"
! 517: else
! 518: MAN_ATTRIBUTELOG = sed '/^\.\\" %IF ENABLE_ATTRIBUTELOG/,/^\.\\" %ENDIF ENABLE_ATTRIBUTELOG/ s,^,.\\"\# ,'
! 519: endif
! 520:
! 521: MAN_FILTER = \
! 522: sed "s|CURRENT_SVN_VERSION|$(releaseversion)|g; \
! 523: s|CURRENT_SVN_DATE|`sed -n 's,^.*DATE[^"]*"\([^"]*\)".*$$,\1,p' svnversion.h`|g; \
! 524: s|CURRENT_SVN_REV|`sed -n 's,^.*REV[^"]*"\([^"]*\)".*$$,r\1,p' svnversion.h`|g; \
! 525: s|/usr/local/share/man/|$(mandir)/|g; \
! 526: s|/usr/local/sbin/|$(sbindir)/|g; \
! 527: s|/usr/local/etc/rc\\.d/init.d/|$(initddir)/|g; \
! 528: s|/usr/local/share/doc/smartmontools/examplescripts/|!exampledir!|g; \
! 529: s|/usr/local/share/doc/smartmontools/|$(docsdir)/|g; \
! 530: s|!exampledir!|$(exampledir)/|g; \
! 531: s|/usr/local/etc/smartd\\.conf|$(sysconfdir)/smartd.conf|g; \
! 532: s|/usr/local/etc/smart_drivedb\\.h|$(sysconfdir)/smart_drivedb\\.h|g" | \
! 533: $(MAN_ATTRIBUTELOG) | \
! 534: $(MAN_CAPABILITIES) | \
! 535: $(MAN_DRIVEDB) | \
! 536: $(MAN_SAVESTATES) | \
! 537: if test -n '$(os_man_filter)'; then \
! 538: sed -e 's,OS_MAN_FILTER,$(os_man_filter),g' \
! 539: -e '/^\.\\" %IF NOT OS .*$(os_man_filter)/,/^.\\" %ENDIF NOT OS .*$(os_man_filter)/ s,^,.\\"\# ,' \
! 540: -e '/^\.\\" %IF OS .*$(os_man_filter)/,/^\.\\" %ENDIF OS .*$(os_man_filter)/ s,^,!!,' \
! 541: -e '/^\.\\" %IF OS ./,/^\.\\" %ENDIF OS ./ s,^,.\\"\# ,' \
! 542: -e '/^!*\.\\" %IF NOT OS ./,/^!*\.\\" %ENDIF NOT OS ./ s,^,!!,' \
! 543: -e '/^!!/{ s,^!!!*,,; s,^\.\\"! \(.*\)$$,\1 \\"\#, ;}' ; \
! 544: else \
! 545: cat; \
! 546: fi
! 547:
! 548: # Implicit rule 'smart%: smart%.in ...' does not work with BSD make
! 549: smartctl.8: smartctl.8.in Makefile svnversion.h
! 550: cat $(srcdir)/smartctl.8.in | $(MAN_FILTER) > $@
! 551:
! 552: smartd.8: smartd.8.in Makefile svnversion.h
! 553: cat $(srcdir)/smartd.8.in | $(MAN_FILTER) > $@
! 554:
! 555: smartd.conf.5: smartd.conf.5.in Makefile svnversion.h
! 556: cat $(srcdir)/smartd.conf.5.in | $(MAN_FILTER) > $@
! 557:
! 558: # Commands to convert man pages into .html and .txt
! 559: # TODO: configure
! 560: MAN2HTML = man2html
! 561: #MAN2HTML = groff -man -Thtml
! 562: MAN2TXT = groff -man -Tascii -P'-bcou'
! 563:
! 564: # Remove HTTP header and fix links in man2html output
! 565: FIXHTML = sed '1s,^Content-type.*,,' \
! 566: | sed 's,<A HREF="http://[-a-z/]*/man2html?\([1-8]\)+\(smart[cd][.a-z]*\)">,<A HREF="\2.\1.html">,g' \
! 567: | sed 's,<A HREF="http://[-a-z/]*/man2html">,<A HREF=".">,g' \
! 568: | sed 's,<A HREF="http://[-a-z/]*/man2html?[^"]*">\([^<]*\)</A>,\1,g' \
! 569: | sed 's,<A HREF="mailto:[^s][^m][^a][^"]*">\([^<]*\)</A>,\1,g'
! 570:
! 571: # Convert man pages into .html and .txt
! 572:
! 573: htmlman: smartctl.8.html smartd.8.html smartd.conf.5.html
! 574:
! 575: txtman: smartctl.8.txt smartd.8.txt smartd.conf.5.txt
! 576:
! 577: if OS_WIN32_MINGW
! 578:
! 579: %.5.html: %.5
! 580: $(DOS2UNIX) < $< | $(MAN2HTML) | $(FIXHTML) > $@
! 581:
! 582: %.8.html: %.8
! 583: $(DOS2UNIX) < $< | $(MAN2HTML) | $(FIXHTML) > $@
! 584: else
! 585:
! 586: %.5.html: %.5
! 587: $(MAN2HTML) $< | $(FIXHTML) > $@
! 588:
! 589: %.8.html: %.8
! 590: $(MAN2HTML) $< | $(FIXHTML) > $@
! 591: endif
! 592:
! 593: %.5.txt: %.5
! 594: $(MAN2TXT) $< > $@
! 595:
! 596: %.8.txt: %.8
! 597: $(MAN2TXT) $< > $@
! 598:
! 599:
! 600: # Check drive database syntax
! 601: check:
! 602: @if ./smartctl -B $(srcdir)/drivedb.h -P showall >/dev/null; then \
! 603: echo "$(srcdir)/drivedb.h: OK"; \
! 604: else \
! 605: echo "$(srcdir)/drivedb.h: Syntax check failed"; exit 1; \
! 606: fi
! 607:
! 608:
! 609: if OS_WIN32_MINGW
! 610: # Definitions for Windows distribution
! 611:
! 612: if OS_WIN64
! 613: win_bits = 64
! 614: else
! 615: win_bits = 32
! 616: endif
! 617:
! 618: distdir_win32 = $(PACKAGE)-$(VERSION).win$(win_bits)
! 619: distzip_win32 = $(PACKAGE)-$(VERSION).win$(win_bits).zip
! 620: distinst_win32 = $(PACKAGE)-$(VERSION).win$(win_bits)-setup.exe
! 621:
! 622: exedir_win32 = $(distdir_win32)/bin
! 623: docdir_win32 = $(distdir_win32)/doc
! 624:
! 625: EXEFILES_WIN32 = \
! 626: $(exedir_win32)/smartctl.exe \
! 627: $(exedir_win32)/smartctl-nc.exe \
! 628: $(exedir_win32)/smartd.exe \
! 629: $(exedir_win32)/runcmda.exe \
! 630: $(exedir_win32)/runcmdu.exe
! 631:
! 632: if OS_WIN32_WINDMC
! 633: EXEFILES_WIN32 += \
! 634: $(exedir_win32)/syslogevt.exe
! 635: endif
! 636:
! 637: if ENABLE_DRIVEDB
! 638: if OS_WIN32_NSIS
! 639: EXEFILES_WIN32 += \
! 640: $(exedir_win32)/update-smart-drivedb.exe
! 641: endif
! 642: endif
! 643:
! 644: FILES_WIN32 = \
! 645: $(EXEFILES_WIN32) \
! 646: $(docdir_win32)/AUTHORS.txt \
! 647: $(docdir_win32)/CHANGELOG.txt \
! 648: $(docdir_win32)/COPYING.txt \
! 649: $(docdir_win32)/INSTALL.txt \
! 650: $(docdir_win32)/NEWS.txt \
! 651: $(docdir_win32)/README.txt \
! 652: $(docdir_win32)/TODO.txt \
! 653: $(docdir_win32)/WARNINGS.txt \
! 654: $(docdir_win32)/checksums.txt \
! 655: $(docdir_win32)/smartd.conf \
! 656: $(docdir_win32)/smartctl.8.html \
! 657: $(docdir_win32)/smartctl.8.txt \
! 658: $(docdir_win32)/smartd.8.html \
! 659: $(docdir_win32)/smartd.8.txt \
! 660: $(docdir_win32)/smartd.conf.5.html \
! 661: $(docdir_win32)/smartd.conf.5.txt \
! 662: $(exedir_win32)/runcmda.exe.manifest \
! 663: $(exedir_win32)/runcmdu.exe.manifest
! 664:
! 665: if ENABLE_DRIVEDB
! 666: FILES_WIN32 += \
! 667: $(exedir_win32)/drivedb.h
! 668: endif
! 669:
! 670: CLEANFILES += \
! 671: $(FILES_WIN32) \
! 672: runcmdu.exe \
! 673: smartctl-nc.exe smartctl-nc.exe.tmp \
! 674: syslogevt.exe syslogevt.h syslogevt.o \
! 675: syslogevt.res.o syslogevt.rc syslogevt_*.bin \
! 676: update-smart-drivedb.exe \
! 677: distdir.mkdir
! 678:
! 679: # Textfile converter from package cygutils or tofrodos
! 680: # Note: Only use without options to be compatible with both packages
! 681: UNIX2DOS = unix2dos
! 682: DOS2UNIX = dos2unix
! 683:
! 684: # Build Windows distribution
! 685:
! 686: dist-win32: $(distzip_win32)
! 687:
! 688: install-win32: $(distinst_win32)
! 689: ./$(distinst_win32)
! 690:
! 691: installer-win32: $(distinst_win32)
! 692:
! 693: distdir-win32: distdir.mkdir $(FILES_WIN32)
! 694:
! 695: $(distzip_win32): distdir.mkdir $(FILES_WIN32)
! 696: @rm -fv $(distzip_win32)
! 697: cd $(distdir_win32) && zip -9 ../$(distzip_win32) bin/* doc/*
! 698: md5sum $@ > $@.md5
! 699: sha1sum $@ > $@.sha1
! 700: sha256sum $@ > $@.sha256
! 701:
! 702: if OS_WIN32_NSIS
! 703: # Build NSIS installer
! 704: # Note: Only option character '-' is also compatible with Linux version of makensis
! 705: $(distinst_win32): os_win32/installer.nsi distdir.mkdir $(FILES_WIN32)
! 706: @date=`sed -n 's,^.*DATE[^"]*"\([^"]*\)".*$$,\1,p' svnversion.h`; \
! 707: rev=`sed -n 's,^.*REV[^"]*"\([^"]*\)".*$$,r\1,p' svnversion.h`; \
! 708: verstr="$(PACKAGE_VERSION) $$date $$rev "$(BUILD_INFO); \
! 709: echo "'$(MAKENSIS)' -V2 -NOCD -DINPDIR=$(distdir_win32) -DOUTFILE=$@ -DVERSTR='$$verstr' $<"; \
! 710: '$(MAKENSIS)' -V2 -NOCD -DINPDIR=$(distdir_win32) -DOUTFILE=$@ -DVERSTR="$$verstr" $<
! 711: md5sum $@ > $@.md5
! 712: sha1sum $@ > $@.sha1
! 713: sha256sum $@ > $@.sha256
! 714:
! 715: # Build drivedb.h update tool
! 716: update-smart-drivedb.exe: os_win32/update-smart-drivedb.nsi
! 717: "$(MAKENSIS)" -V2 -NOCD -DBRANCH=$(DRIVEDB_BRANCH) $<
! 718:
! 719: else
! 720: $(distinst_win32):
! 721: @echo "makensis: command not found. Please install NSIS from http://nsis.sourceforge.net/" 1>&2
! 722: @exit 1
! 723: endif
! 724:
! 725: cleandist-win32:
! 726: rm -rf $(distdir_win32) distdir.mkdir
! 727:
! 728: distdir.mkdir:
! 729: @test -d $(exedir_win32) || mkdir -pv $(exedir_win32)
! 730: @test -d $(docdir_win32) || mkdir -pv $(docdir_win32)
! 731: touch $@
! 732:
! 733: $(exedir_win32)/%.exe: %.exe
! 734: cp -p $< $@
! 735: if test -n '$(STRIP)'; then $(STRIP) -s $@; else strip -s $@; fi
! 736: touch -r $< $@
! 737:
! 738: # strip would break NSIS integrity check
! 739: $(exedir_win32)/update-smart-drivedb.exe: update-smart-drivedb.exe
! 740: cp -p $< $@
! 741:
! 742: # runcmd?.exe only differ by .exe.manifest files
! 743: $(exedir_win32)/runcmda.exe: $(exedir_win32)/runcmdu.exe
! 744: cp -p $< $@
! 745:
! 746: $(exedir_win32)/%.h: $(srcdir)/%.h
! 747: $(UNIX2DOS) < $< > $@
! 748: touch -r $< $@
! 749:
! 750: $(exedir_win32)/%.exe.manifest: $(srcdir)/os_win32/%.exe.manifest
! 751: $(UNIX2DOS) < $< > $@
! 752: touch -r $< $@
! 753:
! 754: $(docdir_win32)/%.html: %.html
! 755: $(UNIX2DOS) < $< > $@
! 756: touch -r $< $@
! 757:
! 758: $(docdir_win32)/%.txt: %.txt
! 759: $(UNIX2DOS) < $< > $@
! 760: touch -r $< $@
! 761:
! 762: $(docdir_win32)/%.txt: $(srcdir)/%
! 763: $(UNIX2DOS) < $< > $@
! 764: touch -r $< $@
! 765:
! 766: $(docdir_win32)/%.conf: $(srcdir)/%.conf
! 767: $(UNIX2DOS) < $< > $@
! 768: touch -r $< $@
! 769:
! 770: $(docdir_win32)/checksums.txt: $(EXEFILES_WIN32)
! 771: (cd $(exedir_win32) && md5sum *.exe && sha1sum *.exe && sha256sum *.exe) \
! 772: | $(UNIX2DOS) > $@
! 773:
! 774: # Build non-console version of smartctl for GSmartControl.
! 775: # The script below changes the word at offset 220 (Subsystem) from 3
! 776: # (Console) to 2 (GUI) in a copy of smartctl.exe.
! 777: # This will be changed when a tool (like 'editbin') is available in
! 778: # the Cygwin distribution
! 779: smartctl-nc.exe: smartctl.exe
! 780: @rm -f $@
! 781: cp -p smartctl.exe $@.tmp
! 782: @if test `od -A n -j 220 -N 2 -d $@.tmp` -eq 3; then :; \
! 783: else echo "invalid EXE header"; exit 1; fi
! 784: @echo "editbin /subsystem:windows $@.tmp"
! 785: @echo -ne '\002' | dd bs=1 seek=220 count=1 conv=notrunc of=$@.tmp 2>/dev/null
! 786: @if test `od -A n -j 220 -N 2 -d $@.tmp` -eq 2; then :; \
! 787: else echo "EXE patch failed"; exit 1; fi
! 788: mv -f $@.tmp $@
! 789:
! 790: # Build runcmd?.exe
! 791: runcmdu.exe: os_win32/runcmd.c
! 792: $(CC) -Os -o $@ $<
! 793:
! 794: if OS_WIN32_WINDMC
! 795: # Build syslogevt.exe event message file tool
! 796:
! 797: syslogevt.exe: syslogevt.o syslogevt.res.o
! 798: $(LINK) $^
! 799:
! 800: syslogevt.o: os_win32/syslogevt.c syslogevt.rc
! 801: $(CC) -c -I. -Os -o $@ $<
! 802:
! 803: syslogevt.res.o: syslogevt.rc
! 804: $(WINDRES) $< $@
! 805:
! 806: syslogevt.rc: os_win32/syslogevt.mc
! 807: $(WINDMC) -b $<
! 808: endif
! 809:
! 810: # Build {config,svnversion}_vc10.h for MSVC10 from MinGW {config,svnversion}.h
! 811:
! 812: config-vc10: $(srcdir)/os_win32/config_vc10.h $(srcdir)/os_win32/svnversion_vc10.h
! 813:
! 814: $(srcdir)/os_win32/config_vc10.h: config.h Makefile
! 815: sed -e '1i/* config_vc10.h. Generated from config.h by Makefile. */' \
! 816: -e 's,^#define HAVE_\(ATTR_PACKED\|INTTYPES_H\|[DK_]*NTDDDISK_H\|STRINGS_H\|STRTOULL\|UNISTD_H\|WORKING_SNPRINTF\) 1$$,/* #undef HAVE_\1 */,' \
! 817: -e 's,^\(#define SMARTMONTOOLS_BUILD_HOST "[^-]*\)[^"]*,\1-pc-w32vc10,' $< > $@
! 818:
! 819: $(srcdir)/os_win32/svnversion_vc10.h: svnversion.h
! 820: cp $< $@
! 821:
! 822: endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>