http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/compiler/cpp/src/thrifty.yy ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/compiler/cpp/src/thrifty.yy b/depends/thirdparty/thrift/compiler/cpp/src/thrifty.yy deleted file mode 100644 index 61d4231..0000000 --- a/depends/thirdparty/thrift/compiler/cpp/src/thrifty.yy +++ /dev/null @@ -1,1312 +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. - */ - -/** - * Thrift parser. - * - * This parser is used on a thrift definition file. - * - */ - -#define __STDC_LIMIT_MACROS -#define __STDC_FORMAT_MACROS -#include <stdio.h> -#ifndef _MSC_VER -#include <inttypes.h> -#else -#include <stdint.h> -#endif -#include <limits.h> -#ifdef _MSC_VER -#include "windows/config.h" -#endif -#include "main.h" -#include "globals.h" -#include "parse/t_program.h" -#include "parse/t_scope.h" - -#ifdef _MSC_VER -//warning C4065: switch statement contains 'default' but no 'case' labels -#pragma warning(disable:4065) -#endif - -/** - * This global variable is used for automatic numbering of field indices etc. - * when parsing the members of a struct. Field values are automatically - * assigned starting from -1 and working their way down. - */ -int y_field_val = -1; -/** - * This global variable is used for automatic numbering of enum values. - * y_enum_val is the last value assigned; the next auto-assigned value will be - * y_enum_val+1, and then it continues working upwards. Explicitly specified - * enum values reset y_enum_val to that value. - */ -int32_t y_enum_val = -1; -int g_arglist = 0; -const int struct_is_struct = 0; -const int struct_is_union = 1; - -%} - -/** - * This structure is used by the parser to hold the data types associated with - * various parse nodes. - */ -%union { - char* id; - int64_t iconst; - double dconst; - bool tbool; - t_doc* tdoc; - t_type* ttype; - t_base_type* tbase; - t_typedef* ttypedef; - t_enum* tenum; - t_enum_value* tenumv; - t_const* tconst; - t_const_value* tconstv; - t_struct* tstruct; - t_service* tservice; - t_function* tfunction; - t_field* tfield; - char* dtext; - t_field::e_req ereq; - t_annotation* tannot; - t_field_id tfieldid; -} - -/** - * Strings identifier - */ -%token<id> tok_identifier -%token<id> tok_literal -%token<dtext> tok_doctext -%token<id> tok_st_identifier - -/** - * Constant values - */ -%token<iconst> tok_int_constant -%token<dconst> tok_dub_constant - -/** - * Header keywords - */ -%token tok_include -%token tok_namespace -%token tok_cpp_namespace -%token tok_cpp_include -%token tok_cpp_type -%token tok_php_namespace -%token tok_py_module -%token tok_perl_package -%token tok_java_package -%token tok_xsd_all -%token tok_xsd_optional -%token tok_xsd_nillable -%token tok_xsd_namespace -%token tok_xsd_attrs -%token tok_ruby_namespace -%token tok_smalltalk_category -%token tok_smalltalk_prefix -%token tok_cocoa_prefix -%token tok_csharp_namespace -%token tok_delphi_namespace - -/** - * Base datatype keywords - */ -%token tok_void -%token tok_bool -%token tok_byte -%token tok_string -%token tok_binary -%token tok_slist -%token tok_senum -%token tok_i16 -%token tok_i32 -%token tok_i64 -%token tok_double - -/** - * Complex type keywords - */ -%token tok_map -%token tok_list -%token tok_set - -/** - * Function modifiers - */ -%token tok_oneway - -/** - * Thrift language keywords - */ -%token tok_typedef -%token tok_struct -%token tok_xception -%token tok_throws -%token tok_extends -%token tok_service -%token tok_enum -%token tok_const -%token tok_required -%token tok_optional -%token tok_union -%token tok_reference - -/** - * Grammar nodes - */ - -%type<ttype> BaseType -%type<ttype> SimpleBaseType -%type<ttype> ContainerType -%type<ttype> SimpleContainerType -%type<ttype> MapType -%type<ttype> SetType -%type<ttype> ListType - -%type<tdoc> Definition -%type<ttype> TypeDefinition - -%type<ttypedef> Typedef - -%type<ttype> TypeAnnotations -%type<ttype> TypeAnnotationList -%type<tannot> TypeAnnotation -%type<id> TypeAnnotationValue - -%type<tfield> Field -%type<tfieldid> FieldIdentifier -%type<ereq> FieldRequiredness -%type<ttype> FieldType -%type<tconstv> FieldValue -%type<tstruct> FieldList -%type<tbool> FieldReference - -%type<tenum> Enum -%type<tenum> EnumDefList -%type<tenumv> EnumDef -%type<tenumv> EnumValue - -%type<ttypedef> Senum -%type<tbase> SenumDefList -%type<id> SenumDef - -%type<tconst> Const -%type<tconstv> ConstValue -%type<tconstv> ConstList -%type<tconstv> ConstListContents -%type<tconstv> ConstMap -%type<tconstv> ConstMapContents - -%type<iconst> StructHead -%type<tstruct> Struct -%type<tstruct> Xception -%type<tservice> Service - -%type<tfunction> Function -%type<ttype> FunctionType -%type<tservice> FunctionList - -%type<tstruct> Throws -%type<tservice> Extends -%type<tbool> Oneway -%type<tbool> XsdAll -%type<tbool> XsdOptional -%type<tbool> XsdNillable -%type<tstruct> XsdAttributes -%type<id> CppType - -%type<dtext> CaptureDocText - -%% - -/** - * Thrift Grammar Implementation. - * - * For the most part this source file works its way top down from what you - * might expect to find in a typical .thrift file, i.e. type definitions and - * namespaces up top followed by service definitions using those types. - */ - -Program: - HeaderList DefinitionList - { - pdebug("Program -> Headers DefinitionList"); - if((g_program_doctext_candidate != NULL) && (g_program_doctext_status != ALREADY_PROCESSED)) - { - g_program->set_doc(g_program_doctext_candidate); - g_program_doctext_status = ALREADY_PROCESSED; - } - clear_doctext(); - } - -CaptureDocText: - { - if (g_parse_mode == PROGRAM) { - $$ = g_doctext; - g_doctext = NULL; - } else { - $$ = NULL; - } - } - -/* TODO(dreiss): Try to DestroyDocText in all sorts or random places. */ -DestroyDocText: - { - if (g_parse_mode == PROGRAM) { - clear_doctext(); - } - } - -/* We have to DestroyDocText here, otherwise it catches the doctext - on the first real element. */ -HeaderList: - HeaderList DestroyDocText Header - { - pdebug("HeaderList -> HeaderList Header"); - } -| - { - pdebug("HeaderList -> "); - } - -Header: - Include - { - pdebug("Header -> Include"); - } -| tok_namespace tok_identifier tok_identifier - { - pdebug("Header -> tok_namespace tok_identifier tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace($2, $3); - } - } -| tok_namespace '*' tok_identifier - { - pdebug("Header -> tok_namespace * tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("*", $3); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_cpp_namespace tok_identifier - { - pwarning(1, "'cpp_namespace' is deprecated. Use 'namespace cpp' instead"); - pdebug("Header -> tok_cpp_namespace tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("cpp", $2); - } - } -| tok_cpp_include tok_literal - { - pdebug("Header -> tok_cpp_include tok_literal"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->add_cpp_include($2); - } - } -| tok_php_namespace tok_identifier - { - pwarning(1, "'php_namespace' is deprecated. Use 'namespace php' instead"); - pdebug("Header -> tok_php_namespace tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("php", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_py_module tok_identifier - { - pwarning(1, "'py_module' is deprecated. Use 'namespace py' instead"); - pdebug("Header -> tok_py_module tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("py", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_perl_package tok_identifier - { - pwarning(1, "'perl_package' is deprecated. Use 'namespace perl' instead"); - pdebug("Header -> tok_perl_namespace tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("perl", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_ruby_namespace tok_identifier - { - pwarning(1, "'ruby_namespace' is deprecated. Use 'namespace rb' instead"); - pdebug("Header -> tok_ruby_namespace tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("rb", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_smalltalk_category tok_st_identifier - { - pwarning(1, "'smalltalk_category' is deprecated. Use 'namespace smalltalk.category' instead"); - pdebug("Header -> tok_smalltalk_category tok_st_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("smalltalk.category", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_smalltalk_prefix tok_identifier - { - pwarning(1, "'smalltalk_prefix' is deprecated. Use 'namespace smalltalk.prefix' instead"); - pdebug("Header -> tok_smalltalk_prefix tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("smalltalk.prefix", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_java_package tok_identifier - { - pwarning(1, "'java_package' is deprecated. Use 'namespace java' instead"); - pdebug("Header -> tok_java_package tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("java", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_cocoa_prefix tok_identifier - { - pwarning(1, "'cocoa_prefix' is deprecated. Use 'namespace cocoa' instead"); - pdebug("Header -> tok_cocoa_prefix tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("cocoa", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_xsd_namespace tok_literal - { - pwarning(1, "'xsd_namespace' is deprecated. Use 'namespace xsd' instead"); - pdebug("Header -> tok_xsd_namespace tok_literal"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("cocoa", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_csharp_namespace tok_identifier - { - pwarning(1, "'csharp_namespace' is deprecated. Use 'namespace csharp' instead"); - pdebug("Header -> tok_csharp_namespace tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("csharp", $2); - } - } -/* TODO(dreiss): Get rid of this once everyone is using the new hotness. */ -| tok_delphi_namespace tok_identifier - { - pwarning(1, "'delphi_namespace' is deprecated. Use 'namespace delphi' instead"); - pdebug("Header -> tok_delphi_namespace tok_identifier"); - declare_valid_program_doctext(); - if (g_parse_mode == PROGRAM) { - g_program->set_namespace("delphi", $2); - } - } - -Include: - tok_include tok_literal - { - pdebug("Include -> tok_include tok_literal"); - declare_valid_program_doctext(); - if (g_parse_mode == INCLUDES) { - std::string path = include_file(std::string($2)); - if (!path.empty()) { - g_program->add_include(path, std::string($2)); - } - } - } - -DefinitionList: - DefinitionList CaptureDocText Definition - { - pdebug("DefinitionList -> DefinitionList Definition"); - if ($2 != NULL && $3 != NULL) { - $3->set_doc($2); - } - } -| - { - pdebug("DefinitionList -> "); - } - -Definition: - Const - { - pdebug("Definition -> Const"); - if (g_parse_mode == PROGRAM) { - g_program->add_const($1); - } - $$ = $1; - } -| TypeDefinition - { - pdebug("Definition -> TypeDefinition"); - if (g_parse_mode == PROGRAM) { - g_scope->add_type($1->get_name(), $1); - if (g_parent_scope != NULL) { - g_parent_scope->add_type(g_parent_prefix + $1->get_name(), $1); - } - if (! g_program->is_unique_typename($1)) { - yyerror("Type \"%s\" is already defined.", $1->get_name().c_str()); - exit(1); - } - } - $$ = $1; - } -| Service - { - pdebug("Definition -> Service"); - if (g_parse_mode == PROGRAM) { - g_scope->add_service($1->get_name(), $1); - if (g_parent_scope != NULL) { - g_parent_scope->add_service(g_parent_prefix + $1->get_name(), $1); - } - g_program->add_service($1); - if (! g_program->is_unique_typename($1)) { - yyerror("Type \"%s\" is already defined.", $1->get_name().c_str()); - exit(1); - } - } - $$ = $1; - } - -TypeDefinition: - Typedef - { - pdebug("TypeDefinition -> Typedef"); - if (g_parse_mode == PROGRAM) { - g_program->add_typedef($1); - } - } -| Enum - { - pdebug("TypeDefinition -> Enum"); - if (g_parse_mode == PROGRAM) { - g_program->add_enum($1); - } - } -| Senum - { - pdebug("TypeDefinition -> Senum"); - if (g_parse_mode == PROGRAM) { - g_program->add_typedef($1); - } - } -| Struct - { - pdebug("TypeDefinition -> Struct"); - if (g_parse_mode == PROGRAM) { - g_program->add_struct($1); - } - } -| Xception - { - pdebug("TypeDefinition -> Xception"); - if (g_parse_mode == PROGRAM) { - g_program->add_xception($1); - } - } - -CommaOrSemicolonOptional: - ',' - {} -| ';' - {} -| - {} - -Typedef: - tok_typedef FieldType tok_identifier TypeAnnotations CommaOrSemicolonOptional - { - pdebug("TypeDef -> tok_typedef FieldType tok_identifier"); - validate_simple_identifier( $3); - t_typedef *td = new t_typedef(g_program, $2, $3); - $$ = td; - if ($4 != NULL) { - $$->annotations_ = $4->annotations_; - delete $4; - } - } - -Enum: - tok_enum tok_identifier '{' EnumDefList '}' TypeAnnotations - { - pdebug("Enum -> tok_enum tok_identifier { EnumDefList }"); - $$ = $4; - validate_simple_identifier( $2); - $$->set_name($2); - if ($6 != NULL) { - $$->annotations_ = $6->annotations_; - delete $6; - } - - // make constants for all the enum values - if (g_parse_mode == PROGRAM) { - const std::vector<t_enum_value*>& enum_values = $$->get_constants(); - std::vector<t_enum_value*>::const_iterator c_iter; - for (c_iter = enum_values.begin(); c_iter != enum_values.end(); ++c_iter) { - std::string const_name = $$->get_name() + "." + (*c_iter)->get_name(); - t_const_value* const_val = new t_const_value((*c_iter)->get_value()); - const_val->set_enum($$); - g_scope->add_constant(const_name, new t_const(g_type_i32, (*c_iter)->get_name(), const_val)); - if (g_parent_scope != NULL) { - g_parent_scope->add_constant(g_parent_prefix + const_name, new t_const(g_type_i32, (*c_iter)->get_name(), const_val)); - } - } - } - } - -EnumDefList: - EnumDefList EnumDef - { - pdebug("EnumDefList -> EnumDefList EnumDef"); - $$ = $1; - $$->append($2); - } -| - { - pdebug("EnumDefList -> "); - $$ = new t_enum(g_program); - y_enum_val = -1; - } - -EnumDef: - CaptureDocText EnumValue TypeAnnotations CommaOrSemicolonOptional - { - pdebug("EnumDef -> EnumValue"); - $$ = $2; - if ($1 != NULL) { - $$->set_doc($1); - } - if ($3 != NULL) { - $$->annotations_ = $3->annotations_; - delete $3; - } - } - -EnumValue: - tok_identifier '=' tok_int_constant - { - pdebug("EnumValue -> tok_identifier = tok_int_constant"); - if ($3 < INT32_MIN || $3 > INT32_MAX) { - // Note: this used to be just a warning. However, since thrift always - // treats enums as i32 values, I'm changing it to a fatal error. - // I doubt this will affect many people, but users who run into this - // will have to update their thrift files to manually specify the - // truncated i32 value that thrift has always been using anyway. - failure("64-bit value supplied for enum %s will be truncated.", $1); - } - y_enum_val = static_cast<int32_t>($3); - $$ = new t_enum_value($1, y_enum_val); - } - | - tok_identifier - { - pdebug("EnumValue -> tok_identifier"); - validate_simple_identifier( $1); - if (y_enum_val == INT32_MAX) { - failure("enum value overflow at enum %s", $1); - } - ++y_enum_val; - $$ = new t_enum_value($1, y_enum_val); - } - -Senum: - tok_senum tok_identifier '{' SenumDefList '}' TypeAnnotations - { - pdebug("Senum -> tok_senum tok_identifier { SenumDefList }"); - validate_simple_identifier( $2); - $$ = new t_typedef(g_program, $4, $2); - if ($6 != NULL) { - $$->annotations_ = $6->annotations_; - delete $6; - } - } - -SenumDefList: - SenumDefList SenumDef - { - pdebug("SenumDefList -> SenumDefList SenumDef"); - $$ = $1; - $$->add_string_enum_val($2); - } -| - { - pdebug("SenumDefList -> "); - $$ = new t_base_type("string", t_base_type::TYPE_STRING); - $$->set_string_enum(true); - } - -SenumDef: - tok_literal CommaOrSemicolonOptional - { - pdebug("SenumDef -> tok_literal"); - $$ = $1; - } - -Const: - tok_const FieldType tok_identifier '=' ConstValue CommaOrSemicolonOptional - { - pdebug("Const -> tok_const FieldType tok_identifier = ConstValue"); - if (g_parse_mode == PROGRAM) { - validate_simple_identifier( $3); - g_scope->resolve_const_value($5, $2); - $$ = new t_const($2, $3, $5); - validate_const_type($$); - - g_scope->add_constant($3, $$); - if (g_parent_scope != NULL) { - g_parent_scope->add_constant(g_parent_prefix + $3, $$); - } - } else { - $$ = NULL; - } - } - -ConstValue: - tok_int_constant - { - pdebug("ConstValue => tok_int_constant"); - $$ = new t_const_value(); - $$->set_integer($1); - if (!g_allow_64bit_consts && ($1 < INT32_MIN || $1 > INT32_MAX)) { - pwarning(1, "64-bit constant \"%" PRIi64"\" may not work in all languages.\n", $1); - } - } -| tok_dub_constant - { - pdebug("ConstValue => tok_dub_constant"); - $$ = new t_const_value(); - $$->set_double($1); - } -| tok_literal - { - pdebug("ConstValue => tok_literal"); - $$ = new t_const_value($1); - } -| tok_identifier - { - pdebug("ConstValue => tok_identifier"); - $$ = new t_const_value(); - $$->set_identifier($1); - } -| ConstList - { - pdebug("ConstValue => ConstList"); - $$ = $1; - } -| ConstMap - { - pdebug("ConstValue => ConstMap"); - $$ = $1; - } - -ConstList: - '[' ConstListContents ']' - { - pdebug("ConstList => [ ConstListContents ]"); - $$ = $2; - } - -ConstListContents: - ConstListContents ConstValue CommaOrSemicolonOptional - { - pdebug("ConstListContents => ConstListContents ConstValue CommaOrSemicolonOptional"); - $$ = $1; - $$->add_list($2); - } -| - { - pdebug("ConstListContents =>"); - $$ = new t_const_value(); - $$->set_list(); - } - -ConstMap: - '{' ConstMapContents '}' - { - pdebug("ConstMap => { ConstMapContents }"); - $$ = $2; - } - -ConstMapContents: - ConstMapContents ConstValue ':' ConstValue CommaOrSemicolonOptional - { - pdebug("ConstMapContents => ConstMapContents ConstValue CommaOrSemicolonOptional"); - $$ = $1; - $$->add_map($2, $4); - } -| - { - pdebug("ConstMapContents =>"); - $$ = new t_const_value(); - $$->set_map(); - } - -StructHead: - tok_struct - { - $$ = struct_is_struct; - } -| tok_union - { - $$ = struct_is_union; - } - -Struct: - StructHead tok_identifier XsdAll '{' FieldList '}' TypeAnnotations - { - pdebug("Struct -> tok_struct tok_identifier { FieldList }"); - validate_simple_identifier( $2); - $5->set_xsd_all($3); - $5->set_union($1 == struct_is_union); - $$ = $5; - $$->set_name($2); - if ($7 != NULL) { - $$->annotations_ = $7->annotations_; - delete $7; - } - } - -XsdAll: - tok_xsd_all - { - $$ = true; - } -| - { - $$ = false; - } - -XsdOptional: - tok_xsd_optional - { - $$ = true; - } -| - { - $$ = false; - } - -XsdNillable: - tok_xsd_nillable - { - $$ = true; - } -| - { - $$ = false; - } - -XsdAttributes: - tok_xsd_attrs '{' FieldList '}' - { - $$ = $3; - } -| - { - $$ = NULL; - } - -Xception: - tok_xception tok_identifier '{' FieldList '}' TypeAnnotations - { - pdebug("Xception -> tok_xception tok_identifier { FieldList }"); - validate_simple_identifier( $2); - $4->set_name($2); - $4->set_xception(true); - $$ = $4; - if ($6 != NULL) { - $$->annotations_ = $6->annotations_; - delete $6; - } - } - -Service: - tok_service tok_identifier Extends '{' FlagArgs FunctionList UnflagArgs '}' TypeAnnotations - { - pdebug("Service -> tok_service tok_identifier { FunctionList }"); - validate_simple_identifier( $2); - $$ = $6; - $$->set_name($2); - $$->set_extends($3); - if ($9 != NULL) { - $$->annotations_ = $9->annotations_; - delete $9; - } - } - -FlagArgs: - { - g_arglist = 1; - } - -UnflagArgs: - { - g_arglist = 0; - } - -Extends: - tok_extends tok_identifier - { - pdebug("Extends -> tok_extends tok_identifier"); - $$ = NULL; - if (g_parse_mode == PROGRAM) { - $$ = g_scope->get_service($2); - if ($$ == NULL) { - yyerror("Service \"%s\" has not been defined.", $2); - exit(1); - } - } - } -| - { - $$ = NULL; - } - -FunctionList: - FunctionList Function - { - pdebug("FunctionList -> FunctionList Function"); - $$ = $1; - $1->add_function($2); - } -| - { - pdebug("FunctionList -> "); - $$ = new t_service(g_program); - } - -Function: - CaptureDocText Oneway FunctionType tok_identifier '(' FieldList ')' Throws TypeAnnotations CommaOrSemicolonOptional - { - validate_simple_identifier( $4); - $6->set_name(std::string($4) + "_args"); - $$ = new t_function($3, $4, $6, $8, $2); - if ($1 != NULL) { - $$->set_doc($1); - } - if ($9 != NULL) { - $$->annotations_ = $9->annotations_; - delete $9; - } - } - -Oneway: - tok_oneway - { - $$ = true; - } -| - { - $$ = false; - } - -Throws: - tok_throws '(' FieldList ')' - { - pdebug("Throws -> tok_throws ( FieldList )"); - $$ = $3; - if (g_parse_mode == PROGRAM && !validate_throws($$)) { - yyerror("Throws clause may not contain non-exception types"); - exit(1); - } - } -| - { - $$ = new t_struct(g_program); - } - -FieldList: - FieldList Field - { - pdebug("FieldList -> FieldList , Field"); - $$ = $1; - if (!($$->append($2))) { - yyerror("\"%d: %s\" - field identifier/name has already been used", $2->get_key(), $2->get_name().c_str()); - exit(1); - } - } -| - { - pdebug("FieldList -> "); - y_field_val = -1; - $$ = new t_struct(g_program); - } - -Field: - CaptureDocText FieldIdentifier FieldRequiredness FieldType FieldReference tok_identifier FieldValue XsdOptional XsdNillable XsdAttributes TypeAnnotations CommaOrSemicolonOptional - { - pdebug("tok_int_constant : Field -> FieldType tok_identifier"); - if ($2.auto_assigned) { - pwarning(1, "No field key specified for %s, resulting protocol may have conflicts or not be backwards compatible!\n", $6); - if (g_strict >= 192) { - yyerror("Implicit field keys are deprecated and not allowed with -strict"); - exit(1); - } - } - validate_simple_identifier($6); - $$ = new t_field($4, $6, $2.value); - $$->set_reference($5); - $$->set_req($3); - if ($7 != NULL) { - g_scope->resolve_const_value($7, $4); - validate_field_value($$, $7); - $$->set_value($7); - } - $$->set_xsd_optional($8); - $$->set_xsd_nillable($9); - if ($1 != NULL) { - $$->set_doc($1); - } - if ($10 != NULL) { - $$->set_xsd_attrs($10); - } - if ($11 != NULL) { - $$->annotations_ = $11->annotations_; - delete $11; - } - } - -FieldIdentifier: - tok_int_constant ':' - { - if ($1 <= 0) { - if (g_allow_neg_field_keys) { - /* - * g_allow_neg_field_keys exists to allow users to add explicitly - * specified key values to old .thrift files without breaking - * protocol compatibility. - */ - if ($1 != y_field_val) { - /* - * warn if the user-specified negative value isn't what - * thrift would have auto-assigned. - */ - pwarning(1, "Nonpositive field key (%" PRIi64") differs from what would be " - "auto-assigned by thrift (%d).\n", $1, y_field_val); - } - /* - * Leave $1 as-is, and update y_field_val to be one less than $1. - * The FieldList parsing will catch any duplicate key values. - */ - y_field_val = static_cast<int32_t>($1 - 1); - $$.value = static_cast<int32_t>($1); - $$.auto_assigned = false; - } else { - pwarning(1, "Nonpositive value (%d) not allowed as a field key.\n", - $1); - $$.value = y_field_val--; - $$.auto_assigned = true; - } - } else { - $$.value = static_cast<int32_t>($1); - $$.auto_assigned = false; - } - } -| - { - $$.value = y_field_val--; - $$.auto_assigned = true; - } - -FieldReference: - tok_reference - { - $$ = true; - } -| - { - $$ = false; - } - -FieldRequiredness: - tok_required - { - $$ = t_field::T_REQUIRED; - } -| tok_optional - { - if (g_arglist) { - if (g_parse_mode == PROGRAM) { - pwarning(1, "optional keyword is ignored in argument lists.\n"); - } - $$ = t_field::T_OPT_IN_REQ_OUT; - } else { - $$ = t_field::T_OPTIONAL; - } - } -| - { - $$ = t_field::T_OPT_IN_REQ_OUT; - } - -FieldValue: - '=' ConstValue - { - if (g_parse_mode == PROGRAM) { - $$ = $2; - } else { - $$ = NULL; - } - } -| - { - $$ = NULL; - } - -FunctionType: - FieldType - { - pdebug("FunctionType -> FieldType"); - $$ = $1; - } -| tok_void - { - pdebug("FunctionType -> tok_void"); - $$ = g_type_void; - } - -FieldType: - tok_identifier - { - pdebug("FieldType -> tok_identifier"); - if (g_parse_mode == INCLUDES) { - // Ignore identifiers in include mode - $$ = NULL; - } else { - // Lookup the identifier in the current scope - $$ = g_scope->get_type($1); - if ($$ == NULL) { - /* - * Either this type isn't yet declared, or it's never - declared. Either way allow it and we'll figure it out - during generation. - */ - $$ = new t_typedef(g_program, $1, true); - } - } - } -| BaseType - { - pdebug("FieldType -> BaseType"); - $$ = $1; - } -| ContainerType - { - pdebug("FieldType -> ContainerType"); - $$ = $1; - } - -BaseType: SimpleBaseType TypeAnnotations - { - pdebug("BaseType -> SimpleBaseType TypeAnnotations"); - if ($2 != NULL) { - $$ = new t_base_type(*static_cast<t_base_type*>($1)); - $$->annotations_ = $2->annotations_; - delete $2; - } else { - $$ = $1; - } - } - -SimpleBaseType: - tok_string - { - pdebug("BaseType -> tok_string"); - $$ = g_type_string; - } -| tok_binary - { - pdebug("BaseType -> tok_binary"); - $$ = g_type_binary; - } -| tok_slist - { - pdebug("BaseType -> tok_slist"); - $$ = g_type_slist; - } -| tok_bool - { - pdebug("BaseType -> tok_bool"); - $$ = g_type_bool; - } -| tok_byte - { - pdebug("BaseType -> tok_byte"); - $$ = g_type_byte; - } -| tok_i16 - { - pdebug("BaseType -> tok_i16"); - $$ = g_type_i16; - } -| tok_i32 - { - pdebug("BaseType -> tok_i32"); - $$ = g_type_i32; - } -| tok_i64 - { - pdebug("BaseType -> tok_i64"); - $$ = g_type_i64; - } -| tok_double - { - pdebug("BaseType -> tok_double"); - $$ = g_type_double; - } - -ContainerType: SimpleContainerType TypeAnnotations - { - pdebug("ContainerType -> SimpleContainerType TypeAnnotations"); - $$ = $1; - if ($2 != NULL) { - $$->annotations_ = $2->annotations_; - delete $2; - } - } - -SimpleContainerType: - MapType - { - pdebug("SimpleContainerType -> MapType"); - $$ = $1; - } -| SetType - { - pdebug("SimpleContainerType -> SetType"); - $$ = $1; - } -| ListType - { - pdebug("SimpleContainerType -> ListType"); - $$ = $1; - } - -MapType: - tok_map CppType '<' FieldType ',' FieldType '>' - { - pdebug("MapType -> tok_map <FieldType, FieldType>"); - $$ = new t_map($4, $6); - if ($2 != NULL) { - ((t_container*)$$)->set_cpp_name(std::string($2)); - } - } - -SetType: - tok_set CppType '<' FieldType '>' - { - pdebug("SetType -> tok_set<FieldType>"); - $$ = new t_set($4); - if ($2 != NULL) { - ((t_container*)$$)->set_cpp_name(std::string($2)); - } - } - -ListType: - tok_list '<' FieldType '>' CppType - { - pdebug("ListType -> tok_list<FieldType>"); - check_for_list_of_bytes($3); - $$ = new t_list($3); - if ($5 != NULL) { - ((t_container*)$$)->set_cpp_name(std::string($5)); - } - } - -CppType: - tok_cpp_type tok_literal - { - $$ = $2; - } -| - { - $$ = NULL; - } - -TypeAnnotations: - '(' TypeAnnotationList ')' - { - pdebug("TypeAnnotations -> ( TypeAnnotationList )"); - $$ = $2; - } -| - { - $$ = NULL; - } - -TypeAnnotationList: - TypeAnnotationList TypeAnnotation - { - pdebug("TypeAnnotationList -> TypeAnnotationList , TypeAnnotation"); - $$ = $1; - $$->annotations_[$2->key] = $2->val; - delete $2; - } -| - { - /* Just use a dummy structure to hold the annotations. */ - $$ = new t_struct(g_program); - } - -TypeAnnotation: - tok_identifier TypeAnnotationValue CommaOrSemicolonOptional - { - pdebug("TypeAnnotation -> TypeAnnotationValue"); - $$ = new t_annotation; - $$->key = $1; - $$->val = $2; - } - -TypeAnnotationValue: - '=' tok_literal - { - pdebug("TypeAnnotationValue -> = tok_literal"); - $$ = $2; - } -| - { - pdebug("TypeAnnotationValue ->"); - $$ = strdup("1"); - } - -%%
http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/compiler/cpp/src/windows/config.h ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/compiler/cpp/src/windows/config.h b/depends/thirdparty/thrift/compiler/cpp/src/windows/config.h deleted file mode 100644 index a600080..0000000 --- a/depends/thirdparty/thrift/compiler/cpp/src/windows/config.h +++ /dev/null @@ -1,45 +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_WINDOWS_CONFIG_H_ -#define _THRIFT_WINDOWS_CONFIG_H_ 1 - -#if defined(_MSC_VER) && (_MSC_VER > 1200) -#pragma once -#endif // _MSC_VER - -#ifndef _WIN32 -#error "This is a Windows header only" -#endif - -#include <io.h> -#include <stdlib.h> -#include <direct.h> - -#define strtoll(begin_ptr, end_ptr, length) _strtoi64(begin_ptr, end_ptr, length) - -#define PRIu64 "I64d" -#define PRIi64 "I64d" - -// squelch deprecation warnings -#pragma warning(disable : 4996) -// squelch bool conversion performance warning -#pragma warning(disable : 4800) - -#endif // _THRIFT_WINDOWS_CONFIG_H_ http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/compiler/cpp/src/windows/version.h.in ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/compiler/cpp/src/windows/version.h.in b/depends/thirdparty/thrift/compiler/cpp/src/windows/version.h.in deleted file mode 100644 index 00ebca6..0000000 --- a/depends/thirdparty/thrift/compiler/cpp/src/windows/version.h.in +++ /dev/null @@ -1,33 +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_WINDOWS_VERSION_H_ -#define _THRIFT_WINDOWS_VERSION_H_ 1 - -#if defined(_MSC_VER) && (_MSC_VER > 1200) -#pragma once -#endif // _MSC_VER - -#ifndef _WIN32 -#error "This is a Windows header only" -#endif - -#define THRIFT_VERSION "@PACKAGE_VERSION@" - -#endif // _THRIFT_WINDOWS_VERSION_H_ http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/compiler/cpp/version.h.in ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/compiler/cpp/version.h.in b/depends/thirdparty/thrift/compiler/cpp/version.h.in deleted file mode 100644 index 5770ec9..0000000 --- a/depends/thirdparty/thrift/compiler/cpp/version.h.in +++ /dev/null @@ -1 +0,0 @@ -#define THRIFT_VERSION "@PACKAGE_VERSION@" http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/composer.json ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/composer.json b/depends/thirdparty/thrift/composer.json deleted file mode 100644 index 0f22b76..0000000 --- a/depends/thirdparty/thrift/composer.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "apache/thrift", - "description": "Apache Thrift RPC system", - "homepage": "http://thrift.apache.org/", - "type": "library", - "license": "Apache-2.0", - "authors": [ - { - "name": "Apache Thrift Developers", - "email": "[email protected]", - "homepage": "http://thrift.apache.org" - } - ], - "support": { - "email": "[email protected]", - "issues": "https://issues.apache.org/jira/browse/THRIFT" - }, - "require": { - "php": ">=5.3.0" - }, - "autoload": { - "psr-0": {"Thrift": "lib/php/lib/"} - }, - "minimum-stability": "dev", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/configure.ac ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/configure.ac b/depends/thirdparty/thrift/configure.ac deleted file mode 100755 index 18e3233..0000000 --- a/depends/thirdparty/thrift/configure.ac +++ /dev/null @@ -1,891 +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. -# - -AC_PREREQ(2.65) -AC_CONFIG_MACRO_DIR([./aclocal]) - -AC_INIT([thrift], [0.9.3]) - -AC_CONFIG_AUX_DIR([.]) - -AM_INIT_AUTOMAKE([1.13 subdir-objects tar-ustar]) -PKG_PROG_PKG_CONFIG - -AC_ARG_VAR([PY_PREFIX], [Prefix for installing Python modules. - (Normal --prefix is ignored for Python because - Python has different conventions.) - Default = "/usr"]) -AS_IF([test "x$PY_PREFIX" = x], [PY_PREFIX="/usr"]) - -AC_ARG_VAR([JAVA_PREFIX], [Prefix for installing the Java lib jar. - (Normal --prefix is ignored for Java because - Java has different conventions.) - Default = "/usr/local/lib"]) -AS_IF([test "x$JAVA_PREFIX" = x], [JAVA_PREFIX="/usr/local/lib"]) - -AC_ARG_VAR([RUBY_PREFIX], [Prefix for installing Ruby modules. - (Normal --prefix is ignored for Ruby because - Ruby has different conventions.) - Default = none, let ruby setup decide]) - -AC_ARG_VAR([PHP_PREFIX], [Prefix for installing PHP modules. - (Normal --prefix is ignored for PHP because - PHP has different conventions.) - Default = "/usr/lib/php"]) -AS_IF([test "x$PHP_PREFIX" = x], [PHP_PREFIX="/usr/lib/php"]) - -AC_ARG_VAR([PHP_CONFIG_PREFIX], - [Prefix for installing PHP extension module .ini file. - (Normal --prefix is ignored for PHP because PHP has - different conventions.) - Default = "/etc/php.d"]) -AS_IF([test "x$PHP_CONFIG_PREFIX" = x], [PHP_CONFIG_PREFIX="/etc/php.d"]) - -AC_ARG_VAR([INSTALLDIRS], [When installing Perl modules, specifies which - of the sets of installation directories - to choose: perl, site or vendor. - Default = "vendor"]) -AS_IF([test "x$INSTALLDIRS" = x], [INSTALLDIRS="vendor"]) - -AC_ARG_VAR([PERL_PREFIX], [Prefix for installing Perl modules. - (Normal --prefix is ignored for Perl because - Perl has different conventions.) - Ignored, when INSTALLDIRS set to site or vendor. - Default = "/usr/local/lib"]) -AS_IF([test "x$PERL_PREFIX" = x], [PERL_PREFIX="/usr/local"]) - -AC_ARG_VAR([CABAL_CONFIGURE_FLAGS], - [Extra flags to pass to cabal: "cabal Setup.lhs configure $CABAL_CONFIGURE_FLAGS". - (Typically used to set --user or force --global.)]) - -AC_SUBST(CABAL_CONFIGURE_FLAGS) - -AC_ARG_VAR([D_IMPORT_PREFIX], [Prefix for installing D modules. - [INCLUDEDIR/d2]]) -AS_IF([test "x$D_IMPORT_PREFIX" = x], [D_IMPORT_PREFIX="${includedir}/d2"]) - -AC_ARG_VAR([DMD_LIBEVENT_FLAGS], [DMD flags for linking libevent (auto-detected if not set).]) -AC_ARG_VAR([DMD_OPENSSL_FLAGS], [DMD flags for linking OpenSSL (auto-detected if not set).]) - -AC_PROG_CC -AC_PROG_CPP -AC_PROG_CXX -AC_PROG_INSTALL -AC_PROG_LIBTOOL -AC_PROG_MAKE_SET -AC_PROG_BISON(2.5) -AC_PROG_YACC -AC_PROG_LEX -AM_PROG_LEX -AC_PROG_LN_S -AC_PROG_MKDIR_P -AC_PROG_AWK -AC_PROG_RANLIB - -AC_LANG([C++]) -AX_CXX_COMPILE_STDCXX_11([noext], [optional]) - -AM_EXTRA_RECURSIVE_TARGETS([style]) -AC_SUBST(CPPSTYLE_CMD, 'find . -type f \( -iname "*.h" -or -iname "*.cpp" -or -iname "*.cc" -or -iname "*.tcc" \) -printf "Reformatting: %h/%f\n" -exec clang-format -i {} \;') - -AC_ARG_ENABLE([libs], - AS_HELP_STRING([--enable-libs], [build the Apache Thrift libraries [default=yes]]), - [], enable_libs=yes -) -have_libs=yes -if test "$enable_libs" = "no"; then - have_libs="no" - with_cpp="no" - with_c_glib="no" - with_java="no" - with_csharp="no" - with_python="no" - with_ruby="no" - with_haskell="no" - with_haxe="no" - with_perl="no" - with_php="no" - with_php_extension="no" - with_erlang="no" - with_go="no" - with_d="no" - with_nodejs="no" - with_lua="no" -fi - - -AX_THRIFT_LIB(cpp, [C++], yes) -have_cpp=no -if test "$with_cpp" = "yes"; then - AX_BOOST_BASE([1.53.0]) - if test "x$succeeded" = "xyes" ; then - AC_SUBST([BOOST_LIB_DIR], [$(echo "$BOOST_LDFLAGS" | sed -e 's/^\-L//')]) - AC_SUBST([BOOST_CHRONO_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_chrono.a")]) - AC_SUBST([BOOST_FILESYSTEM_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_filesystem.a")]) - AC_SUBST([BOOST_SYSTEM_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_system.a")]) - AC_SUBST([BOOST_TEST_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_unit_test_framework.a")]) - AC_SUBST([BOOST_THREAD_LDADD], [$(echo "$BOOST_LIB_DIR/libboost_thread.a")]) - have_cpp="yes" - fi - - AX_CHECK_OPENSSL() - - AX_LIB_EVENT([1.0]) - have_libevent=$success - - AX_LIB_ZLIB([1.2.3]) - have_zlib=$success - - AX_THRIFT_LIB(qt4, [Qt], yes) - have_qt=no - if test "$with_qt4" = "yes"; then - PKG_CHECK_MODULES([QT], [QtCore >= 4.3, QtNetwork >= 4.3], have_qt=yes, have_qt=no) - fi - if test "$have_qt" = "yes"; then - AC_PATH_PROGS([QT_MOC], [moc-qt4 moc], "fail") - if test "$QT_MOC" = "fail"; then - have_qt=no - fi - fi - - AX_THRIFT_LIB(qt5, [Qt5], yes) - have_qt5=no - qt_reduce_reloc="" - if test "$with_qt5" = "yes"; then - PKG_CHECK_MODULES([QT5], [Qt5Core >= 5.0, Qt5Network >= 5.0], - [have_qt5=yes;qt_reduce_reloc=`$PKG_CONFIG --variable=qt_config Qt5Core | grep "reduce_relocations"`], - [have_qt5=no]) - fi - if test "$have_qt5" = "yes"; then - AC_PATH_PROGS([QT5_MOC], [moc-qt5 moc], "fail") - if test "$QT5_MOC" = "fail"; then - have_qt5=no - fi - fi -fi -AM_CONDITIONAL([WITH_CPP], [test "$have_cpp" = "yes"]) -AM_CONDITIONAL([AMX_HAVE_LIBEVENT], [test "$have_libevent" = "yes"]) -AM_CONDITIONAL([AMX_HAVE_ZLIB], [test "$have_zlib" = "yes"]) -AM_CONDITIONAL([AMX_HAVE_QT], [test "$have_qt" = "yes"]) -AM_CONDITIONAL([AMX_HAVE_QT5], [test "$have_qt5" = "yes"]) -AM_CONDITIONAL([QT5_REDUCE_RELOCATIONS], [test "x$qt_reduce_reloc" != "x"]) - -AX_THRIFT_LIB(c_glib, [C (GLib)], yes) -if test "$with_c_glib" = "yes"; then - PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, have_glib2=no) - PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, have_gobject2=no) - if test "$have_glib2" = "yes" -a "$have_gobject2" = "yes" ; then - have_c_glib="yes" - fi -fi -AM_CONDITIONAL(WITH_C_GLIB, [test "$have_glib2" = "yes" -a "$have_gobject2" = "yes"]) - -AX_THRIFT_LIB(csharp, [C#], yes) -if test "$with_csharp" = "yes"; then - PKG_CHECK_MODULES(MONO, mono >= 2.11.0, mono_2_11=yes, mono_2_11=no) - if test "$mono_2_11" == "yes"; then - AC_PATH_PROG([MCS], [mcs]) - if test "x$MCS" != "x"; then - mono_mcs="yes" - fi - fi - PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no) - PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no) - if test "$have_mono" = "yes" ; then - have_csharp="yes" - fi -fi -AM_CONDITIONAL(WITH_MONO, [test "$have_csharp" = "yes"]) -AM_CONDITIONAL(NET_2_0, [test "$net_3_5" = "no"]) -AM_CONDITIONAL(MONO_MCS, [test "$mono_mcs" = "yes"]) - -AX_THRIFT_LIB(java, [Java], yes) -if test "$with_java" = "yes"; then - AX_JAVAC_AND_JAVA - AC_PATH_PROG([ANT], [ant]) - AX_CHECK_ANT_VERSION($ANT, 1.7) - AC_SUBST(CLASSPATH) - AC_SUBST(ANT_FLAGS) - if test "x$JAVA" != "x" && test "x$JAVAC" != "x" && test "x$ANT" != "x" ; then - have_java="yes" - fi -fi -AM_CONDITIONAL([WITH_JAVA], [test "$have_java" = "yes"]) - -AX_THRIFT_LIB(erlang, [Erlang], yes) -if test "$with_erlang" = "yes"; then - AC_ERLANG_PATH_ERL - AC_ERLANG_PATH_ERLC - if test -n "$ERLC" ; then - AC_ERLANG_SUBST_LIB_DIR - # Install into the detected Erlang directory instead of $libdir/erlang/lib - ERLANG_INSTALL_LIB_DIR="$ERLANG_LIB_DIR" - AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR(AC_PACKAGE_NAME, AC_PACKAGE_VERSION) - fi - if test -n "$ERL" -a -n "$ERLC" ; then - have_erlang="yes" - - # otp_release is simply a number (like "17") for OTP17+ while "R16..." for OTP16 or less. - # OTP version is currently only used for running tests. - if $ERL -eval 'erlang:display(erlang:system_info(otp_release)),halt().' -noshell | grep "^\"R" >/dev/null; then - erlang_otp16_or_less="yes" - fi - fi -fi -AM_CONDITIONAL(WITH_ERLANG, [test "$have_erlang" = "yes"]) -AM_CONDITIONAL(ERLANG_OTP16, [test "$erlang_otp16_or_less" = "yes"]) - -AX_THRIFT_LIB(nodejs, [Nodejs], yes) -have_nodejs=no -if test "$with_nodejs" = "yes"; then - AC_PATH_PROGS([NODEJS], [nodejs node]) - AC_PATH_PROG([NPM], [npm]) - if test "x$NODEJS" != "x" -a "x$NPM" != "x"; then - have_nodejs="yes" - fi -fi -AM_CONDITIONAL(WITH_NODEJS, [test "$have_nodejs" = "yes"]) -AM_CONDITIONAL(HAVE_NPM, [test "x$NPM" != "x"]) - -AX_THRIFT_LIB(lua, [Lua], yes) -have_lua=no -if test "$with_lua" = "yes"; then - AX_PROG_LUA(5.2,, have_lua="yes", have_lua="no") - if test "$have_lua" = "yes"; then - AX_LUA_HEADERS(, have_lua="no") - AX_LUA_LIBS(, have_lua="no") - fi -fi -AM_CONDITIONAL(WITH_LUA, [test "$have_lua" = "yes"]) - -AX_THRIFT_LIB(python, [Python], yes) -if test "$with_python" = "yes"; then - AC_PATH_PROG([TRIAL], [trial]) - AM_PATH_PYTHON(2.4,, :) - if test -n "$TRIAL" && test "x$PYTHON" != "x" && test "x$PYTHON" != "x:" ; then - have_python="yes" - fi -fi -AM_CONDITIONAL(WITH_PYTHON, [test "$have_python" = "yes"]) - -AX_THRIFT_LIB(perl, [Perl], yes) -if test "$with_perl" = "yes"; then - AC_PATH_PROG([PERL], [perl]) - if test -n "$PERL" ; then - AC_PROG_PERL_MODULES([Bit::Vector], success="yes", success="no") - have_perl_bit_vector="$success" - AC_PROG_PERL_MODULES([Class::Accessor], success="yes", success="no") - have_perl_class_accessor="$success" - fi - if test -n "$PERL" -a "$have_perl_bit_vector" = "yes" ; then - if test -n "$PERL" -a "$have_perl_class_accessor" = "yes" ; then - have_perl="yes" - fi - fi -fi -AM_CONDITIONAL(WITH_PERL, [test "$have_perl" = "yes"]) - -AX_THRIFT_LIB(php, [PHP], yes) -if test "$with_php" = "yes"; then - AC_PATH_PROG([PHP], [php]) - if test -n "$PHP" ; then - have_php="yes" - fi -fi -AM_CONDITIONAL(WITH_PHP, [test "$have_php" = "yes"]) - -AX_THRIFT_LIB(php_extension, [PHP_EXTENSION], yes) -if test "$with_php_extension" = "yes"; then - if test -f "lib/php/src/ext/thrift_protocol/configure"; then - AC_PATH_PROG([PHP_CONFIG], [php-config]) - if test -n "$PHP_CONFIG" ; then - AC_CONFIG_SUBDIRS([lib/php/src/ext/thrift_protocol]) - have_php_extension="yes" - fi - fi -fi -AM_CONDITIONAL(WITH_PHP_EXTENSION, [test "$have_php_extension" = "yes"]) - -AC_PATH_PROG([PHPUNIT], [phpunit]) -AM_CONDITIONAL(HAVE_PHPUNIT, [test "x$PHPUNIT" != "x"]) - -AX_THRIFT_LIB(ruby, [Ruby], yes) -have_ruby=no -if test "$with_ruby" = "yes"; then - AC_PATH_PROG([RUBY], [ruby]) - AC_PATH_PROG([BUNDLER], [bundle]) - if test "x$RUBY" != "x" -a "x$BUNDLER" != "x"; then - have_ruby="yes" - fi -fi -AM_CONDITIONAL(WITH_RUBY, [test "$have_ruby" = "yes"]) -AM_CONDITIONAL(HAVE_BUNDLER, [test "x$BUNDLER" != "x"]) - -AX_THRIFT_LIB(haskell, [Haskell], yes) -have_haskell=no -RUNHASKELL=true -CABAL=true -if test "$with_haskell" = "yes"; then - AC_PATH_PROG([CABAL], [cabal]) - AC_PATH_PROG([RUNHASKELL], [runhaskell]) - if test "x$CABAL" != "x" -a "x$RUNHASKELL" != "x"; then - have_haskell="yes" - else - RUNHASKELL=true - CABAL=true - fi -fi -AC_SUBST(CABAL) -AC_SUBST(RUNHASKELL) -AM_CONDITIONAL(WITH_HASKELL, [test "$have_haskell" = "yes"]) - -AX_THRIFT_LIB(go, [Go], yes) -if test "$with_go" = "yes"; then - AC_PATH_PROG([GO], [go]) - if [[ -x "$GO" ]] ; then - AS_IF([test -n "$GO"],[ - ax_go_version="1.4" - - AC_MSG_CHECKING([for Go version]) - golang_version=`$GO version 2>&1 | $SED -e 's/\(go \)\(version \)\(go\)\(@<:@0-9@:>@.@<:@0-9@:>@.@<:@0-9@:>@\)\(@<:@\*@:>@*\).*/\4/'` - AC_MSG_RESULT($golang_version) - AC_SUBST([golang_version],[$golang_version]) - AX_COMPARE_VERSION([$ax_go_version],[le],[$golang_version],[ - : - have_go="yes" - ],[ - : - have_go="no" - ]) - ],[ - AC_MSG_WARN([could not find Go ]) - have_go="no" - ]) - fi -fi -AM_CONDITIONAL(WITH_GO, [test "$have_go" = "yes"]) - - -AX_THRIFT_LIB(haxe, [Haxe], yes) -if test "$with_haxe" = "yes"; then - AC_PATH_PROG([HAXE], [haxe]) - if [[ -x "$HAXE" ]] ; then - AX_PROG_HAXE_VERSION( [3.1.3], have_haxe="yes", have_haxe="no") - fi -fi -AM_CONDITIONAL(WITH_HAXE, [test "$have_haxe" = "yes"]) - - -AX_THRIFT_LIB(d, [D], yes) -if test "$with_d" = "yes"; then - AX_DMD - AC_SUBST(DMD) - if test "x$DMD" != "x"; then - have_d="yes" - fi -fi - -# Determine actual name of the generated D library for use in the command line -# when compiling tests. This is needed because the -l<lib> syntax doesn't work -# with OPTLINK (Windows). -lib_prefix=lib -lib_suffix=a -case "$host_os" in - cygwin* | mingw* | pw32* | cegcc*) - lib_prefix="" - lib_suffix=lib - ;; -esac -D_LIB_NAME="${lib_prefix}thriftd.${lib_suffix}" -AC_SUBST(D_LIB_NAME) -D_EVENT_LIB_NAME="${lib_prefix}thriftd-event.${lib_suffix}" -AC_SUBST(D_EVENT_LIB_NAME) -D_SSL_LIB_NAME="${lib_prefix}thriftd-ssl.${lib_suffix}" -AC_SUBST(D_SSL_LIB_NAME) - -if test "$have_d" = "yes"; then - AX_CHECK_D_MODULE(deimos.event2.event) - have_deimos_event2=$success - - with_d_event_tests="no" - if test "$have_deimos_event2" = "yes"; then - if test "x$DMD_LIBEVENT_FLAGS" = "x"; then - if test "$dmd_optlink" = "yes"; then - AC_MSG_WARN([D libevent interface found, but cannot auto-detect \ -linker flags for OPTLINK. Please set DMD_LIBEVENT_FLAGS manually.]) - else - AX_LIB_EVENT([2.0]) - if test "$success" = "yes"; then - DMD_LIBEVENT_FLAGS=$(echo "$LIBEVENT_LDFLAGS $LIBEVENT_LIBS" | \ - sed -e 's/^ *//g;s/ *$//g;s/^\(.\)/-L\1/g;s/ */ -L/g') - with_d_event_tests="yes" - else - AC_MSG_WARN([D libevent interface present, but libevent library not found.]) - fi - fi - else - with_d_event_tests="yes" - fi - fi - - AX_CHECK_D_MODULE(deimos.openssl.ssl) - have_deimos_openssl=$success - - with_d_ssl_tests="no" - if test "$have_deimos_openssl" = "yes"; then - if test "x$DMD_OPENSSL_FLAGS" = "x"; then - if test "$dmd_optlink" = "yes"; then - AC_MSG_WARN([D OpenSSL interface found, but cannot auto-detect \ -linker flags for OPTLINK. Please set DMD_OPENSSL_FLAGS manually.]) - else - AX_CHECK_OPENSSL([with_d_ssl_tests="yes"]) - if test "$with_d_ssl_tests" = "yes"; then - DMD_OPENSSL_FLAGS=$(echo "$OPENSSL_LDFLAGS $OPENSSL_LIBS" | \ - sed -e 's/^ *//g;s/ *$//g;s/^\(.\)/-L\1/g;s/ */ -L/g') - else - AC_MSG_WARN([D OpenSSL interface present, but OpenSSL library not found.]) - fi - fi - else - with_d_ssl_tests="yes" - fi - fi -fi - -AM_CONDITIONAL(WITH_D, [test "$have_d" = "yes"]) -AM_CONDITIONAL(DMD_OPTLINK, [test "$dmd_optlink" = "yes"]) -AC_SUBST(DMD_OF_DIRSEP, "$dmd_of_dirsep") -AM_CONDITIONAL(HAVE_DEIMOS_EVENT2, [test "$have_deimos_event2" = "yes"]) -AM_CONDITIONAL(WITH_D_EVENT_TESTS, [test "$with_d_event_tests" = "yes"]) -AC_SUBST(DMD_LIBEVENT_FLAGS) -AM_CONDITIONAL(HAVE_DEIMOS_OPENSSL, [test "$have_deimos_openssl" = "yes"]) -AM_CONDITIONAL(WITH_D_SSL_TESTS, [test "$with_d_ssl_tests" = "yes"]) -AC_SUBST(DMD_OPENSSL_FLAGS) - -AC_ARG_ENABLE([tests], - AS_HELP_STRING([--enable-tests], [build tests [default=yes]]), - [], enable_tests=yes -) -have_tests=yes -if test "$enable_tests" = "no"; then - have_tests="no" -fi -AM_CONDITIONAL(WITH_TESTS, [test "$have_tests" = "yes"]) - -AC_ARG_ENABLE([tutorial], - AS_HELP_STRING([--enable-tutorial], [build tutorial [default=yes]]), - [], enable_tutorial=yes -) -have_tutorial=yes -if test "$enable_tutorial" = "no"; then - have_tutorial="no" -fi -AM_CONDITIONAL(WITH_TUTORIAL, [test "$have_tutorial" = "yes"]) - -AM_CONDITIONAL(MINGW, false) -case "${host_os}" in -*mingw*) - mingw32_support="yes" - AC_CHECK_HEADER(windows.h) - AM_CONDITIONAL(MINGW, true) - ;; -*) - AC_ISC_POSIX - ;; -esac - -AC_C_CONST -AC_C_INLINE -AC_C_VOLATILE - -AC_HEADER_STDBOOL -AC_HEADER_STDC -AC_HEADER_TIME -AC_HEADER_SYS_WAIT -AC_TYPE_SIGNAL -AC_CHECK_HEADERS([arpa/inet.h]) -AC_CHECK_HEADERS([sys/param.h]) -AC_CHECK_HEADERS([fcntl.h]) -AC_CHECK_HEADERS([inttypes.h]) -AC_CHECK_HEADERS([limits.h]) -AC_CHECK_HEADERS([netdb.h]) -AC_CHECK_HEADERS([netinet/in.h]) -AC_CHECK_HEADERS([pthread.h]) -AC_CHECK_HEADERS([stddef.h]) -AC_CHECK_HEADERS([stdlib.h]) -AC_CHECK_HEADERS([sys/socket.h]) -AC_CHECK_HEADERS([sys/time.h]) -AC_CHECK_HEADERS([sys/un.h]) -AC_CHECK_HEADERS([sys/poll.h]) -AC_CHECK_HEADERS([sys/resource.h]) -AC_CHECK_HEADERS([unistd.h]) -AC_CHECK_HEADERS([libintl.h]) -AC_CHECK_HEADERS([malloc.h]) -AC_CHECK_HEADERS([openssl/ssl.h]) -AC_CHECK_HEADERS([openssl/rand.h]) -AC_CHECK_HEADERS([openssl/x509v3.h]) -AC_CHECK_HEADERS([sched.h]) -AC_CHECK_HEADERS([wchar.h]) - -AC_CHECK_LIB(pthread, pthread_create) -dnl NOTE(dreiss): I haven't been able to find any really solid docs -dnl on what librt is and how it fits into various Unix systems. -dnl My best guess is that it is where glibc stashes its implementation -dnl of the POSIX Real-Time Extensions. This seems necessary on Linux, -dnl and we haven't yet found a system where this is a problem. -AC_CHECK_LIB(rt, clock_gettime) -AC_CHECK_LIB(socket, setsockopt) - -if test "$have_cpp" = "yes" ; then -# mingw toolchain used to build "Thrift Compiler for Windows" -# does not support libcrypto, so we just check if we building the cpp library -AC_CHECK_LIB(crypto, - BN_init, - [AC_CHECK_LIB(ssl, - SSL_ctrl, - [LIBS="-lssl -lcrypto $LIBS"], - [AC_MSG_ERROR(["Error: libssl required"])], - -lcrypto - )], - [AC_MSG_ERROR(["Error: libcrypto required."])] -) -fi - -AC_TYPE_INT16_T -AC_TYPE_INT32_T -AC_TYPE_INT64_T -AC_TYPE_INT8_T -AC_TYPE_MODE_T -AC_TYPE_OFF_T -AC_TYPE_SIZE_T -AC_TYPE_SSIZE_T -AC_TYPE_UINT16_T -AC_TYPE_UINT32_T -AC_TYPE_UINT64_T -AC_TYPE_UINT8_T -AC_CHECK_TYPES([ptrdiff_t], [], [exit 1]) - -AC_STRUCT_TM - -dnl NOTE(dreiss): AI_ADDRCONFIG is not defined on OpenBSD. -AC_CHECK_DECL([AI_ADDRCONFIG], [], - [AC_DEFINE([AI_ADDRCONFIG], 0, - [Define if the AI_ADDRCONFIG symbol is unavailable])], - [ - #include <sys/types.h> - #include <sys/socket.h> - #include <netdb.h> -]) - -AC_FUNC_ALLOCA -AC_FUNC_FORK -AC_FUNC_MALLOC -AC_FUNC_MEMCMP -AC_FUNC_REALLOC -AC_FUNC_SELECT_ARGTYPES -AC_FUNC_STAT -AC_FUNC_STRERROR_R -AC_FUNC_STRFTIME -AC_FUNC_VPRINTF -AC_CHECK_FUNCS([strtoul]) -AC_CHECK_FUNCS([bzero]) -AC_CHECK_FUNCS([ftruncate]) -AC_CHECK_FUNCS([gethostbyname]) -AC_CHECK_FUNCS([gethostbyname_r]) -AC_CHECK_FUNCS([gettimeofday]) -AC_CHECK_FUNCS([memmove]) -AC_CHECK_FUNCS([memset]) -AC_CHECK_FUNCS([mkdir]) -AC_CHECK_FUNCS([realpath]) -AC_CHECK_FUNCS([select]) -AC_CHECK_FUNCS([setlocale]) -AC_CHECK_FUNCS([socket]) -AC_CHECK_FUNCS([strchr]) -AC_CHECK_FUNCS([strdup]) -AC_CHECK_FUNCS([strerror]) -AC_CHECK_FUNCS([strstr]) -AC_CHECK_FUNCS([strtol]) -AC_CHECK_FUNCS([sqrt]) -dnl The following functions are optional. -AC_CHECK_FUNCS([alarm]) -AC_CHECK_FUNCS([clock_gettime]) -AC_CHECK_FUNCS([sched_get_priority_min]) -AC_CHECK_FUNCS([sched_get_priority_max]) -AC_CHECK_FUNCS([inet_ntoa]) -AC_CHECK_FUNCS([pow]) - -if test "$cross_compiling" = "no" ; then - AX_SIGNED_RIGHT_SHIFT -fi - -dnl autoscan thinks we need this macro because we have a member function -dnl called "error". Invoke the macro but don't run the check so autoscan -dnl thinks we are in the clear. It's highly unlikely that we will ever -dnl actually use the function that this checks for. -if false ; then - AC_FUNC_ERROR_AT_LINE -fi - -# --- Coverage hooks --- - -AC_ARG_ENABLE(coverage, - [ --enable-coverage turn on -fprofile-arcs -ftest-coverage], - [case "${enableval}" in - yes) ENABLE_COVERAGE=1 ;; - no) ENABLE_COVERAGE=0 ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-cov) ;; - esac], - [ENABLE_COVERAGE=2]) - -if test "x[$]ENABLE_COVERAGE" = "x1"; then - AC_MSG_WARN(enable coverage) - GCOV_CFLAGS="`echo \"[$]CFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage" - GCOV_CXXFLAGS="`echo \"[$]CXXFLAGS\" | perl -pe 's/-O\d+//g;'` -fprofile-arcs -ftest-coverage" - GCOV_LDFLAGS="-XCClinker -fprofile-arcs -XCClinker -ftest-coverage" -fi - -AC_SUBST(ENABLE_COVERAGE) -AC_SUBST(GCOV_CFLAGS) -AC_SUBST(GCOV_CXXFLAGS) -AC_SUBST(GCOV_LDFLAGS) - -AC_ARG_ENABLE(boostthreads, - [ --enable-boostthreads use boost threads, instead of POSIX pthread (experimental) ], - [case "${enableval}" in - yes) ENABLE_BOOSTTHREADS=1 ;; - no) ENABLE_BOOSTTHREADS=0 ;; - *) AC_MSG_ERROR(bad value ${enableval} for --enable-cov) ;; - esac], - [ENABLE_BOOSTTHREADS=2]) - - -if test "x[$]ENABLE_BOOSTTHREADS" = "x1"; then - AC_MSG_WARN(enable boostthreads) - AC_DEFINE([USE_BOOST_THREAD], [1], [experimental --enable-boostthreads that replaces POSIX pthread by boost::thread]) - LIBS="-lboost_thread $LIBS" -fi - -AM_CONDITIONAL([WITH_BOOSTTHREADS], [test "x[$]ENABLE_BOOSTTHREADS" = "x1"]) - -AC_CONFIG_HEADERS(config.h:config.hin) -AC_CONFIG_HEADERS(lib/cpp/src/thrift/config.h:config.hin) -# gruard against pre defined config.h -AH_TOP([ -#ifndef CONFIG_H -#define CONFIG_H -]) -AH_BOTTOM([ -#endif -]) - - -AC_CONFIG_FILES([ - Makefile - compiler/cpp/Makefile - compiler/cpp/version.h - compiler/cpp/src/windows/version.h - lib/Makefile - lib/cpp/Makefile - lib/cpp/test/Makefile - lib/cpp/thrift-nb.pc - lib/cpp/thrift-z.pc - lib/cpp/thrift-qt.pc - lib/cpp/thrift-qt5.pc - lib/cpp/thrift.pc - lib/c_glib/Makefile - lib/c_glib/thrift_c_glib.pc - lib/c_glib/test/Makefile - lib/csharp/Makefile - lib/csharp/test/ThriftTest/Makefile - lib/d/Makefile - lib/d/test/Makefile - lib/erl/Makefile - lib/go/Makefile - lib/go/test/Makefile - lib/haxe/test/Makefile - lib/hs/Makefile - lib/java/Makefile - lib/js/test/Makefile - lib/nodejs/Makefile - lib/perl/Makefile - lib/perl/test/Makefile - lib/php/Makefile - lib/php/test/Makefile - lib/py/Makefile - lib/rb/Makefile - lib/lua/Makefile - test/Makefile - test/c_glib/Makefile - test/cpp/Makefile - test/erl/Makefile - test/go/Makefile - test/haxe/Makefile - test/hs/Makefile - test/php/Makefile - test/perl/Makefile - test/py/Makefile - test/py.twisted/Makefile - test/py.tornado/Makefile - test/rb/Makefile - tutorial/Makefile - tutorial/c_glib/Makefile - tutorial/cpp/Makefile - tutorial/go/Makefile - tutorial/haxe/Makefile - tutorial/hs/Makefile - tutorial/java/Makefile - tutorial/js/Makefile - tutorial/nodejs/Makefile - tutorial/py/Makefile - tutorial/py.twisted/Makefile - tutorial/py.tornado/Makefile - tutorial/rb/Makefile -]) - -if test "$have_cpp" = "yes" ; then MAYBE_CPP="cpp" ; else MAYBE_CPP="" ; fi -AC_SUBST([MAYBE_CPP]) -if test "$have_c_glib" = "yes" ; then MAYBE_C_GLIB="c_glib" ; else MAYBE_C_GLIB="" ; fi -AC_SUBST([MAYBE_C_GLIB]) -if test "$have_java" = "yes" ; then MAYBE_JAVA="java" ; else MAYBE_JAVA="" ; fi -AC_SUBST([MAYBE_JAVA]) -if test "$have_csharp" = "yes" ; then MAYBE_CSHARP="csharp" ; else MAYBE_CSHARP="" ; fi -AC_SUBST([MAYBE_CSHARP]) -if test "$have_python" = "yes" ; then MAYBE_PYTHON="python" ; else MAYBE_PYTHON="" ; fi -AC_SUBST([MAYBE_PYTHON]) -if test "$have_ruby" = "yes" ; then MAYBE_RUBY="rb" ; else MAYBE_RUBY="" ; fi -AC_SUBST([MAYBE_RUBY]) -if test "$have_haskell" = "yes" ; then MAYBE_HASKELL="haskell" ; else MAYBE_HASKELL="" ; fi -AC_SUBST([MAYBE_HASKELL]) -if test "$have_perl" = "yes" ; then MAYBE_PERL="perl" ; else MAYBE_PERL="" ; fi -AC_SUBST([MAYBE_PERL]) -if test "$have_php" = "yes" ; then MAYBE_PHP="php" ; else MAYBE_PHP="" ; fi -AC_SUBST([MAYBE_PHP]) -if test "$have_go" = "yes" ; then MAYBE_GO="go" ; else MAYBE_GO="" ; fi -AC_SUBST([MAYBE_GO]) -if test "$have_nodejs" = "yes" ; then MAYBE_NODEJS="nodejs" ; else MAYBE_NODEJS="" ; fi -AC_SUBST([MAYBE_NODEJS]) - -AC_OUTPUT - - -echo -echo "$PACKAGE $VERSION" -echo -echo "Building C++ Library ......... : $have_cpp" -echo "Building C (GLib) Library .... : $have_c_glib" -echo "Building Java Library ........ : $have_java" -echo "Building C# Library .......... : $have_csharp" -echo "Building Python Library ...... : $have_python" -echo "Building Ruby Library ........ : $have_ruby" -echo "Building Haxe Library ........ : $have_haxe" -echo "Building Haskell Library ..... : $have_haskell" -echo "Building Perl Library ........ : $have_perl" -echo "Building PHP Library ......... : $have_php" -echo "Building Erlang Library ...... : $have_erlang" -echo "Building Go Library .......... : $have_go" -echo "Building D Library ........... : $have_d" -echo "Building NodeJS Library ...... : $have_nodejs" -echo "Building Lua Library ......... : $have_lua" - -if test "$have_cpp" = "yes" ; then - echo - echo "C++ Library:" - echo " Build TZlibTransport ...... : $have_zlib" - echo " Build TNonblockingServer .. : $have_libevent" - echo " Build TQTcpServer (Qt4) .... : $have_qt" - echo " Build TQTcpServer (Qt5) .... : $have_qt5" -fi -if test "$have_java" = "yes" ; then - echo - echo "Java Library:" - echo " Using javac ............... : $JAVAC" - echo " Using java ................ : $JAVA" - echo " Using ant ................. : $ANT" -fi -if test "$have_csharp" = "yes" ; then - echo - echo "C# Library:" - echo " Using .NET 3.5 ............ : $net_3_5" -fi -if test "$have_python" = "yes" ; then - echo - echo "Python Library:" - echo " Using Python .............. : $PYTHON" - echo " Using Trial ............... : $TRIAL" -fi -if test "$have_php" = "yes" ; then - echo - echo "PHP Library:" - echo " Using php-config .......... : $PHP_CONFIG" -fi -if test "$have_ruby" = "yes" ; then - echo - echo "Ruby Library:" - echo " Using Ruby ................ : $RUBY" -fi -if test "$have_haskell" = "yes" ; then - echo - echo "Haskell Library:" - echo " Using Haskell ............. : $RUNHASKELL" - echo " Using Cabal ............... : $CABAL" -fi -if test "$have_haxe" = "yes" ; then - echo - echo "Haxe Library:" - echo " Using Haxe ................ : $HAXE" - echo " Using Haxe version ........ : $HAXE_VERSION" -fi -if test "$have_perl" = "yes" ; then - echo - echo "Perl Library:" - echo " Using Perl ................ : $PERL" -fi -if test "$have_erlang" = "yes" ; then - echo - echo "Erlang Library:" - echo " Using erlc ................ : $ERLC" -fi -if test "$have_go" = "yes" ; then - echo - echo "Go Library:" - echo " Using Go................... : $GO" - echo " Using Go version........... : $($GO version)" -fi -if test "$have_d" = "yes" ; then - echo - echo "D Library:" - echo " Using D Compiler .......... : $DMD" - echo " Building D libevent tests . : $with_d_event_tests" - echo " Building D SSL tests ...... : $with_d_ssl_tests" -fi -if test "$have_nodejs" = "yes" ; then - echo - echo "NodeJS Library:" - echo " Using NodeJS .............. : $NODEJS" - echo " Using NodeJS version....... : $($NODEJS --version)" -fi -if test "$have_lua" = "yes" ; then - echo - echo "Lua Library:" - echo " Using Lua .............. : $LUA" -fi -echo -echo "If something is missing that you think should be present," -echo "please skim the output of configure to find the missing" -echo "component. Details are present in config.log." http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/App.config ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/App.config b/depends/thirdparty/thrift/contrib/Rebus/App.config deleted file mode 100644 index 4208af6..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/App.config +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.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. ---> -<configuration> - - <configSections> - <section name="rebus" type="Rebus.Configuration.RebusConfigurationSection, Rebus"/> - </configSections> - - <rebus inputQueue="MyResponses" errorQueue="MyErrors" workers="1"> - <endpoints> - <add messages="RebusSample.MathRequestCall, RebusSample" endpoint="MathRequests"/> - <add messages="RebusSample.MathResponseCall, RebusSample" endpoint="MathResponses"/> - </endpoints> - </rebus> - - <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration> http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/Program.cs ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/Program.cs b/depends/thirdparty/thrift/contrib/Rebus/Program.cs deleted file mode 100644 index 563c62a..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/Program.cs +++ /dev/null @@ -1,81 +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. - */ - -using Rebus.Configuration; -using Rebus.RabbitMQ; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using RebusSample.Client; -using RebusSample.Server; - -namespace RebusSample -{ - class Program - { - static BuiltinContainerAdapter StartRequestServer(string server) - { - // client Rebus configuration - var adapter = new BuiltinContainerAdapter(); - Configure.With(adapter) - .Transport(t => t.UseRabbitMq("amqp://" + server, "MathRequests", "MathRequestErrors")) - .MessageOwnership(o => o.FromRebusConfigurationSection()) - .CreateBus().Start(); - - // register all relevant message handlers - adapter.Register(typeof(MathRequestCallHandler)); - return adapter; - } - - - static BuiltinContainerAdapter StartResponseServer(string server) - { - // client Rebus configuration - var adapter = new BuiltinContainerAdapter(); - Configure.With(adapter) - .Transport(t => t.UseRabbitMq("amqp://" + server, "MathResponses", "MathResponseErrors")) - .MessageOwnership(o => o.FromRebusConfigurationSection()) - .CreateBus().Start(); - - // register all relevant message handlers - adapter.Register(typeof(MathResponseCallHandler)); - return adapter; - } - - static void Main(string[] args) - { - string server = "localhost"; - - // start all servers - var req = StartRequestServer(server); - var rsp = StartResponseServer(server); - - // send the first message - var random = new Random(); - var client = new MathRequestClient(server); - client.DoTheMath(random.Next(), random.Next()); - - // now what? - Console.Write("Hit <ENTER> to stop ... "); - Console.ReadLine(); - } - } -} http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/Properties/AssemblyInfo.cs ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/Properties/AssemblyInfo.cs b/depends/thirdparty/thrift/contrib/Rebus/Properties/AssemblyInfo.cs deleted file mode 100644 index 5de6a14..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,38 +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. - */ - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("RebusSample")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("RebusSample")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: Guid("0af10984-40d3-453d-b1e5-421529e8c7e2")] - -[assembly: AssemblyVersion("0.9.3.0")] -[assembly: AssemblyFileVersion("0.9.3.0")] http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/README.md ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/README.md b/depends/thirdparty/thrift/contrib/Rebus/README.md deleted file mode 100644 index bbb9c49..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/README.md +++ /dev/null @@ -1,21 +0,0 @@ -Sample code for the combination of Thrift with Rebus. - -Rebus is a .NET service bus, similar to NServiceBus, but more lightweight. -It ihas been mainly written by Mogens Heller Grabe and is currently hosted -on GitHub (https://github.com/rebus-org/Rebus) - -As with all ServiceBus or MQ scenarios, due to the highly asynchronous -operations it is recommended to do all calls as "oneway void" calls. - -The configuration can be done via App.Config, via code or even mixed from -both locations. Refer to the Rebus documentation for further details. For -this example, since we are effectively implementing two queue listeners in -only one single process, we do configuration of incoming and error queues -in the code. - -If you want to communicate with non-NET languages, you may need a customized -serializer as well, in order to override Rebus' default wire format. Please -refer to the Rebus docs on how to do that (it's not that hard, really). - -Additional requirements: -- RabbitMQ .NET client (see nuget) http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/RebusSample.csproj ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/RebusSample.csproj b/depends/thirdparty/thrift/contrib/Rebus/RebusSample.csproj deleted file mode 100644 index 4058a6d..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/RebusSample.csproj +++ /dev/null @@ -1,102 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - 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. ---> -<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <ProjectGuid>{264E2126-EDE0-4B47-89C1-B397B25BB13D}</ProjectGuid> - <OutputType>Exe</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>RebusSample</RootNamespace> - <AssemblyName>RebusSample</AssemblyName> - <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> - <FileAlignment>512</FileAlignment> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugSymbols>true</DebugSymbols> - <DebugType>full</DebugType> - <Optimize>false</Optimize> - <OutputPath>bin\Debug\</OutputPath> - <DefineConstants>DEBUG;TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - <PlatformTarget>AnyCPU</PlatformTarget> - <DebugType>pdbonly</DebugType> - <Optimize>true</Optimize> - <OutputPath>bin\Release\</OutputPath> - <DefineConstants>TRACE</DefineConstants> - <ErrorReport>prompt</ErrorReport> - <WarningLevel>4</WarningLevel> - </PropertyGroup> - <ItemGroup> - <Reference Include="RabbitMQ.Client"> - <HintPath>..\..\..\..\..\Toolbox\ServiceBus\3rdparty\rabbitmq-dotnet-client-3.2.1-dotnet-3.0\bin\RabbitMQ.Client.dll</HintPath> - </Reference> - <Reference Include="Rebus"> - <HintPath>..\..\..\..\..\Toolbox\ServiceBus\3rdparty\Rebus-master\deploy\NET40\Rebus.dll</HintPath> - </Reference> - <Reference Include="Rebus.RabbitMQ"> - <HintPath>..\..\..\..\..\Toolbox\ServiceBus\3rdparty\Rebus-master\deploy\NET40\Rebus.RabbitMQ.dll</HintPath> - </Reference> - <Reference Include="System" /> - <Reference Include="System.Core" /> - <Reference Include="System.Xml.Linq" /> - <Reference Include="System.Data.DataSetExtensions" /> - <Reference Include="Microsoft.CSharp" /> - <Reference Include="System.Data" /> - <Reference Include="System.Xml" /> - </ItemGroup> - <ItemGroup> - <Compile Include="gen-csharp\BasicMathClient.cs" /> - <Compile Include="gen-csharp\BasicMathServer.cs" /> - <Compile Include="ServiceImpl\Both.cs" /> - <Compile Include="ServiceImpl\Client.cs" /> - <Compile Include="Program.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - <Compile Include="ServiceImpl\Server.cs" /> - </ItemGroup> - <ItemGroup> - <None Include="App.config" /> - </ItemGroup> - <ItemGroup /> - <ItemGroup> - <ProjectReference Include="..\..\lib\csharp\src\Thrift.csproj"> - <Project>{499eb63c-d74c-47e8-ae48-a2fc94538e9d}</Project> - <Name>Thrift</Name> - </ProjectReference> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <PropertyGroup> - <PreBuildEvent>cd $(ProjectDir) -if not exist gen-csharp\*.cs thrift -gen csharp sample.thrift -</PreBuildEvent> - </PropertyGroup> - <!-- To modify your build process, add your task inside one of the targets below and uncomment it. - Other similar extension points exist, see Microsoft.Common.targets. - <Target Name="BeforeBuild"> - </Target> - <Target Name="AfterBuild"> - </Target> - --> -</Project> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/RebusSample.sln ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/RebusSample.sln b/depends/thirdparty/thrift/contrib/Rebus/RebusSample.sln deleted file mode 100644 index 284ef36..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/RebusSample.sln +++ /dev/null @@ -1,28 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30110.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RebusSample", "RebusSample.csproj", "{264E2126-EDE0-4B47-89C1-B397B25BB13D}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Thrift", "..\..\lib\csharp\src\Thrift.csproj", "{499EB63C-D74C-47E8-AE48-A2FC94538E9D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {264E2126-EDE0-4B47-89C1-B397B25BB13D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {264E2126-EDE0-4B47-89C1-B397B25BB13D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {264E2126-EDE0-4B47-89C1-B397B25BB13D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {264E2126-EDE0-4B47-89C1-B397B25BB13D}.Release|Any CPU.Build.0 = Release|Any CPU - {499EB63C-D74C-47E8-AE48-A2FC94538E9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {499EB63C-D74C-47E8-AE48-A2FC94538E9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {499EB63C-D74C-47E8-AE48-A2FC94538E9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {499EB63C-D74C-47E8-AE48-A2FC94538E9D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal http://git-wip-us.apache.org/repos/asf/incubator-hawq/blob/928eade3/depends/thirdparty/thrift/contrib/Rebus/ServiceImpl/Both.cs ---------------------------------------------------------------------- diff --git a/depends/thirdparty/thrift/contrib/Rebus/ServiceImpl/Both.cs b/depends/thirdparty/thrift/contrib/Rebus/ServiceImpl/Both.cs deleted file mode 100644 index fba67ec..0000000 --- a/depends/thirdparty/thrift/contrib/Rebus/ServiceImpl/Both.cs +++ /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. - */ - -using System; - - -namespace RebusSample -{ - // generic data container for serialized Thrift calls - public class GenericThriftServiceCall - { - public byte[] rawBytes; - } - - // specific containers (one per Thrift service) to leverage Rebus' handler routing - public class MathRequestCall : GenericThriftServiceCall { } - public class MathResponseCall : GenericThriftServiceCall { } - -} \ No newline at end of file
