THRIFT-1735 integrate tutorial into regular build
- cpp support
- cleanup stuff


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1401818 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/configure.ac b/configure.ac
index de47645..50e6896 100755
--- a/configure.ac
+++ b/configure.ac
@@ -612,6 +612,7 @@
   test/py.twisted/Makefile
   test/rb/Makefile
   tutorial/Makefile
+  tutorial/cpp/Makefile
   tutorial/java/Makefile
   tutorial/js/Makefile
 ])
diff --git a/tutorial/Makefile.am b/tutorial/Makefile.am
index a6ff7c5..d82a056 100755
--- a/tutorial/Makefile.am
+++ b/tutorial/Makefile.am
@@ -20,7 +20,7 @@
 SUBDIRS = 
 
 if WITH_CPP
-#SUBDIRS += cpp
+SUBDIRS += cpp
 endif
 
 if WITH_JAVA
@@ -52,5 +52,5 @@
 #
 # generate html for ThriftTest.thrift
 #
-check-local:
+all-local:
 	$(top_builddir)/compiler/cpp/thrift --gen html -r $(top_srcdir)/tutorial/tutorial.thrift
diff --git a/tutorial/cpp/Makefile b/tutorial/cpp/Makefile
deleted file mode 100644
index e834dee..0000000
--- a/tutorial/cpp/Makefile
+++ /dev/null
@@ -1,35 +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.
-#
-
-BOOST_DIR = /usr/local/boost/include/boost-1_33_1/
-THRIFT_DIR = /usr/local/include/thrift
-LIB_DIR = /usr/local/lib
-
-GEN_SRC = ../gen-cpp/SharedService.cpp ../gen-cpp/shared_types.cpp ../gen-cpp/tutorial_types.cpp ../gen-cpp/Calculator.cpp
-
-default: server client
-
-server: CppServer.cpp
-	g++ -o CppServer -I${THRIFT_DIR} -I${BOOST_DIR}  -I../gen-cpp -L${LIB_DIR} -lthrift CppServer.cpp ${GEN_SRC}
-
-client: CppClient.cpp
-	g++ -o CppClient -I${THRIFT_DIR} -I${BOOST_DIR}  -I../gen-cpp -L${LIB_DIR} -lthrift CppClient.cpp ${GEN_SRC}
-
-clean:
-	$(RM) -r CppClient CppServer
diff --git a/tutorial/cpp/Makefile.am b/tutorial/cpp/Makefile.am
new file mode 100755
index 0000000..0157b8d
--- /dev/null
+++ b/tutorial/cpp/Makefile.am
@@ -0,0 +1,82 @@
+#
+# 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.
+#
+noinst_LTLIBRARIES = libtutorialgencpp.la
+nodist_libtutorialgencpp_la_SOURCES = \
+	gen-cpp/Calculator.cpp \
+	gen-cpp/Calculator.h \
+	gen-cpp/SharedService.cpp \
+	gen-cpp/SharedService.h \
+	gen-cpp/shared_constants.cpp \
+	gen-cpp/shared_constants.h \
+	gen-cpp/shared_types.cpp \
+	gen-cpp/shared_types.h \
+	gen-cpp/tutorial_constants.cpp \
+	gen-cpp/tutorial_constants.h \
+	gen-cpp/tutorial_types.cpp \
+	gen-cpp/tutorial_types.h
+
+
+
+libtutorialgencpp_la_LIBADD = $(top_builddir)/lib/cpp/libthrift.la
+
+noinst_PROGRAMS = \
+	TutorialServer \
+	TutorialClient
+
+TutorialServer_SOURCES = \
+	CppServer.cpp
+
+TutorialServer_LDADD = \
+	libtutorialgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la
+
+TutorialClient_SOURCES = \
+	CppClient.cpp
+
+TutorialClient_LDADD = \
+	libtutorialgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la
+
+#
+# Common thrift code generation rules
+#
+THRIFT = $(top_builddir)/compiler/cpp/thrift
+
+gen-cpp/Calculator.cpp gen-cpp/tutorial_types.cpp gen-cpp/tutorial_constants.cpp: $(top_srcdir)/tutorial/tutorial.thrift
+	$(THRIFT) --gen cpp -r $<
+
+INCLUDES = \
+	-I$(top_srcdir)/lib/cpp/src -Igen-cpp
+
+AM_CPPFLAGS = $(BOOST_CPPFLAGS) $(LIBEVENT_CPPFLAGS)
+AM_CXXFLAGS = -Wall
+AM_LDFLAGS = $(BOOST_LDFLAGS) $(LIBEVENT_LDFLAGS)
+
+clean-local:
+	$(RM) -r gen-cpp
+
+tutorialserver: all
+	./TutorialServer
+
+tutorialclient: all
+	./TutorialClient
+
+EXTRA_DIST = \
+	CppClient.cpp \
+	CppServer.cpp
diff --git a/tutorial/java/Makefile.am b/tutorial/java/Makefile.am
index 16ae399..3b2174a 100755
--- a/tutorial/java/Makefile.am
+++ b/tutorial/java/Makefile.am
@@ -24,6 +24,9 @@
 	ANT=$(ANT) ; if test -z "$$ANT" ; then ANT=: ; fi ; \
 	$$ANT $(ANT_FLAGS) clean
 
+all-local:
+	$(ANT) $(ANT_FLAGS) compile
+
 check-local: all
 	$(ANT) $(ANT_FLAGS) test
 
diff --git a/tutorial/java/build.xml b/tutorial/java/build.xml
index 28c3bd6..eceeca7 100644
--- a/tutorial/java/build.xml
+++ b/tutorial/java/build.xml
@@ -106,6 +106,7 @@
 
   <target name="clean">
     <delete dir="${build}" />
+    <delete dir="${gen}"/>
     <delete file="tutorial.jar" />
   </target>
 
diff --git a/tutorial/js/Makefile.am b/tutorial/js/Makefile.am
index 1f57f20..c174500 100755
--- a/tutorial/js/Makefile.am
+++ b/tutorial/js/Makefile.am
@@ -24,6 +24,9 @@
 	ANT=$(ANT) ; if test -z "$$ANT" ; then ANT=: ; fi ; \
 	$$ANT $(ANT_FLAGS) clean
 
+all-local:
+	$(ANT) $(ANT_FLAGS) compile
+
 check-local: all
 	$(ANT) $(ANT_FLAGS) test
 
diff --git a/tutorial/js/build.xml b/tutorial/js/build.xml
index 348f229..73d535d 100644
--- a/tutorial/js/build.xml
+++ b/tutorial/js/build.xml
@@ -83,6 +83,7 @@
   
   <target name="clean">
     <delete dir="${build}" />
+    <delete dir="gen-js"/>
     <delete file="tutorial-js.jar" />
   </target>