diff --git a/smartmontools/CHANGELOG b/smartmontools/CHANGELOG
index 289bd136b8599bfb42f706662892f4a935a7a9d8..630bcd314dea6944925af3d85ed7b6056cd9fc00 100644
--- a/smartmontools/CHANGELOG
+++ b/smartmontools/CHANGELOG
@@ -43,6 +43,9 @@ NOTES FOR FUTURE RELEASES: see TODO file.
 
 <DEVELOPERS: ADDITIONS TO THE CHANGE LOG GO JUST BELOW HERE, PLEASE>
 
+  [CF] Makefile.am: Use a separate build rule for each man page to
+       avoid compatibility problems with BSD make.
+
   [AS] drivedb.h updates:
        - Fujitsu MHZ2 BK series
 
diff --git a/smartmontools/Makefile.am b/smartmontools/Makefile.am
index ed3667a0011f99b38f02f70355962a86eb9ec643..a832cc813a9aa3de5980857b86f324c00b8ce3aa 100644
--- a/smartmontools/Makefile.am
+++ b/smartmontools/Makefile.am
@@ -444,15 +444,15 @@ MAN_FILTER = \
     $(MAN_SAVESTATES) | \
     $(MAN_ATTRIBUTELOG)
 
-if OS_FREEBSD
-.for file in $(man_MANS)
-${file}: $(srcdir)/${file}.in Makefile svnversion.h
-	cat ${.ALLSRC:M*.in} | $(MAN_FILTER) > $@
-.endfor
-else
-smart%: $(srcdir)/smart%.in Makefile svnversion.h
-	cat $< | $(MAN_FILTER) > $@
-endif
+# Implicit rule 'smart%: smart%.in ...' does not work with BSD make
+smartctl.8: smartctl.8.in Makefile svnversion.h
+	cat $(srcdir)/smartctl.8.in | $(MAN_FILTER) > $@
+
+smartd.8: smartd.8.in Makefile svnversion.h
+	cat $(srcdir)/smartd.8.in | $(MAN_FILTER) > $@
+
+smartd.conf.5: smartd.conf.5.in Makefile svnversion.h
+	cat $(srcdir)/smartd.conf.5.in | $(MAN_FILTER) > $@
 
 # Commands to convert man pages into .html and .txt
 # TODO: configure