THRIFT-1735 integrate tutorial into regular build
authorRoger Meier <roger@apache.org>
Wed, 24 Oct 2012 18:40:06 +0000 (18:40 +0000)
committerRoger Meier <roger@apache.org>
Wed, 24 Oct 2012 18:40:06 +0000 (18:40 +0000)
- cpp support
- cleanup stuff

git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1401818 13f79535-47bb-0310-9956-ffa450edef68

configure.ac
tutorial/Makefile.am
tutorial/cpp/Makefile [deleted file]
tutorial/cpp/Makefile.am [new file with mode: 0755]
tutorial/java/Makefile.am
tutorial/java/build.xml
tutorial/js/Makefile.am
tutorial/js/build.xml

index de47645..50e6896 100755 (executable)
@@ -612,6 +612,7 @@ AC_CONFIG_FILES([
   test/py.twisted/Makefile
   test/rb/Makefile
   tutorial/Makefile
+  tutorial/cpp/Makefile
   tutorial/java/Makefile
   tutorial/js/Makefile
 ])
index a6ff7c5..d82a056 100755 (executable)
@@ -20,7 +20,7 @@
 SUBDIRS = 
 
 if WITH_CPP
-#SUBDIRS += cpp
+SUBDIRS += cpp
 endif
 
 if WITH_JAVA
@@ -52,5 +52,5 @@ endif
 #
 # 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 (file)
index e834dee..0000000
+++ /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 (executable)
index 0000000..0157b8d
--- /dev/null
@@ -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
index 16ae399..3b2174a 100755 (executable)
@@ -24,6 +24,9 @@ clean-local:
        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
 
index 28c3bd6..eceeca7 100644 (file)
 
   <target name="clean">
     <delete dir="${build}" />
+    <delete dir="${gen}"/>
     <delete file="tutorial.jar" />
   </target>
 
index 1f57f20..c174500 100755 (executable)
@@ -24,6 +24,9 @@ clean-local:
        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
 
index 348f229..73d535d 100644 (file)
@@ -83,6 +83,7 @@
   
   <target name="clean">
     <delete dir="${build}" />
+    <delete dir="gen-js"/>
     <delete file="tutorial-js.jar" />
   </target>