THRIFT-3666 Build D tutorial as part of Autotools build
Client: Build (D)
Patch: Nobuaki Sukegawa

This closes #893
diff --git a/.gitignore b/.gitignore
index 6dab2ee..15585f9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -280,6 +280,9 @@
 /tutorial/csharp/CsharpServer/bin
 /tutorial/csharp/CsharpClient/obj
 /tutorial/csharp/CsharpClient/bin
+/tutorial/d/async_client
+/tutorial/d/client
+/tutorial/d/server
 /tutorial/dart/**/.packages
 /tutorial/dart/**/packages
 /tutorial/dart/**/.pub/
diff --git a/configure.ac b/configure.ac
index 44b1c2b..53ada3a 100755
--- a/configure.ac
+++ b/configure.ac
@@ -763,6 +763,7 @@
   tutorial/Makefile
   tutorial/c_glib/Makefile
   tutorial/cpp/Makefile
+  tutorial/d/Makefile
   tutorial/go/Makefile
   tutorial/haxe/Makefile
   tutorial/hs/Makefile
diff --git a/tutorial/Makefile.am b/tutorial/Makefile.am
index 37addda..5865c54 100755
--- a/tutorial/Makefile.am
+++ b/tutorial/Makefile.am
@@ -31,6 +31,10 @@
 SUBDIRS += cpp
 endif
 
+if WITH_D
+SUBDIRS += d
+endif
+
 if WITH_JAVA
 SUBDIRS += java
 SUBDIRS += js
diff --git a/tutorial/d/Makefile b/tutorial/d/Makefile
deleted file mode 100644
index fcee9af..0000000
--- a/tutorial/d/Makefile
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-#
-
-LIB_D_DIR = ../../lib/d
-
-GEN_SRC = ../gen-d/share/SharedService.d ../gen-d/share/shared_types.d \
-	../gen-d/tutorial/tutorial_types.d ../gen-d/tutorial/Calculator.d
-
-default: server client async_client
-
-server: server.d
-	dmd -I${LIB_D_DIR}/src -L-L${LIB_D_DIR} -L-lthriftd server.d ${GEN_SRC}
-
-client: client.d
-	dmd -I${LIB_D_DIR}/src -L-L${LIB_D_DIR} -L-lthriftd client.d ${GEN_SRC}
-
-async_client: async_client.d
-	dmd -I${LIB_D_DIR}/src -L-L${LIB_D_DIR} -L-lthriftd-event -L-lthriftd -L-levent async_client.d ${GEN_SRC}
-
-clean:
-	$(RM) -f server client async_client
diff --git a/tutorial/d/Makefile.am b/tutorial/d/Makefile.am
new file mode 100644
index 0000000..d8c8b29
--- /dev/null
+++ b/tutorial/d/Makefile.am
@@ -0,0 +1,46 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+LIB_D_DIR = $(top_srcdir)/lib/d
+
+GEN_SRC = gen-d/share/SharedService.d gen-d/share/shared_types.d \
+	gen-d/tutorial/tutorial_types.d gen-d/tutorial/Calculator.d
+
+$(GEN_SRC): $(top_srcdir)/tutorial/tutorial.thrift
+	$(top_builddir)/compiler/cpp/thrift --gen d -r $<
+
+server: server.d $(GEN_SRC)
+	$(DMD) -I${LIB_D_DIR}/src -L-L${LIB_D_DIR} -L-lthriftd server.d ${GEN_SRC}
+
+client: client.d $(GEN_SRC)
+	$(DMD) -I${LIB_D_DIR}/src -L-L${LIB_D_DIR} -L-lthriftd client.d ${GEN_SRC}
+
+PROGS = server client
+
+if WITH_D_EVENT_TESTS
+async_client: async_client.d $(GEN_SRC)
+	$(DMD) -I${LIB_D_DIR}/src -L-L${LIB_D_DIR} -L-lthriftd-event -L-lthriftd -L-levent async_client.d ${GEN_SRC}
+
+PROGS += async_client
+endif
+
+all-local: $(PROGS)
+
+clean:
+	$(RM) -f $(PROGS)