| # | 
 | # 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. | 
 | # | 
 |  | 
 | ACLOCAL_AMFLAGS = -I ./aclocal | 
 |  | 
 | SUBDIRS = compiler/cpp lib | 
 |  | 
 | if WITH_TESTS | 
 | SUBDIRS += test | 
 | endif | 
 |  | 
 | if WITH_TUTORIAL | 
 | SUBDIRS += tutorial | 
 | endif | 
 |  | 
 | clean-local: | 
 | 	$(RM) -r vendor/ | 
 |  | 
 | distclean-local: | 
 | 	$(RM) -r .dub/ | 
 | 	$(RM) -r autom4te.cache/ | 
 |  | 
 | CLEANFILES = \ | 
 | 	composer.lock \ | 
 | 	dub.selections.json | 
 |  | 
 | DISTCLEANFILES = \ | 
 | 	Makefile \ | 
 | 	Makefile.in \ | 
 | 	aclocal.m4 \ | 
 | 	apache-thrift-test-library \ | 
 | 	autoscan.log \ | 
 | 	compile \ | 
 | 	config.guess \ | 
 | 	config.hin \ | 
 | 	config.hin~ \ | 
 | 	config.log \ | 
 | 	config.status \ | 
 | 	config.sub \ | 
 | 	configure \ | 
 | 	configure.scan \ | 
 |     debcomp \ | 
 |     install-sh \ | 
 |     ltmain.sh \ | 
 |     missing \ | 
 |     ylwrap | 
 |  | 
 | dist-hook: | 
 | 	find $(distdir) -type f \( -iname ".DS_Store" -or -iname "._*" -or -iname ".gitignore" \) | xargs rm -f | 
 | 	find $(distdir) -type d \( -iname ".deps" -or -iname ".libs" \) | xargs rm -rf | 
 | 	find $(distdir) -type d \( -iname ".svn" -or -iname ".git" \) | xargs rm -rf | 
 |  | 
 | print-version: | 
 | 	@echo $(PACKAGE_VERSION) | 
 |  | 
 | .PHONY: precross cross | 
 | precross-%: all | 
 | 	$(MAKE) -C $* precross | 
 | precross: all precross-test precross-lib | 
 |  | 
 | empty := | 
 | space := $(empty) $(empty) | 
 | comma := , | 
 |  | 
 | CROSS_LANGS = @MAYBE_CPP@ @MAYBE_C_GLIB@ @MAYBE_CL@ @MAYBE_D@ @MAYBE_JAVA@ @MAYBE_PYTHON@ @MAYBE_PY3@ @MAYBE_RUBY@ @MAYBE_PERL@ @MAYBE_PHP@ @MAYBE_GO@ @MAYBE_NODEJS@ @MAYBE_DART@ @MAYBE_ERLANG@ @MAYBE_LUA@ @MAYBE_RS@ @MAYBE_NETSTD@ @MAYBE_NODETS@ @MAYBE_KOTLIN@ @MAYBE_SWIFT@ | 
 | CROSS_LANGS_COMMA_SEPARATED = $(subst $(space),$(comma),$(CROSS_LANGS)) | 
 |  | 
 | if WITH_PY3 | 
 | CROSS_PY=$(PYTHON3) | 
 | else | 
 | CROSS_PY=$(PYTHON) | 
 | endif | 
 |  | 
 | if WITH_PYTHON | 
 | crossfeature: precross | 
 | 	$(CROSS_PY) test/test.py --retry-count 5 --features .* --skip-known-failures --server $(CROSS_LANGS_COMMA_SEPARATED) | 
 | else | 
 | # feature test needs python build | 
 | crossfeature: | 
 | endif | 
 |  | 
 | cross-%: precross crossfeature | 
 | 	$(CROSS_PY) test/test.py --retry-count 5 --skip-known-failures --server $(CROSS_LANGS_COMMA_SEPARATED) --client $(CROSS_LANGS_COMMA_SEPARATED) --regex "$*" | 
 |  | 
 | cross: cross-.* | 
 |  | 
 | TIMES = 1 2 3 | 
 | fail: precross | 
 | 	$(CROSS_PY) test/test.py || true | 
 | 	$(CROSS_PY) test/test.py --update-expected-failures=overwrite | 
 | 	$(foreach var,$(TIMES),test/test.py -s || true;test/test.py --update-expected-failures=merge;) | 
 |  | 
 | codespell_skip_files = \ | 
 | 	*.jar \ | 
 | 	*.class \ | 
 | 	*.so \ | 
 | 	*.a \ | 
 | 	*.la \ | 
 | 	*.o \ | 
 | 	*.p12 \ | 
 | 	*OCamlMakefile \ | 
 | 	.keystore \ | 
 | 	.truststore \ | 
 | 	CHANGES \ | 
 | 	config.sub \ | 
 | 	configure \ | 
 | 	depcomp \ | 
 | 	libtool.m4 \ | 
 | 	output.* \ | 
 | 	rebar \ | 
 | 	thrift | 
 |  | 
 | skipped_files = $(subst $(space),$(comma),$(codespell_skip_files)) | 
 |  | 
 | style-local: | 
 | 	codespell --write-changes --skip=$(skipped_files) --disable-colors | 
 |  | 
 | distdir: | 
 | 	$(MAKE) $(AM_MAKEFLAGS) distdir-am | 
 |  | 
 | EXTRA_DIST = \ | 
 | 	.asf.yaml \ | 
 | 	.clang-format \ | 
 | 	.dockerignore \ | 
 | 	.editorconfig \ | 
 | 	.flake8 \ | 
 | 	.gitattributes \ | 
 | 	.gitignore \ | 
 | 	.github/dependabot.yml \ | 
 | 	.github/pull_request_template.md \ | 
 | 	.github/stale.yml \ | 
 | 	.github/workflows/build.yml \ | 
 | 	.github/workflows/cmake.yml \ | 
 | 	.github/workflows/pypi.yml \ | 
 | 	.github/workflows/release_rust.yml \ | 
 | 	.travis.yml \ | 
 | 	ApacheThrift.nuspec \ | 
 | 	appveyor.yml \ | 
 | 	bootstrap.sh \ | 
 | 	bower.json \ | 
 | 	build \ | 
 | 	CHANGES.md \ | 
 | 	CMakeLists.txt \ | 
 | 	composer.json \ | 
 | 	contrib \ | 
 | 	CONTRIBUTING.md \ | 
 | 	debian \ | 
 | 	doap.rdf \ | 
 | 	doc \ | 
 | 	dub.json \ | 
 | 	eslint.config.mjs \ | 
 | 	go.mod \ | 
 | 	jitpack.yml \ | 
 | 	LANGUAGES.md \ | 
 | 	LICENSE \ | 
 | 	NOTICE \ | 
 | 	package.json \ | 
 | 	package-lock.json \ | 
 | 	Package.swift \ | 
 | 	phpcs.xml.dist \ | 
 | 	README.md \ | 
 | 	rust-toolchain \ | 
 | 	sonar-project.properties \ | 
 | 	Thrift.podspec |