build: Build the DirectWrite sources if requested

This adds to the autotools build system so that the (experimental)
DirectWrite support for HarfBuzz is built (and dist'ed).
diff --git a/configure.ac b/configure.ac
index d14e0fc..f76b4fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -356,6 +356,30 @@
 
 dnl ===========================================================================
 
+AC_ARG_WITH(directwrite,
+	[AS_HELP_STRING([--with-directwrite=@<:@yes/no/auto@:>@],
+			[Use the DirectWrite library (experimental) @<:@default=no@:>@])],,
+	[with_directwrite=no])
+have_directwrite=false
+AC_LANG_PUSH([C++])
+if test "x$with_directwrite" = "xyes" -o "x$with_directwrite" = "xauto"; then
+	AC_CHECK_HEADERS(dwrite.h, have_directwrite=true)
+fi
+AC_LANG_POP([C++])
+if test "x$with_directwrite" = "xyes" -a "x$have_directwrite" != "xtrue"; then
+	AC_MSG_ERROR([directwrite support requested but not found])
+fi
+if $have_directwrite; then
+	DIRECTWRITE_CXXFLAGS=
+	DIRECTWRITE_LIBS="-ldwrite"
+	AC_SUBST(DIRECTWRITE_CXXFLAGS)
+	AC_SUBST(DIRECTWRITE_LIBS)
+	AC_DEFINE(HAVE_DIRECTWRITE, 1, [Have DirectWrite library])
+fi
+AM_CONDITIONAL(HAVE_DIRECTWRITE, $have_directwrite)
+
+dnl ===========================================================================
+
 AC_ARG_WITH(coretext,
 	[AS_HELP_STRING([--with-coretext=@<:@yes/no/auto@:>@],
 			[Use CoreText @<:@default=no@:>@])],,
@@ -472,6 +496,7 @@
 Platform shapers (not normally needed):
 	CoreText:		${have_coretext}
 	Uniscribe:		${have_uniscribe}
+	DirectWrite:		${have_directwrite}
 
 Other features:
 	Documentation:		${have_gtk_doc}
diff --git a/src/Makefile.am b/src/Makefile.am
index 9b0affa..bb085ad 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -78,6 +78,13 @@
 HBHEADERS += $(HB_UNISCRIBE_headers)
 endif
 
+if HAVE_DIRECTWRITE
+HBCFLAGS += $(DIRECTWRITE_CXXFLAGS)
+HBNONPCLIBS += $(DIRECTWRITE_LIBS)
+HBSOURCES += $(HB_DIRECTWRITE_sources)
+HBHEADERS += $(HB_DIRECTWRITE_headers)
+endif
+
 if HAVE_CORETEXT
 HBCFLAGS += $(CORETEXT_CFLAGS)
 HBNONPCLIBS += $(CORETEXT_LIBS)
diff --git a/src/Makefile.sources b/src/Makefile.sources
index 769b69dc..171c513 100644
--- a/src/Makefile.sources
+++ b/src/Makefile.sources
@@ -130,6 +130,9 @@
 HB_CORETEXT_sources = hb-coretext.cc
 HB_CORETEXT_headers = hb-coretext.h
 
+HB_DIRECTWRITE_sources = hb-directwrite.cc
+HB_DIRECTWRITE_headers = hb-directwrite.h
+
 HB_UNISCRIBE_sources = hb-uniscribe.cc
 HB_UNISCRIBE_headers = hb-uniscribe.h