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