THRIFT-457 test/cpp makefiles do not honor --prefix configuration setting


git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1139309 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/configure.ac b/configure.ac
index 48f93b5..ad926b0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -474,6 +474,7 @@
   lib/py/Makefile
   lib/rb/Makefile
   test/Makefile
+  test/cpp/Makefile
   test/hs/Makefile
   test/py/Makefile
   test/py.twisted/Makefile
diff --git a/test/Makefile.am b/test/Makefile.am
index ae11404..5ca20d0 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -19,6 +19,10 @@
 
 SUBDIRS =
 
+if WITH_CPP
+SUBDIRS += cpp
+endif
+
 if WITH_PYTHON
 SUBDIRS += py
 SUBDIRS += py.twisted
diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
new file mode 100755
index 0000000..a828e57
--- /dev/null
+++ b/test/cpp/Makefile.am
@@ -0,0 +1,112 @@
+#
+# 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 = libtestgencpp.la libstresstestgencpp.la
+nodist_libtestgencpp_la_SOURCES = \
+	gen-cpp/ThriftTest_constants.cpp \
+	gen-cpp/ThriftTest_types.cpp \
+	gen-cpp/ThriftTest_constants.h \
+	gen-cpp/ThriftTest_types.h \
+	gen-cpp/ThriftTest_types.tcc \
+	gen-cpp/ThriftTest.tcc
+
+libtestgencpp_la_LIBADD = $(top_builddir)/lib/cpp/libthrift.la
+
+nodist_libstresstestgencpp_la_SOURCES = \
+	gen-cpp/StressTest_constants.cpp \
+	gen-cpp/StressTest_types.cpp \
+	gen-cpp/StressTest_constants.h \
+	gen-cpp/StressTest_types.h \
+	gen-cpp/Service.cpp \
+	gen-cpp/Service.h
+
+libstresstestgencpp_la_LIBADD = $(top_builddir)/lib/cpp/libthrift.la
+
+check_PROGRAMS = \
+	TestServer \
+	TestClient \
+	StressTest \
+	StressTestNonBlocking
+
+# we currently do not run the testsuite, stop c++ server issue
+# TESTS = \
+#	$(check_PROGRAMS)
+
+TestServer_SOURCES = \
+	src/TestServer.cpp
+
+TestServer_LDADD = \
+	libtestgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la \
+	$(top_builddir)/lib/cpp/libthriftz.la \
+	$(top_builddir)/lib/cpp/libthriftnb.la \
+	-levent -lboost_program_options
+
+TestClient_SOURCES = \
+	src/TestClient.cpp
+
+TestClient_LDADD = \
+	libtestgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la \
+	$(top_builddir)/lib/cpp/libthriftz.la \
+	$(top_builddir)/lib/cpp/libthriftnb.la \
+	-levent -lboost_program_options
+
+StressTest_SOURCES = \
+	src/StressTest.cpp
+
+StressTest_LDADD = \
+	libstresstestgencpp.la \
+	$(top_builddir)/lib/cpp/libthrift.la
+
+StressTestNonBlocking_SOURCES = \
+	src/StressTestNonBlocking.cpp
+
+StressTestNonBlocking_LDADD = \
+	libstresstestgencpp.la \
+	$(top_builddir)/lib/cpp/libthriftnb.la \
+	-levent
+#
+# Common thrift code generation rules
+#
+THRIFT = $(top_builddir)/compiler/cpp/thrift
+
+gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp: $(top_srcdir)/test/ThriftTest.thrift
+	$(THRIFT) --gen cpp:templates $<
+
+gen-cpp/ThriftTest.cpp gen-cpp/StressTest_types.cpp gen-cpp/StressTest_constants.cpp: $(top_srcdir)/test/StressTest.thrift
+	$(THRIFT) --gen cpp $<
+
+INCLUDES = \
+	-I$(top_srcdir)/lib/cpp/src -Igen-cpp
+
+AM_CPPFLAGS = $(BOOST_CPPFLAGS)
+AM_CXXFLAGS = -Wall
+
+clean-local:
+	$(RM) -r gen-cpp
+
+EXTRA_DIST = \
+	src/TestClient.cpp \
+	src/TestServer.cpp \
+	src/StressTest.cpp \
+	src/StressTestNonBlocking.cpp \
+	realloc/realloc_test.c \
+	realloc/Makefile
+	
+	
diff --git a/test/cpp/Stress-test.mk b/test/cpp/Stress-test.mk
deleted file mode 100644
index 049bcb8..0000000
--- a/test/cpp/Stress-test.mk
+++ /dev/null
@@ -1,71 +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.
-#
-
-ifndef thrift_home
-thrift_home=../..
-endif #thrift_home
-
-target: all
-
-ifndef boost_home
-#boost_home=../../../../../thirdparty/boost_1_33_1
-boost_home=/usr/local/include/boost-1_33_1
-endif #boost_home
-target: all
-
-include_paths = $(thrift_home)/lib/cpp/src \
-                $(thrift_home)/lib/cpp \
-                $(thrift_home)/ \
-                $(boost_home)
-
-include_flags = $(patsubst %,-I%, $(include_paths))
-
-# Tools
-ifndef THRIFT
-THRIFT = ../../compiler/cpp/thrift
-endif # THRIFT
-
-CC     = g++
-LD     = g++
-
-# Compiler flags
-DCFL  = -Wall -O3 -g -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent
-CFL   = -Wall -O3 -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent
-
-all: stress-test stress-test-nb
-
-debug: stress-test-debug stress-test-debug-nb
-
-stubs: ../StressTest.thrift
-	$(THRIFT) --gen cpp --gen php ../StressTest.thrift
-
-stress-test-debug-nb: stubs
-	$(CC) -o stress-test-nb $(DCFL) src/nb-main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-stress-test-nb: stubs
-	$(CC) -o stress-test-nb $(CFL) src/nb-main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-stress-test-debug: stubs
-	$(CC) -o stress-test $(DCFL) src/main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-stress-test: stubs
-	$(CC) -o stress-test $(CFL) src/main.cpp ./gen-cpp/Service.cpp gen-cpp/StressTest_types.cpp
-
-clean:
-	rm -fr stress-test stress-test-nb gen-cpp
diff --git a/test/cpp/Thrift-test.mk b/test/cpp/Thrift-test.mk
deleted file mode 100644
index e0a624c..0000000
--- a/test/cpp/Thrift-test.mk
+++ /dev/null
@@ -1,78 +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.
-#
-
-# Makefile for Thrift test project.
-# Default target is everything
-
-ifndef thrift_home
-thrift_home=../..
-endif #thrift_home
-
-target: all
-
-ifndef boost_home
-#boost_home=../../../../../thirdparty/boost_1_33_1
-boost_home=/usr/local/include/boost-1_33_1
-endif #boost_home
-target: all
-
-include_paths = $(thrift_home)/lib/cpp/src \
-		$(boost_home)
-
-include_flags = $(patsubst %,-I%, $(include_paths))
-
-# Tools
-ifndef THRIFT
-THRIFT = ../../compiler/cpp/thrift
-endif # THRIFT
-
-CC     = g++
-LD     = g++
-
-# Compiler flags
-DCFL  = -Wall -O3 -g -I. -I./gen-cpp $(include_flags) -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent -lboost_program_options
-LFL   =  -L$(thrift_home)/lib/cpp/.libs -lthrift -lthriftnb -levent -lboost_program_options
-CCFL  = -Wall -O3 -I. -I./gen-cpp $(include_flags)
-CFL   = $(CCFL) $(LFL)
-
-all: server client
-
-debug: server-debug client-debug
-
-stubs: ../ThriftTest.thrift
-	$(THRIFT) --gen cpp:templates ../ThriftTest.thrift
-
-server-debug: stubs
-	$(CC) -o TestServer $(DCFL) src/TestServer.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-client-debug: stubs
-	$(CC) -o TestClient $(DCFL) src/TestClient.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-server: stubs
-	$(CC) -o TestServer $(CFL) src/TestServer.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-client: stubs
-	$(CC) -o TestClient $(CFL) src/TestClient.cpp ./gen-cpp/ThriftTest.cpp ./gen-cpp/ThriftTest_types.cpp ./gen-cpp/ThriftTest_constants.cpp
-
-small:
-	$(THRIFT) --gen cpp:templates ../SmallTest.thrift
-	$(CC) -c $(CCFL) ./gen-cpp/SmallService.cpp ./gen-cpp/SmallTest_types.cpp
-
-clean:
-	rm -fr *.o TestServer TestClient gen-cpp
diff --git a/test/cpp/src/main.cpp b/test/cpp/src/StressTest.cpp
similarity index 100%
rename from test/cpp/src/main.cpp
rename to test/cpp/src/StressTest.cpp
diff --git a/test/cpp/src/nb-main.cpp b/test/cpp/src/StressTestNonBlocking.cpp
similarity index 100%
rename from test/cpp/src/nb-main.cpp
rename to test/cpp/src/StressTestNonBlocking.cpp
diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
index 23d7dcd..ceea838 100644
--- a/test/cpp/src/TestClient.cpp
+++ b/test/cpp/src/TestClient.cpp
@@ -17,6 +17,9 @@
  * under the License.
  */
 
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
+
 #include <iostream>
 #include <unistd.h>
 #include <sys/time.h>
