-lib_SOURCES += fnmatch_.h
-EXTRA_DIST += fnmatch_loop.c
-DISTCLEANFILES += fnmatch.h
+BUILT_SOURCES += $(FNMATCH_H)
+
+# We need the following in order to create <fnmatch.h> when the system
+# doesn't have one that supports the required API.
+fnmatch.h: fnmatch_.h
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/fnmatch_.h; \
+ } > $@-t
+ mv -f $@-t $@
+MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t