@@ -32,9 +35,6 @@
 
 #include "ThriftTest.h"
 
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
-
 using namespace boost;
 using namespace std;
 using namespace apache::thrift;
diff --git a/test/cpp/src/TestServer.cpp b/test/cpp/src/TestServer.cpp
index bb3cd43..9ba0509 100644
--- a/test/cpp/src/TestServer.cpp
+++ b/test/cpp/src/TestServer.cpp
@@ -17,6 +17,9 @@
  * under the License.
  */
 
+#define __STDC_FORMAT_MACROS
+#include <inttypes.h>
+
 #include <concurrency/ThreadManager.h>
 #include <concurrency/PosixThreadFactory.h>
 #include <protocol/TBinaryProtocol.h>
@@ -39,8 +42,6 @@
 
 #include <boost/program_options.hpp>
 
-#define __STDC_FORMAT_MACROS
-#include <inttypes.h>
 #include <signal.h>
 
 using namespace std;
@@ -114,6 +115,22 @@
     out = thing;
   }
 
+  void testStringMap(map<std::string, std::string> &out, const map<std::string, std::string> &thing) {
+    printf("testMap({");
+    map<std::string, std::string>::const_iterator m_iter;
+    bool first = true;
+    for (m_iter = thing.begin(); m_iter != thing.end(); ++m_iter) {
+      if (first) {
+        first = false;
+      } else {
+        printf(", ");
+      }
+      printf("%s => %s", (m_iter->first).c_str(), (m_iter->second).c_str());
+    }
+    printf("})\n");
+    out = thing;
+  }
+
   void testSet(set<int32_t> &out, const set<int32_t> &thing) {
     printf("testSet({");
     set<int32_t>::const_iterator s_iter;