Build debug/optimized builds into different target directories.

This will make auto-running different test configurations a little easier.
	Change on 2014/12/19 by ctiller <ctiller@google.com>
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=82555939
diff --git a/Makefile b/Makefile
index 13766ae..64474fd 100644
--- a/Makefile
+++ b/Makefile
@@ -27,9 +27,11 @@
 ifeq ($(DEBUG),)
 CPPFLAGS += -O2
 DEFINES += NDEBUG
+TGTDIR = opt
 else
 CPPFLAGS += -O0
 DEFINES += _DEBUG DEBUG
+TGTDIR = dbg
 endif
 
 CFLAGS += -std=c89 -pedantic
@@ -205,6 +207,207 @@
 stop:
 	@false
 
+gen_hpack_tables: bins/$(TGTDIR)/gen_hpack_tables
+cpp_plugin: bins/$(TGTDIR)/cpp_plugin
+ruby_plugin: bins/$(TGTDIR)/ruby_plugin
+grpc_byte_buffer_reader_test: bins/$(TGTDIR)/grpc_byte_buffer_reader_test
+gpr_cancellable_test: bins/$(TGTDIR)/gpr_cancellable_test
+gpr_log_test: bins/$(TGTDIR)/gpr_log_test
+gpr_useful_test: bins/$(TGTDIR)/gpr_useful_test
+gpr_cmdline_test: bins/$(TGTDIR)/gpr_cmdline_test
+gpr_histogram_test: bins/$(TGTDIR)/gpr_histogram_test
+gpr_host_port_test: bins/$(TGTDIR)/gpr_host_port_test
+gpr_slice_buffer_test: bins/$(TGTDIR)/gpr_slice_buffer_test
+gpr_slice_test: bins/$(TGTDIR)/gpr_slice_test
+gpr_string_test: bins/$(TGTDIR)/gpr_string_test
+gpr_sync_test: bins/$(TGTDIR)/gpr_sync_test
+gpr_thd_test: bins/$(TGTDIR)/gpr_thd_test
+gpr_time_test: bins/$(TGTDIR)/gpr_time_test
+murmur_hash_test: bins/$(TGTDIR)/murmur_hash_test
+grpc_stream_op_test: bins/$(TGTDIR)/grpc_stream_op_test
+alpn_test: bins/$(TGTDIR)/alpn_test
+time_averaged_stats_test: bins/$(TGTDIR)/time_averaged_stats_test
+chttp2_stream_encoder_test: bins/$(TGTDIR)/chttp2_stream_encoder_test
+hpack_table_test: bins/$(TGTDIR)/hpack_table_test
+chttp2_stream_map_test: bins/$(TGTDIR)/chttp2_stream_map_test
+hpack_parser_test: bins/$(TGTDIR)/hpack_parser_test
+transport_metadata_test: bins/$(TGTDIR)/transport_metadata_test
+chttp2_status_conversion_test: bins/$(TGTDIR)/chttp2_status_conversion_test
+chttp2_transport_end2end_test: bins/$(TGTDIR)/chttp2_transport_end2end_test
+tcp_posix_test: bins/$(TGTDIR)/tcp_posix_test
+dualstack_socket_test: bins/$(TGTDIR)/dualstack_socket_test
+no_server_test: bins/$(TGTDIR)/no_server_test
+resolve_address_test: bins/$(TGTDIR)/resolve_address_test
+sockaddr_utils_test: bins/$(TGTDIR)/sockaddr_utils_test
+tcp_server_posix_test: bins/$(TGTDIR)/tcp_server_posix_test
+tcp_client_posix_test: bins/$(TGTDIR)/tcp_client_posix_test
+grpc_channel_stack_test: bins/$(TGTDIR)/grpc_channel_stack_test
+metadata_buffer_test: bins/$(TGTDIR)/metadata_buffer_test
+grpc_completion_queue_test: bins/$(TGTDIR)/grpc_completion_queue_test
+grpc_completion_queue_benchmark: bins/$(TGTDIR)/grpc_completion_queue_benchmark
+census_window_stats_test: bins/$(TGTDIR)/census_window_stats_test
+census_statistics_quick_test: bins/$(TGTDIR)/census_statistics_quick_test
+census_statistics_small_log_test: bins/$(TGTDIR)/census_statistics_small_log_test
+census_statistics_performance_test: bins/$(TGTDIR)/census_statistics_performance_test
+census_statistics_multiple_writers_test: bins/$(TGTDIR)/census_statistics_multiple_writers_test
+census_statistics_multiple_writers_circular_buffer_test: bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test
+census_stub_test: bins/$(TGTDIR)/census_stub_test
+census_hash_table_test: bins/$(TGTDIR)/census_hash_table_test
+fling_server: bins/$(TGTDIR)/fling_server
+fling_client: bins/$(TGTDIR)/fling_client
+fling_test: bins/$(TGTDIR)/fling_test
+echo_server: bins/$(TGTDIR)/echo_server
+echo_client: bins/$(TGTDIR)/echo_client
+echo_test: bins/$(TGTDIR)/echo_test
+low_level_ping_pong_benchmark: bins/$(TGTDIR)/low_level_ping_pong_benchmark
+message_compress_test: bins/$(TGTDIR)/message_compress_test
+bin_encoder_test: bins/$(TGTDIR)/bin_encoder_test
+secure_endpoint_test: bins/$(TGTDIR)/secure_endpoint_test
+httpcli_format_request_test: bins/$(TGTDIR)/httpcli_format_request_test
+httpcli_parser_test: bins/$(TGTDIR)/httpcli_parser_test
+httpcli_test: bins/$(TGTDIR)/httpcli_test
+grpc_credentials_test: bins/$(TGTDIR)/grpc_credentials_test
+grpc_fetch_oauth2: bins/$(TGTDIR)/grpc_fetch_oauth2
+grpc_base64_test: bins/$(TGTDIR)/grpc_base64_test
+grpc_json_token_test: bins/$(TGTDIR)/grpc_json_token_test
+timeout_encoding_test: bins/$(TGTDIR)/timeout_encoding_test
+fd_posix_test: bins/$(TGTDIR)/fd_posix_test
+fling_stream_test: bins/$(TGTDIR)/fling_stream_test
+lame_client_test: bins/$(TGTDIR)/lame_client_test
+thread_pool_test: bins/$(TGTDIR)/thread_pool_test
+status_test: bins/$(TGTDIR)/status_test
+sync_client_async_server_test: bins/$(TGTDIR)/sync_client_async_server_test
+qps_client: bins/$(TGTDIR)/qps_client
+qps_server: bins/$(TGTDIR)/qps_server
+interop_server: bins/$(TGTDIR)/interop_server
+interop_client: bins/$(TGTDIR)/interop_client
+end2end_test: bins/$(TGTDIR)/end2end_test
+channel_arguments_test: bins/$(TGTDIR)/channel_arguments_test
+alarm_test: bins/$(TGTDIR)/alarm_test
+alarm_list_test: bins/$(TGTDIR)/alarm_list_test
+alarm_heap_test: bins/$(TGTDIR)/alarm_heap_test
+time_test: bins/$(TGTDIR)/time_test
+chttp2_fake_security_cancel_after_accept_test: bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test
+chttp2_fake_security_cancel_after_accept_and_writes_closed_test: bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test
+chttp2_fake_security_cancel_after_invoke_test: bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test
+chttp2_fake_security_cancel_before_invoke_test: bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test
+chttp2_fake_security_cancel_in_a_vacuum_test: bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test
+chttp2_fake_security_disappearing_server_test: bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test
+chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test: bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test
+chttp2_fake_security_early_server_shutdown_finishes_tags_test: bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test
+chttp2_fake_security_invoke_large_request_test: bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test
+chttp2_fake_security_max_concurrent_streams_test: bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test
+chttp2_fake_security_no_op_test: bins/$(TGTDIR)/chttp2_fake_security_no_op_test
+chttp2_fake_security_ping_pong_streaming_test: bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test
+chttp2_fake_security_request_response_with_binary_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test
+chttp2_fake_security_request_response_with_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test
+chttp2_fake_security_request_response_with_payload_test: bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test
+chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test
+chttp2_fake_security_simple_delayed_request_test: bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test
+chttp2_fake_security_simple_request_test: bins/$(TGTDIR)/chttp2_fake_security_simple_request_test
+chttp2_fake_security_thread_stress_test: bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test
+chttp2_fake_security_writes_done_hangs_with_pending_read_test: bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test
+chttp2_fullstack_cancel_after_accept_test: bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test
+chttp2_fullstack_cancel_after_accept_and_writes_closed_test: bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test
+chttp2_fullstack_cancel_after_invoke_test: bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test
+chttp2_fullstack_cancel_before_invoke_test: bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test
+chttp2_fullstack_cancel_in_a_vacuum_test: bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test
+chttp2_fullstack_disappearing_server_test: bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test
+chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test: bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test
+chttp2_fullstack_early_server_shutdown_finishes_tags_test: bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test
+chttp2_fullstack_invoke_large_request_test: bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test
+chttp2_fullstack_max_concurrent_streams_test: bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test
+chttp2_fullstack_no_op_test: bins/$(TGTDIR)/chttp2_fullstack_no_op_test
+chttp2_fullstack_ping_pong_streaming_test: bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test
+chttp2_fullstack_request_response_with_binary_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test
+chttp2_fullstack_request_response_with_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test
+chttp2_fullstack_request_response_with_payload_test: bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test
+chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test
+chttp2_fullstack_simple_delayed_request_test: bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test
+chttp2_fullstack_simple_request_test: bins/$(TGTDIR)/chttp2_fullstack_simple_request_test
+chttp2_fullstack_thread_stress_test: bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test
+chttp2_fullstack_writes_done_hangs_with_pending_read_test: bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test
+chttp2_simple_ssl_fullstack_cancel_after_accept_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test
+chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test
+chttp2_simple_ssl_fullstack_cancel_after_invoke_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test
+chttp2_simple_ssl_fullstack_cancel_before_invoke_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test
+chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test
+chttp2_simple_ssl_fullstack_disappearing_server_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test
+chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test
+chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test
+chttp2_simple_ssl_fullstack_invoke_large_request_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test
+chttp2_simple_ssl_fullstack_max_concurrent_streams_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test
+chttp2_simple_ssl_fullstack_no_op_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test
+chttp2_simple_ssl_fullstack_ping_pong_streaming_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test
+chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test
+chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test
+chttp2_simple_ssl_fullstack_request_response_with_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test
+chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test
+chttp2_simple_ssl_fullstack_simple_delayed_request_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test
+chttp2_simple_ssl_fullstack_simple_request_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test
+chttp2_simple_ssl_fullstack_thread_stress_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test
+chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test: bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test
+chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test
+chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test
+chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test
+chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test
+chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test
+chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test
+chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test
+chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test
+chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test
+chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test
+chttp2_simple_ssl_with_oauth2_fullstack_no_op_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test
+chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test
+chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test
+chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test
+chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test
+chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test
+chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test
+chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test
+chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test
+chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test: bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test
+chttp2_socket_pair_cancel_after_accept_test: bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test
+chttp2_socket_pair_cancel_after_accept_and_writes_closed_test: bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test
+chttp2_socket_pair_cancel_after_invoke_test: bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test
+chttp2_socket_pair_cancel_before_invoke_test: bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test
+chttp2_socket_pair_cancel_in_a_vacuum_test: bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test
+chttp2_socket_pair_disappearing_server_test: bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test
+chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test: bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test
+chttp2_socket_pair_early_server_shutdown_finishes_tags_test: bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test
+chttp2_socket_pair_invoke_large_request_test: bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test
+chttp2_socket_pair_max_concurrent_streams_test: bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test
+chttp2_socket_pair_no_op_test: bins/$(TGTDIR)/chttp2_socket_pair_no_op_test
+chttp2_socket_pair_ping_pong_streaming_test: bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test
+chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test
+chttp2_socket_pair_request_response_with_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test
+chttp2_socket_pair_request_response_with_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test
+chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test
+chttp2_socket_pair_simple_delayed_request_test: bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test
+chttp2_socket_pair_simple_request_test: bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test
+chttp2_socket_pair_thread_stress_test: bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test
+chttp2_socket_pair_writes_done_hangs_with_pending_read_test: bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test
+chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test
+chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test
+chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test
+chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test
+chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test
+chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test
+chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test
+chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test
+chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test
+chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test
+chttp2_socket_pair_one_byte_at_a_time_no_op_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test
+chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test
+chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test
+chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test
+chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test
+chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test
+chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test
+chttp2_socket_pair_one_byte_at_a_time_simple_request_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test
+chttp2_socket_pair_one_byte_at_a_time_thread_stress_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test
+chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test: bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
+
 run_dep_checks:
 	$(EVENT2_CHECK_CMD) || true
 	$(OPENSSL_ALPN_CHECK_CMD) || true
@@ -220,25 +423,25 @@
 
 static: static_c static_cxx
 
-static_c: dep_c libs/libgpr.a libs/libgrpc.a libs/libgrpc_unsecure.a
+static_c: dep_c libs/$(TGTDIR)/libgpr.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgrpc_unsecure.a
 
-static_cxx: dep_cxx libs/libgrpc++.a
+static_cxx: dep_cxx libs/$(TGTDIR)/libgrpc++.a
 
 shared: shared_c shared_cxx
 
-shared_c: dep_c libs/libgpr.so.$(VERSION) libs/libgrpc.so.$(VERSION) libs/libgrpc_unsecure.so.$(VERSION)
+shared_c: dep_c libs/$(TGTDIR)/libgpr.so.$(VERSION) libs/$(TGTDIR)/libgrpc.so.$(VERSION) libs/$(TGTDIR)/libgrpc_unsecure.so.$(VERSION)
 
-shared_cxx: dep_cxx libs/libgrpc++.so.$(VERSION)
+shared_cxx: dep_cxx libs/$(TGTDIR)/libgrpc++.so.$(VERSION)
 
 privatelibs: privatelibs_c privatelibs_cxx
 
-privatelibs_c: dep_c libs/libgrpc_test_util.a libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_test_disappearing_server.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_test_invoke_large_request.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_test_no_op.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_test_simple_request.a libs/libend2end_test_thread_stress.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a
+privatelibs_c: dep_c libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a
 
-privatelibs_cxx: dep_cxx libs/libgrpc_test_util.a libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_test_disappearing_server.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_test_invoke_large_request.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_test_no_op.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_test_simple_request.a libs/libend2end_test_thread_stress.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a
+privatelibs_cxx: dep_cxx libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a
 
 buildtests: buildtests_c buildtests_cxx
 
-buildtests_c: bins_dep_c privatelibs_c bins/grpc_byte_buffer_reader_test bins/gpr_cancellable_test bins/gpr_log_test bins/gpr_useful_test bins/gpr_cmdline_test bins/gpr_histogram_test bins/gpr_host_port_test bins/gpr_slice_buffer_test bins/gpr_slice_test bins/gpr_string_test bins/gpr_sync_test bins/gpr_thd_test bins/gpr_time_test bins/murmur_hash_test bins/grpc_stream_op_test bins/alpn_test bins/time_averaged_stats_test bins/chttp2_stream_encoder_test bins/hpack_table_test bins/chttp2_stream_map_test bins/hpack_parser_test bins/transport_metadata_test bins/chttp2_status_conversion_test bins/chttp2_transport_end2end_test bins/tcp_posix_test bins/dualstack_socket_test bins/no_server_test bins/resolve_address_test bins/sockaddr_utils_test bins/tcp_server_posix_test bins/tcp_client_posix_test bins/grpc_channel_stack_test bins/metadata_buffer_test bins/grpc_completion_queue_test bins/census_window_stats_test bins/census_statistics_quick_test bins/census_statistics_small_log_test bins/census_statistics_performance_test bins/census_statistics_multiple_writers_test bins/census_statistics_multiple_writers_circular_buffer_test bins/census_stub_test bins/census_hash_table_test bins/fling_server bins/fling_client bins/fling_test bins/echo_server bins/echo_client bins/echo_test bins/message_compress_test bins/bin_encoder_test bins/secure_endpoint_test bins/httpcli_format_request_test bins/httpcli_parser_test bins/httpcli_test bins/grpc_credentials_test bins/grpc_base64_test bins/grpc_json_token_test bins/timeout_encoding_test bins/fd_posix_test bins/fling_stream_test bins/lame_client_test bins/alarm_test bins/alarm_list_test bins/alarm_heap_test bins/time_test bins/chttp2_fake_security_cancel_after_accept_test bins/chttp2_fake_security_cancel_after_accept_and_writes_closed_test bins/chttp2_fake_security_cancel_after_invoke_test bins/chttp2_fake_security_cancel_before_invoke_test bins/chttp2_fake_security_cancel_in_a_vacuum_test bins/chttp2_fake_security_disappearing_server_test bins/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test bins/chttp2_fake_security_early_server_shutdown_finishes_tags_test bins/chttp2_fake_security_invoke_large_request_test bins/chttp2_fake_security_max_concurrent_streams_test bins/chttp2_fake_security_no_op_test bins/chttp2_fake_security_ping_pong_streaming_test bins/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test bins/chttp2_fake_security_request_response_with_metadata_and_payload_test bins/chttp2_fake_security_request_response_with_payload_test bins/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test bins/chttp2_fake_security_simple_delayed_request_test bins/chttp2_fake_security_simple_request_test bins/chttp2_fake_security_thread_stress_test bins/chttp2_fake_security_writes_done_hangs_with_pending_read_test bins/chttp2_fullstack_cancel_after_accept_test bins/chttp2_fullstack_cancel_after_accept_and_writes_closed_test bins/chttp2_fullstack_cancel_after_invoke_test bins/chttp2_fullstack_cancel_before_invoke_test bins/chttp2_fullstack_cancel_in_a_vacuum_test bins/chttp2_fullstack_disappearing_server_test bins/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test bins/chttp2_fullstack_early_server_shutdown_finishes_tags_test bins/chttp2_fullstack_invoke_large_request_test bins/chttp2_fullstack_max_concurrent_streams_test bins/chttp2_fullstack_no_op_test bins/chttp2_fullstack_ping_pong_streaming_test bins/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test bins/chttp2_fullstack_request_response_with_metadata_and_payload_test bins/chttp2_fullstack_request_response_with_payload_test bins/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test bins/chttp2_fullstack_simple_delayed_request_test bins/chttp2_fullstack_simple_request_test bins/chttp2_fullstack_thread_stress_test bins/chttp2_fullstack_writes_done_hangs_with_pending_read_test bins/chttp2_simple_ssl_fullstack_cancel_after_accept_test bins/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test bins/chttp2_simple_ssl_fullstack_cancel_after_invoke_test bins/chttp2_simple_ssl_fullstack_cancel_before_invoke_test bins/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test bins/chttp2_simple_ssl_fullstack_disappearing_server_test bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test bins/chttp2_simple_ssl_fullstack_invoke_large_request_test bins/chttp2_simple_ssl_fullstack_max_concurrent_streams_test bins/chttp2_simple_ssl_fullstack_no_op_test bins/chttp2_simple_ssl_fullstack_ping_pong_streaming_test bins/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test bins/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test bins/chttp2_simple_ssl_fullstack_request_response_with_payload_test bins/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test bins/chttp2_simple_ssl_fullstack_simple_delayed_request_test bins/chttp2_simple_ssl_fullstack_simple_request_test bins/chttp2_simple_ssl_fullstack_thread_stress_test bins/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test bins/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test bins/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test bins/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test bins/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test bins/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test bins/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test bins/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test bins/chttp2_socket_pair_cancel_after_accept_test bins/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test bins/chttp2_socket_pair_cancel_after_invoke_test bins/chttp2_socket_pair_cancel_before_invoke_test bins/chttp2_socket_pair_cancel_in_a_vacuum_test bins/chttp2_socket_pair_disappearing_server_test bins/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test bins/chttp2_socket_pair_early_server_shutdown_finishes_tags_test bins/chttp2_socket_pair_invoke_large_request_test bins/chttp2_socket_pair_max_concurrent_streams_test bins/chttp2_socket_pair_no_op_test bins/chttp2_socket_pair_ping_pong_streaming_test bins/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test bins/chttp2_socket_pair_request_response_with_metadata_and_payload_test bins/chttp2_socket_pair_request_response_with_payload_test bins/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test bins/chttp2_socket_pair_simple_delayed_request_test bins/chttp2_socket_pair_simple_request_test bins/chttp2_socket_pair_thread_stress_test bins/chttp2_socket_pair_writes_done_hangs_with_pending_read_test bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test bins/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test bins/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test bins/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test bins/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test bins/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test bins/chttp2_socket_pair_one_byte_at_a_time_no_op_test bins/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test bins/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test bins/chttp2_socket_pair_one_byte_at_a_time_simple_request_test bins/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test bins/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
+buildtests_c: bins_dep_c privatelibs_c bins/$(TGTDIR)/grpc_byte_buffer_reader_test bins/$(TGTDIR)/gpr_cancellable_test bins/$(TGTDIR)/gpr_log_test bins/$(TGTDIR)/gpr_useful_test bins/$(TGTDIR)/gpr_cmdline_test bins/$(TGTDIR)/gpr_histogram_test bins/$(TGTDIR)/gpr_host_port_test bins/$(TGTDIR)/gpr_slice_buffer_test bins/$(TGTDIR)/gpr_slice_test bins/$(TGTDIR)/gpr_string_test bins/$(TGTDIR)/gpr_sync_test bins/$(TGTDIR)/gpr_thd_test bins/$(TGTDIR)/gpr_time_test bins/$(TGTDIR)/murmur_hash_test bins/$(TGTDIR)/grpc_stream_op_test bins/$(TGTDIR)/alpn_test bins/$(TGTDIR)/time_averaged_stats_test bins/$(TGTDIR)/chttp2_stream_encoder_test bins/$(TGTDIR)/hpack_table_test bins/$(TGTDIR)/chttp2_stream_map_test bins/$(TGTDIR)/hpack_parser_test bins/$(TGTDIR)/transport_metadata_test bins/$(TGTDIR)/chttp2_status_conversion_test bins/$(TGTDIR)/chttp2_transport_end2end_test bins/$(TGTDIR)/tcp_posix_test bins/$(TGTDIR)/dualstack_socket_test bins/$(TGTDIR)/no_server_test bins/$(TGTDIR)/resolve_address_test bins/$(TGTDIR)/sockaddr_utils_test bins/$(TGTDIR)/tcp_server_posix_test bins/$(TGTDIR)/tcp_client_posix_test bins/$(TGTDIR)/grpc_channel_stack_test bins/$(TGTDIR)/metadata_buffer_test bins/$(TGTDIR)/grpc_completion_queue_test bins/$(TGTDIR)/census_window_stats_test bins/$(TGTDIR)/census_statistics_quick_test bins/$(TGTDIR)/census_statistics_small_log_test bins/$(TGTDIR)/census_statistics_performance_test bins/$(TGTDIR)/census_statistics_multiple_writers_test bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test bins/$(TGTDIR)/census_stub_test bins/$(TGTDIR)/census_hash_table_test bins/$(TGTDIR)/fling_server bins/$(TGTDIR)/fling_client bins/$(TGTDIR)/fling_test bins/$(TGTDIR)/echo_server bins/$(TGTDIR)/echo_client bins/$(TGTDIR)/echo_test bins/$(TGTDIR)/message_compress_test bins/$(TGTDIR)/bin_encoder_test bins/$(TGTDIR)/secure_endpoint_test bins/$(TGTDIR)/httpcli_format_request_test bins/$(TGTDIR)/httpcli_parser_test bins/$(TGTDIR)/httpcli_test bins/$(TGTDIR)/grpc_credentials_test bins/$(TGTDIR)/grpc_base64_test bins/$(TGTDIR)/grpc_json_token_test bins/$(TGTDIR)/timeout_encoding_test bins/$(TGTDIR)/fd_posix_test bins/$(TGTDIR)/fling_stream_test bins/$(TGTDIR)/lame_client_test bins/$(TGTDIR)/alarm_test bins/$(TGTDIR)/alarm_list_test bins/$(TGTDIR)/alarm_heap_test bins/$(TGTDIR)/time_test bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test bins/$(TGTDIR)/chttp2_fake_security_no_op_test bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test bins/$(TGTDIR)/chttp2_fake_security_simple_request_test bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test bins/$(TGTDIR)/chttp2_fullstack_no_op_test bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test bins/$(TGTDIR)/chttp2_fullstack_simple_request_test bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test bins/$(TGTDIR)/chttp2_socket_pair_no_op_test bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
 
 buildtests_cxx: bins_dep_cxx privatelibs_cxx bins/thread_pool_test bins/status_test bins/sync_client_async_server_test bins/qps_client bins/qps_server bins/interop_server bins/interop_client bins/end2end_test bins/channel_arguments_test
 
@@ -246,391 +449,391 @@
 
 test_c: buildtests_c
 	$(E) "[RUN]     Testing grpc_byte_buffer_reader_test"
-	$(Q) ./bins/grpc_byte_buffer_reader_test || ( echo test grpc_byte_buffer_reader_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_byte_buffer_reader_test || ( echo test grpc_byte_buffer_reader_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_cancellable_test"
-	$(Q) ./bins/gpr_cancellable_test || ( echo test gpr_cancellable_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_cancellable_test || ( echo test gpr_cancellable_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_log_test"
-	$(Q) ./bins/gpr_log_test || ( echo test gpr_log_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_log_test || ( echo test gpr_log_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_useful_test"
-	$(Q) ./bins/gpr_useful_test || ( echo test gpr_useful_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_useful_test || ( echo test gpr_useful_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_cmdline_test"
-	$(Q) ./bins/gpr_cmdline_test || ( echo test gpr_cmdline_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_cmdline_test || ( echo test gpr_cmdline_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_histogram_test"
-	$(Q) ./bins/gpr_histogram_test || ( echo test gpr_histogram_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_histogram_test || ( echo test gpr_histogram_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_host_port_test"
-	$(Q) ./bins/gpr_host_port_test || ( echo test gpr_host_port_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_host_port_test || ( echo test gpr_host_port_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_slice_buffer_test"
-	$(Q) ./bins/gpr_slice_buffer_test || ( echo test gpr_slice_buffer_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_slice_buffer_test || ( echo test gpr_slice_buffer_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_slice_test"
-	$(Q) ./bins/gpr_slice_test || ( echo test gpr_slice_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_slice_test || ( echo test gpr_slice_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_string_test"
-	$(Q) ./bins/gpr_string_test || ( echo test gpr_string_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_string_test || ( echo test gpr_string_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_sync_test"
-	$(Q) ./bins/gpr_sync_test || ( echo test gpr_sync_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_sync_test || ( echo test gpr_sync_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_thd_test"
-	$(Q) ./bins/gpr_thd_test || ( echo test gpr_thd_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_thd_test || ( echo test gpr_thd_test failed ; exit 1 )
 	$(E) "[RUN]     Testing gpr_time_test"
-	$(Q) ./bins/gpr_time_test || ( echo test gpr_time_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/gpr_time_test || ( echo test gpr_time_test failed ; exit 1 )
 	$(E) "[RUN]     Testing murmur_hash_test"
-	$(Q) ./bins/murmur_hash_test || ( echo test murmur_hash_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/murmur_hash_test || ( echo test murmur_hash_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_stream_op_test"
-	$(Q) ./bins/grpc_stream_op_test || ( echo test grpc_stream_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_stream_op_test || ( echo test grpc_stream_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing alpn_test"
-	$(Q) ./bins/alpn_test || ( echo test alpn_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/alpn_test || ( echo test alpn_test failed ; exit 1 )
 	$(E) "[RUN]     Testing time_averaged_stats_test"
-	$(Q) ./bins/time_averaged_stats_test || ( echo test time_averaged_stats_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/time_averaged_stats_test || ( echo test time_averaged_stats_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_stream_encoder_test"
-	$(Q) ./bins/chttp2_stream_encoder_test || ( echo test chttp2_stream_encoder_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_stream_encoder_test || ( echo test chttp2_stream_encoder_test failed ; exit 1 )
 	$(E) "[RUN]     Testing hpack_table_test"
-	$(Q) ./bins/hpack_table_test || ( echo test hpack_table_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/hpack_table_test || ( echo test hpack_table_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_stream_map_test"
-	$(Q) ./bins/chttp2_stream_map_test || ( echo test chttp2_stream_map_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_stream_map_test || ( echo test chttp2_stream_map_test failed ; exit 1 )
 	$(E) "[RUN]     Testing hpack_parser_test"
-	$(Q) ./bins/hpack_parser_test || ( echo test hpack_parser_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/hpack_parser_test || ( echo test hpack_parser_test failed ; exit 1 )
 	$(E) "[RUN]     Testing transport_metadata_test"
-	$(Q) ./bins/transport_metadata_test || ( echo test transport_metadata_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/transport_metadata_test || ( echo test transport_metadata_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_status_conversion_test"
-	$(Q) ./bins/chttp2_status_conversion_test || ( echo test chttp2_status_conversion_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_status_conversion_test || ( echo test chttp2_status_conversion_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_transport_end2end_test"
-	$(Q) ./bins/chttp2_transport_end2end_test || ( echo test chttp2_transport_end2end_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_transport_end2end_test || ( echo test chttp2_transport_end2end_test failed ; exit 1 )
 	$(E) "[RUN]     Testing tcp_posix_test"
-	$(Q) ./bins/tcp_posix_test || ( echo test tcp_posix_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/tcp_posix_test || ( echo test tcp_posix_test failed ; exit 1 )
 	$(E) "[RUN]     Testing dualstack_socket_test"
-	$(Q) ./bins/dualstack_socket_test || ( echo test dualstack_socket_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/dualstack_socket_test || ( echo test dualstack_socket_test failed ; exit 1 )
 	$(E) "[RUN]     Testing no_server_test"
-	$(Q) ./bins/no_server_test || ( echo test no_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/no_server_test || ( echo test no_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing resolve_address_test"
-	$(Q) ./bins/resolve_address_test || ( echo test resolve_address_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/resolve_address_test || ( echo test resolve_address_test failed ; exit 1 )
 	$(E) "[RUN]     Testing sockaddr_utils_test"
-	$(Q) ./bins/sockaddr_utils_test || ( echo test sockaddr_utils_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/sockaddr_utils_test || ( echo test sockaddr_utils_test failed ; exit 1 )
 	$(E) "[RUN]     Testing tcp_server_posix_test"
-	$(Q) ./bins/tcp_server_posix_test || ( echo test tcp_server_posix_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/tcp_server_posix_test || ( echo test tcp_server_posix_test failed ; exit 1 )
 	$(E) "[RUN]     Testing tcp_client_posix_test"
-	$(Q) ./bins/tcp_client_posix_test || ( echo test tcp_client_posix_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/tcp_client_posix_test || ( echo test tcp_client_posix_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_channel_stack_test"
-	$(Q) ./bins/grpc_channel_stack_test || ( echo test grpc_channel_stack_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_channel_stack_test || ( echo test grpc_channel_stack_test failed ; exit 1 )
 	$(E) "[RUN]     Testing metadata_buffer_test"
-	$(Q) ./bins/metadata_buffer_test || ( echo test metadata_buffer_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/metadata_buffer_test || ( echo test metadata_buffer_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_completion_queue_test"
-	$(Q) ./bins/grpc_completion_queue_test || ( echo test grpc_completion_queue_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_completion_queue_test || ( echo test grpc_completion_queue_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_window_stats_test"
-	$(Q) ./bins/census_window_stats_test || ( echo test census_window_stats_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_window_stats_test || ( echo test census_window_stats_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_statistics_quick_test"
-	$(Q) ./bins/census_statistics_quick_test || ( echo test census_statistics_quick_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_statistics_quick_test || ( echo test census_statistics_quick_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_statistics_small_log_test"
-	$(Q) ./bins/census_statistics_small_log_test || ( echo test census_statistics_small_log_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_statistics_small_log_test || ( echo test census_statistics_small_log_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_statistics_performance_test"
-	$(Q) ./bins/census_statistics_performance_test || ( echo test census_statistics_performance_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_statistics_performance_test || ( echo test census_statistics_performance_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_statistics_multiple_writers_test"
-	$(Q) ./bins/census_statistics_multiple_writers_test || ( echo test census_statistics_multiple_writers_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_statistics_multiple_writers_test || ( echo test census_statistics_multiple_writers_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_statistics_multiple_writers_circular_buffer_test"
-	$(Q) ./bins/census_statistics_multiple_writers_circular_buffer_test || ( echo test census_statistics_multiple_writers_circular_buffer_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test || ( echo test census_statistics_multiple_writers_circular_buffer_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_stub_test"
-	$(Q) ./bins/census_stub_test || ( echo test census_stub_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_stub_test || ( echo test census_stub_test failed ; exit 1 )
 	$(E) "[RUN]     Testing census_hash_table_test"
-	$(Q) ./bins/census_hash_table_test || ( echo test census_hash_table_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/census_hash_table_test || ( echo test census_hash_table_test failed ; exit 1 )
 	$(E) "[RUN]     Testing fling_test"
-	$(Q) ./bins/fling_test || ( echo test fling_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/fling_test || ( echo test fling_test failed ; exit 1 )
 	$(E) "[RUN]     Testing echo_test"
-	$(Q) ./bins/echo_test || ( echo test echo_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/echo_test || ( echo test echo_test failed ; exit 1 )
 	$(E) "[RUN]     Testing message_compress_test"
-	$(Q) ./bins/message_compress_test || ( echo test message_compress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/message_compress_test || ( echo test message_compress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing bin_encoder_test"
-	$(Q) ./bins/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/bin_encoder_test || ( echo test bin_encoder_test failed ; exit 1 )
 	$(E) "[RUN]     Testing secure_endpoint_test"
-	$(Q) ./bins/secure_endpoint_test || ( echo test secure_endpoint_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/secure_endpoint_test || ( echo test secure_endpoint_test failed ; exit 1 )
 	$(E) "[RUN]     Testing httpcli_format_request_test"
-	$(Q) ./bins/httpcli_format_request_test || ( echo test httpcli_format_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/httpcli_format_request_test || ( echo test httpcli_format_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing httpcli_parser_test"
-	$(Q) ./bins/httpcli_parser_test || ( echo test httpcli_parser_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/httpcli_parser_test || ( echo test httpcli_parser_test failed ; exit 1 )
 	$(E) "[RUN]     Testing httpcli_test"
-	$(Q) ./bins/httpcli_test || ( echo test httpcli_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/httpcli_test || ( echo test httpcli_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_credentials_test"
-	$(Q) ./bins/grpc_credentials_test || ( echo test grpc_credentials_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_credentials_test || ( echo test grpc_credentials_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_base64_test"
-	$(Q) ./bins/grpc_base64_test || ( echo test grpc_base64_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_base64_test || ( echo test grpc_base64_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_json_token_test"
-	$(Q) ./bins/grpc_json_token_test || ( echo test grpc_json_token_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/grpc_json_token_test || ( echo test grpc_json_token_test failed ; exit 1 )
 	$(E) "[RUN]     Testing timeout_encoding_test"
-	$(Q) ./bins/timeout_encoding_test || ( echo test timeout_encoding_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/timeout_encoding_test || ( echo test timeout_encoding_test failed ; exit 1 )
 	$(E) "[RUN]     Testing fd_posix_test"
-	$(Q) ./bins/fd_posix_test || ( echo test fd_posix_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/fd_posix_test || ( echo test fd_posix_test failed ; exit 1 )
 	$(E) "[RUN]     Testing fling_stream_test"
-	$(Q) ./bins/fling_stream_test || ( echo test fling_stream_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/fling_stream_test || ( echo test fling_stream_test failed ; exit 1 )
 	$(E) "[RUN]     Testing lame_client_test"
-	$(Q) ./bins/lame_client_test || ( echo test lame_client_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/lame_client_test || ( echo test lame_client_test failed ; exit 1 )
 	$(E) "[RUN]     Testing alarm_test"
-	$(Q) ./bins/alarm_test || ( echo test alarm_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/alarm_test || ( echo test alarm_test failed ; exit 1 )
 	$(E) "[RUN]     Testing alarm_list_test"
-	$(Q) ./bins/alarm_list_test || ( echo test alarm_list_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/alarm_list_test || ( echo test alarm_list_test failed ; exit 1 )
 	$(E) "[RUN]     Testing alarm_heap_test"
-	$(Q) ./bins/alarm_heap_test || ( echo test alarm_heap_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/alarm_heap_test || ( echo test alarm_heap_test failed ; exit 1 )
 	$(E) "[RUN]     Testing time_test"
-	$(Q) ./bins/time_test || ( echo test time_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/time_test || ( echo test time_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_cancel_after_accept_test"
-	$(Q) ./bins/chttp2_fake_security_cancel_after_accept_test || ( echo test chttp2_fake_security_cancel_after_accept_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test || ( echo test chttp2_fake_security_cancel_after_accept_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_cancel_after_accept_and_writes_closed_test"
-	$(Q) ./bins/chttp2_fake_security_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fake_security_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fake_security_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_cancel_after_invoke_test"
-	$(Q) ./bins/chttp2_fake_security_cancel_after_invoke_test || ( echo test chttp2_fake_security_cancel_after_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test || ( echo test chttp2_fake_security_cancel_after_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_cancel_before_invoke_test"
-	$(Q) ./bins/chttp2_fake_security_cancel_before_invoke_test || ( echo test chttp2_fake_security_cancel_before_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test || ( echo test chttp2_fake_security_cancel_before_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_cancel_in_a_vacuum_test"
-	$(Q) ./bins/chttp2_fake_security_cancel_in_a_vacuum_test || ( echo test chttp2_fake_security_cancel_in_a_vacuum_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test || ( echo test chttp2_fake_security_cancel_in_a_vacuum_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_disappearing_server_test"
-	$(Q) ./bins/chttp2_fake_security_disappearing_server_test || ( echo test chttp2_fake_security_disappearing_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test || ( echo test chttp2_fake_security_disappearing_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test"
-	$(Q) ./bins/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_early_server_shutdown_finishes_tags_test"
-	$(Q) ./bins/chttp2_fake_security_early_server_shutdown_finishes_tags_test || ( echo test chttp2_fake_security_early_server_shutdown_finishes_tags_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test || ( echo test chttp2_fake_security_early_server_shutdown_finishes_tags_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_invoke_large_request_test"
-	$(Q) ./bins/chttp2_fake_security_invoke_large_request_test || ( echo test chttp2_fake_security_invoke_large_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test || ( echo test chttp2_fake_security_invoke_large_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_max_concurrent_streams_test"
-	$(Q) ./bins/chttp2_fake_security_max_concurrent_streams_test || ( echo test chttp2_fake_security_max_concurrent_streams_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test || ( echo test chttp2_fake_security_max_concurrent_streams_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_no_op_test"
-	$(Q) ./bins/chttp2_fake_security_no_op_test || ( echo test chttp2_fake_security_no_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_no_op_test || ( echo test chttp2_fake_security_no_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_ping_pong_streaming_test"
-	$(Q) ./bins/chttp2_fake_security_ping_pong_streaming_test || ( echo test chttp2_fake_security_ping_pong_streaming_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test || ( echo test chttp2_fake_security_ping_pong_streaming_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_request_response_with_binary_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_fake_security_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_fake_security_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_request_response_with_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_fake_security_request_response_with_metadata_and_payload_test || ( echo test chttp2_fake_security_request_response_with_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test || ( echo test chttp2_fake_security_request_response_with_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_request_response_with_payload_test"
-	$(Q) ./bins/chttp2_fake_security_request_response_with_payload_test || ( echo test chttp2_fake_security_request_response_with_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test || ( echo test chttp2_fake_security_request_response_with_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_simple_delayed_request_test"
-	$(Q) ./bins/chttp2_fake_security_simple_delayed_request_test || ( echo test chttp2_fake_security_simple_delayed_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test || ( echo test chttp2_fake_security_simple_delayed_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_simple_request_test"
-	$(Q) ./bins/chttp2_fake_security_simple_request_test || ( echo test chttp2_fake_security_simple_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_simple_request_test || ( echo test chttp2_fake_security_simple_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_thread_stress_test"
-	$(Q) ./bins/chttp2_fake_security_thread_stress_test || ( echo test chttp2_fake_security_thread_stress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test || ( echo test chttp2_fake_security_thread_stress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fake_security_writes_done_hangs_with_pending_read_test"
-	$(Q) ./bins/chttp2_fake_security_writes_done_hangs_with_pending_read_test || ( echo test chttp2_fake_security_writes_done_hangs_with_pending_read_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test || ( echo test chttp2_fake_security_writes_done_hangs_with_pending_read_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_cancel_after_accept_test"
-	$(Q) ./bins/chttp2_fullstack_cancel_after_accept_test || ( echo test chttp2_fullstack_cancel_after_accept_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test || ( echo test chttp2_fullstack_cancel_after_accept_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_cancel_after_accept_and_writes_closed_test"
-	$(Q) ./bins/chttp2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_cancel_after_invoke_test"
-	$(Q) ./bins/chttp2_fullstack_cancel_after_invoke_test || ( echo test chttp2_fullstack_cancel_after_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test || ( echo test chttp2_fullstack_cancel_after_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_cancel_before_invoke_test"
-	$(Q) ./bins/chttp2_fullstack_cancel_before_invoke_test || ( echo test chttp2_fullstack_cancel_before_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test || ( echo test chttp2_fullstack_cancel_before_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_cancel_in_a_vacuum_test"
-	$(Q) ./bins/chttp2_fullstack_cancel_in_a_vacuum_test || ( echo test chttp2_fullstack_cancel_in_a_vacuum_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test || ( echo test chttp2_fullstack_cancel_in_a_vacuum_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_disappearing_server_test"
-	$(Q) ./bins/chttp2_fullstack_disappearing_server_test || ( echo test chttp2_fullstack_disappearing_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test || ( echo test chttp2_fullstack_disappearing_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test"
-	$(Q) ./bins/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_early_server_shutdown_finishes_tags_test"
-	$(Q) ./bins/chttp2_fullstack_early_server_shutdown_finishes_tags_test || ( echo test chttp2_fullstack_early_server_shutdown_finishes_tags_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test || ( echo test chttp2_fullstack_early_server_shutdown_finishes_tags_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_invoke_large_request_test"
-	$(Q) ./bins/chttp2_fullstack_invoke_large_request_test || ( echo test chttp2_fullstack_invoke_large_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test || ( echo test chttp2_fullstack_invoke_large_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_max_concurrent_streams_test"
-	$(Q) ./bins/chttp2_fullstack_max_concurrent_streams_test || ( echo test chttp2_fullstack_max_concurrent_streams_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test || ( echo test chttp2_fullstack_max_concurrent_streams_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_no_op_test"
-	$(Q) ./bins/chttp2_fullstack_no_op_test || ( echo test chttp2_fullstack_no_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_no_op_test || ( echo test chttp2_fullstack_no_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_ping_pong_streaming_test"
-	$(Q) ./bins/chttp2_fullstack_ping_pong_streaming_test || ( echo test chttp2_fullstack_ping_pong_streaming_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test || ( echo test chttp2_fullstack_ping_pong_streaming_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_request_response_with_binary_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_fullstack_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_fullstack_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_request_response_with_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_fullstack_request_response_with_metadata_and_payload_test || ( echo test chttp2_fullstack_request_response_with_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test || ( echo test chttp2_fullstack_request_response_with_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_request_response_with_payload_test"
-	$(Q) ./bins/chttp2_fullstack_request_response_with_payload_test || ( echo test chttp2_fullstack_request_response_with_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test || ( echo test chttp2_fullstack_request_response_with_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_simple_delayed_request_test"
-	$(Q) ./bins/chttp2_fullstack_simple_delayed_request_test || ( echo test chttp2_fullstack_simple_delayed_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test || ( echo test chttp2_fullstack_simple_delayed_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_simple_request_test"
-	$(Q) ./bins/chttp2_fullstack_simple_request_test || ( echo test chttp2_fullstack_simple_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_simple_request_test || ( echo test chttp2_fullstack_simple_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_thread_stress_test"
-	$(Q) ./bins/chttp2_fullstack_thread_stress_test || ( echo test chttp2_fullstack_thread_stress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test || ( echo test chttp2_fullstack_thread_stress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_fullstack_writes_done_hangs_with_pending_read_test"
-	$(Q) ./bins/chttp2_fullstack_writes_done_hangs_with_pending_read_test || ( echo test chttp2_fullstack_writes_done_hangs_with_pending_read_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test || ( echo test chttp2_fullstack_writes_done_hangs_with_pending_read_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_cancel_after_accept_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_cancel_after_invoke_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_cancel_after_invoke_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test || ( echo test chttp2_simple_ssl_fullstack_cancel_after_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_cancel_before_invoke_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_cancel_before_invoke_test || ( echo test chttp2_simple_ssl_fullstack_cancel_before_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test || ( echo test chttp2_simple_ssl_fullstack_cancel_before_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test || ( echo test chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test || ( echo test chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_disappearing_server_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_disappearing_server_test || ( echo test chttp2_simple_ssl_fullstack_disappearing_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test || ( echo test chttp2_simple_ssl_fullstack_disappearing_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test || ( echo test chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test || ( echo test chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_invoke_large_request_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_fullstack_invoke_large_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_fullstack_invoke_large_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_max_concurrent_streams_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_fullstack_max_concurrent_streams_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_fullstack_max_concurrent_streams_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_no_op_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_no_op_test || ( echo test chttp2_simple_ssl_fullstack_no_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test || ( echo test chttp2_simple_ssl_fullstack_no_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_ping_pong_streaming_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_ping_pong_streaming_test || ( echo test chttp2_simple_ssl_fullstack_ping_pong_streaming_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test || ( echo test chttp2_simple_ssl_fullstack_ping_pong_streaming_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_request_response_with_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_request_response_with_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_simple_delayed_request_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_simple_delayed_request_test || ( echo test chttp2_simple_ssl_fullstack_simple_delayed_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test || ( echo test chttp2_simple_ssl_fullstack_simple_delayed_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_simple_request_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_simple_request_test || ( echo test chttp2_simple_ssl_fullstack_simple_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test || ( echo test chttp2_simple_ssl_fullstack_simple_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_thread_stress_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_thread_stress_test || ( echo test chttp2_simple_ssl_fullstack_thread_stress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test || ( echo test chttp2_simple_ssl_fullstack_thread_stress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test"
-	$(Q) ./bins/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test || ( echo test chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test || ( echo test chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_no_op_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_no_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_no_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test"
-	$(Q) ./bins/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test || ( echo test chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_cancel_after_accept_test"
-	$(Q) ./bins/chttp2_socket_pair_cancel_after_accept_test || ( echo test chttp2_socket_pair_cancel_after_accept_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test || ( echo test chttp2_socket_pair_cancel_after_accept_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_cancel_after_accept_and_writes_closed_test"
-	$(Q) ./bins/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_cancel_after_invoke_test"
-	$(Q) ./bins/chttp2_socket_pair_cancel_after_invoke_test || ( echo test chttp2_socket_pair_cancel_after_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test || ( echo test chttp2_socket_pair_cancel_after_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_cancel_before_invoke_test"
-	$(Q) ./bins/chttp2_socket_pair_cancel_before_invoke_test || ( echo test chttp2_socket_pair_cancel_before_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test || ( echo test chttp2_socket_pair_cancel_before_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_cancel_in_a_vacuum_test"
-	$(Q) ./bins/chttp2_socket_pair_cancel_in_a_vacuum_test || ( echo test chttp2_socket_pair_cancel_in_a_vacuum_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test || ( echo test chttp2_socket_pair_cancel_in_a_vacuum_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_disappearing_server_test"
-	$(Q) ./bins/chttp2_socket_pair_disappearing_server_test || ( echo test chttp2_socket_pair_disappearing_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test || ( echo test chttp2_socket_pair_disappearing_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test"
-	$(Q) ./bins/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_early_server_shutdown_finishes_tags_test"
-	$(Q) ./bins/chttp2_socket_pair_early_server_shutdown_finishes_tags_test || ( echo test chttp2_socket_pair_early_server_shutdown_finishes_tags_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test || ( echo test chttp2_socket_pair_early_server_shutdown_finishes_tags_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_invoke_large_request_test"
-	$(Q) ./bins/chttp2_socket_pair_invoke_large_request_test || ( echo test chttp2_socket_pair_invoke_large_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test || ( echo test chttp2_socket_pair_invoke_large_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_max_concurrent_streams_test"
-	$(Q) ./bins/chttp2_socket_pair_max_concurrent_streams_test || ( echo test chttp2_socket_pair_max_concurrent_streams_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test || ( echo test chttp2_socket_pair_max_concurrent_streams_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_no_op_test"
-	$(Q) ./bins/chttp2_socket_pair_no_op_test || ( echo test chttp2_socket_pair_no_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_no_op_test || ( echo test chttp2_socket_pair_no_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_ping_pong_streaming_test"
-	$(Q) ./bins/chttp2_socket_pair_ping_pong_streaming_test || ( echo test chttp2_socket_pair_ping_pong_streaming_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test || ( echo test chttp2_socket_pair_ping_pong_streaming_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_request_response_with_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_request_response_with_metadata_and_payload_test || ( echo test chttp2_socket_pair_request_response_with_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test || ( echo test chttp2_socket_pair_request_response_with_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_request_response_with_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_request_response_with_payload_test || ( echo test chttp2_socket_pair_request_response_with_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test || ( echo test chttp2_socket_pair_request_response_with_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_simple_delayed_request_test"
-	$(Q) ./bins/chttp2_socket_pair_simple_delayed_request_test || ( echo test chttp2_socket_pair_simple_delayed_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test || ( echo test chttp2_socket_pair_simple_delayed_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_simple_request_test"
-	$(Q) ./bins/chttp2_socket_pair_simple_request_test || ( echo test chttp2_socket_pair_simple_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test || ( echo test chttp2_socket_pair_simple_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_thread_stress_test"
-	$(Q) ./bins/chttp2_socket_pair_thread_stress_test || ( echo test chttp2_socket_pair_thread_stress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test || ( echo test chttp2_socket_pair_thread_stress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_writes_done_hangs_with_pending_read_test"
-	$(Q) ./bins/chttp2_socket_pair_writes_done_hangs_with_pending_read_test || ( echo test chttp2_socket_pair_writes_done_hangs_with_pending_read_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test || ( echo test chttp2_socket_pair_writes_done_hangs_with_pending_read_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_no_op_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_no_op_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_no_op_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_no_op_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_simple_request_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_simple_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_simple_request_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_simple_request_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_thread_stress_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_thread_stress_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_thread_stress_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test"
-	$(Q) ./bins/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test || ( echo test chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test failed ; exit 1 )
 
 
 test_cxx: buildtests_cxx
 	$(E) "[RUN]     Testing thread_pool_test"
-	$(Q) ./bins/thread_pool_test || ( echo test thread_pool_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/thread_pool_test || ( echo test thread_pool_test failed ; exit 1 )
 	$(E) "[RUN]     Testing status_test"
-	$(Q) ./bins/status_test || ( echo test status_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/status_test || ( echo test status_test failed ; exit 1 )
 	$(E) "[RUN]     Testing sync_client_async_server_test"
-	$(Q) ./bins/sync_client_async_server_test || ( echo test sync_client_async_server_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/sync_client_async_server_test || ( echo test sync_client_async_server_test failed ; exit 1 )
 	$(E) "[RUN]     Testing qps_client"
-	$(Q) ./bins/qps_client || ( echo test qps_client failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/qps_client || ( echo test qps_client failed ; exit 1 )
 	$(E) "[RUN]     Testing qps_server"
-	$(Q) ./bins/qps_server || ( echo test qps_server failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/qps_server || ( echo test qps_server failed ; exit 1 )
 	$(E) "[RUN]     Testing end2end_test"
-	$(Q) ./bins/end2end_test || ( echo test end2end_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/end2end_test || ( echo test end2end_test failed ; exit 1 )
 	$(E) "[RUN]     Testing channel_arguments_test"
-	$(Q) ./bins/channel_arguments_test || ( echo test channel_arguments_test failed ; exit 1 )
+	$(Q) ./bins/$(TGTDIR)/channel_arguments_test || ( echo test channel_arguments_test failed ; exit 1 )
 
 
-tools: privatelibs bins/gen_hpack_tables bins/grpc_fetch_oauth2
+tools: privatelibs bins/$(TGTDIR)/gen_hpack_tables bins/$(TGTDIR)/grpc_fetch_oauth2
 
-protoc_plugins: bins/cpp_plugin bins/ruby_plugin
+protoc_plugins: bins/$(TGTDIR)/cpp_plugin bins/$(TGTDIR)/ruby_plugin
 
-buildbenchmarks: privatelibs bins/grpc_completion_queue_benchmark bins/low_level_ping_pong_benchmark
+buildbenchmarks: privatelibs bins/$(TGTDIR)/grpc_completion_queue_benchmark bins/$(TGTDIR)/low_level_ping_pong_benchmark
 
 benchmarks: buildbenchmarks
 
@@ -642,91 +845,91 @@
 
 strip-static_c: static_c
 	$(E) "[STRIP]   Stripping libgpr.a"
-	$(Q) $(STRIP) libs/libgpr.a
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgpr.a
 	$(E) "[STRIP]   Stripping libgrpc.a"
-	$(Q) $(STRIP) libs/libgrpc.a
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgrpc.a
 	$(E) "[STRIP]   Stripping libgrpc_unsecure.a"
-	$(Q) $(STRIP) libs/libgrpc_unsecure.a
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgrpc_unsecure.a
 
 strip-static_cxx: static_cxx
 	$(E) "[STRIP]   Stripping libgrpc++.a"
-	$(Q) $(STRIP) libs/libgrpc++.a
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgrpc++.a
 
 strip-shared_c: shared_c
 	$(E) "[STRIP]   Stripping libgpr.so"
-	$(Q) $(STRIP) libs/libgpr.so.$(VERSION)
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgpr.so.$(VERSION)
 	$(E) "[STRIP]   Stripping libgrpc.so"
-	$(Q) $(STRIP) libs/libgrpc.so.$(VERSION)
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgrpc.so.$(VERSION)
 	$(E) "[STRIP]   Stripping libgrpc_unsecure.so"
-	$(Q) $(STRIP) libs/libgrpc_unsecure.so.$(VERSION)
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgrpc_unsecure.so.$(VERSION)
 
 strip-shared_cxx: shared_cxx
 	$(E) "[STRIP]   Stripping libgrpc++.so"
-	$(Q) $(STRIP) libs/libgrpc++.so.$(VERSION)
+	$(Q) $(STRIP) libs/$(TGTDIR)/libgrpc++.so.$(VERSION)
 
-deps/gens/test/cpp/interop/empty.pb.dep:
+deps/$(TGTDIR)/gens/test/cpp/interop/empty.pb.dep:
 	$(Q) mkdir -p `dirname $@`
 	$(Q) touch $@
 
 gens/test/cpp/interop/empty.pb.cc: test/cpp/interop/empty.proto protoc_plugins
 	$(E) "[PROTOC]  Generating protobuf CC file from $<"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/cpp_plugin $<
+	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/$(TGTDIR)/cpp_plugin $<
 
-deps/gens/test/cpp/interop/messages.pb.dep:
+deps/$(TGTDIR)/gens/test/cpp/interop/messages.pb.dep:
 	$(Q) mkdir -p `dirname $@`
 	$(Q) touch $@
 
 gens/test/cpp/interop/messages.pb.cc: test/cpp/interop/messages.proto protoc_plugins
 	$(E) "[PROTOC]  Generating protobuf CC file from $<"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/cpp_plugin $<
+	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/$(TGTDIR)/cpp_plugin $<
 
-deps/gens/test/cpp/interop/test.pb.dep:
+deps/$(TGTDIR)/gens/test/cpp/interop/test.pb.dep:
 	$(Q) mkdir -p `dirname $@`
 	$(Q) touch $@
 
 gens/test/cpp/interop/test.pb.cc: test/cpp/interop/test.proto protoc_plugins
 	$(E) "[PROTOC]  Generating protobuf CC file from $<"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/cpp_plugin $<
+	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/$(TGTDIR)/cpp_plugin $<
 
-deps/gens/test/cpp/util/echo.pb.dep:
+deps/$(TGTDIR)/gens/test/cpp/util/echo.pb.dep:
 	$(Q) mkdir -p `dirname $@`
 	$(Q) touch $@
 
 gens/test/cpp/util/echo.pb.cc: test/cpp/util/echo.proto protoc_plugins
 	$(E) "[PROTOC]  Generating protobuf CC file from $<"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/cpp_plugin $<
+	$(Q) $(PROTOC) --cpp_out=gens --grpc_out=gens --plugin=protoc-gen-grpc=bins/$(TGTDIR)/cpp_plugin $<
 
 
-deps/%.dep : %.c
+deps/$(TGTDIR)/%.dep : %.c
 	$(E) "[DEP]     Generating dependencies for $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(CC) $(CFLAGS) $(CPPFLAGS_NO_ARCH) -MG -M $< > $@
 
-deps/%.dep : %.cc
+deps/$(TGTDIR)/%.dep : %.cc
 	$(E) "[DEP]     Generating dependencies for $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(CXX) $(CXXFLAGS) $(CPPFLAGS_NO_ARCH) -MG -M $< > $@
 
-objs/%.o : %.c
+objs/$(TGTDIR)/%.o : %.c
 	$(E) "[C]       Compiling $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
 
-objs/%.o : gens/%.pb.cc
+objs/$(TGTDIR)/%.o : gens/%.pb.cc
 	$(E) "[CXX]     Compiling $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
 
-objs/src/compiler/%.o : src/compiler/%.cc
+objs/$(TGTDIR)/src/compiler/%.o : src/compiler/%.cc
 	$(E) "[HOSTCXX] Compiling $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(HOST_CXX) $(HOST_CXXFLAGS) $(HOST_CPPFLAGS) -c -o $@ $<
 
-objs/%.o : %.cc
+objs/$(TGTDIR)/%.o : %.cc
 	$(E) "[CXX]     Compiling $<"
 	$(Q) mkdir -p `dirname $@`
 	$(Q) $(CXX) $(CXXFLAGS) $(CPPFLAGS) -c -o $@ $<
@@ -761,27 +964,27 @@
 
 install-static_c: static_c strip-static_c
 	$(E) "[INSTALL] Installing libgpr.a"
-	$(Q) $(INSTALL) libs/libgpr.a $(prefix)/lib/libgpr.a
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgpr.a $(prefix)/lib/libgpr.a
 	$(E) "[INSTALL] Installing libgrpc.a"
-	$(Q) $(INSTALL) libs/libgrpc.a $(prefix)/lib/libgrpc.a
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgrpc.a $(prefix)/lib/libgrpc.a
 	$(E) "[INSTALL] Installing libgrpc_unsecure.a"
-	$(Q) $(INSTALL) libs/libgrpc_unsecure.a $(prefix)/lib/libgrpc_unsecure.a
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgrpc_unsecure.a $(prefix)/lib/libgrpc_unsecure.a
 
 install-static_cxx: static_cxx strip-static_cxx
 	$(E) "[INSTALL] Installing libgrpc++.a"
-	$(Q) $(INSTALL) libs/libgrpc++.a $(prefix)/lib/libgrpc++.a
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgrpc++.a $(prefix)/lib/libgrpc++.a
 
 install-shared_c: shared_c strip-shared_c
 	$(E) "[INSTALL] Installing libgpr.so"
-	$(Q) $(INSTALL) libs/libgpr.so.$(VERSION) $(prefix)/lib/libgpr.so.$(VERSION)
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgpr.so.$(VERSION) $(prefix)/lib/libgpr.so.$(VERSION)
 	$(E) "[INSTALL] Installing libgrpc.so"
-	$(Q) $(INSTALL) libs/libgrpc.so.$(VERSION) $(prefix)/lib/libgrpc.so.$(VERSION)
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgrpc.so.$(VERSION) $(prefix)/lib/libgrpc.so.$(VERSION)
 	$(E) "[INSTALL] Installing libgrpc_unsecure.so"
-	$(Q) $(INSTALL) libs/libgrpc_unsecure.so.$(VERSION) $(prefix)/lib/libgrpc_unsecure.so.$(VERSION)
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgrpc_unsecure.so.$(VERSION) $(prefix)/lib/libgrpc_unsecure.so.$(VERSION)
 
 install-shared_cxx: shared_cxx strip-shared_cxx
 	$(E) "[INSTALL] Installing libgrpc++.so"
-	$(Q) $(INSTALL) libs/libgrpc++.so.$(VERSION) $(prefix)/lib/libgrpc++.so.$(VERSION)
+	$(Q) $(INSTALL) libs/$(TGTDIR)/libgrpc++.so.$(VERSION) $(prefix)/lib/libgrpc++.so.$(VERSION)
 
 clean: clean_libgpr clean_libgrpc clean_libgrpc_test_util clean_libgrpc++ clean_libgrpc++_test_util clean_libend2end_fixture_chttp2_fake_security clean_libend2end_fixture_chttp2_fullstack clean_libend2end_fixture_chttp2_simple_ssl_fullstack clean_libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack clean_libend2end_fixture_chttp2_socket_pair clean_libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time clean_libend2end_test_cancel_after_accept clean_libend2end_test_cancel_after_accept_and_writes_closed clean_libend2end_test_cancel_after_invoke clean_libend2end_test_cancel_before_invoke clean_libend2end_test_cancel_in_a_vacuum clean_libend2end_test_disappearing_server clean_libend2end_test_early_server_shutdown_finishes_inflight_calls clean_libend2end_test_early_server_shutdown_finishes_tags clean_libend2end_test_invoke_large_request clean_libend2end_test_max_concurrent_streams clean_libend2end_test_no_op clean_libend2end_test_ping_pong_streaming clean_libend2end_test_request_response_with_binary_metadata_and_payload clean_libend2end_test_request_response_with_metadata_and_payload clean_libend2end_test_request_response_with_payload clean_libend2end_test_request_response_with_trailing_metadata_and_payload clean_libend2end_test_simple_delayed_request clean_libend2end_test_simple_request clean_libend2end_test_thread_stress clean_libend2end_test_writes_done_hangs_with_pending_read clean_libend2end_certs clean_libgrpc_unsecure clean_gen_hpack_tables clean_cpp_plugin clean_ruby_plugin clean_grpc_byte_buffer_reader_test clean_gpr_cancellable_test clean_gpr_log_test clean_gpr_useful_test clean_gpr_cmdline_test clean_gpr_histogram_test clean_gpr_host_port_test clean_gpr_slice_buffer_test clean_gpr_slice_test clean_gpr_string_test clean_gpr_sync_test clean_gpr_thd_test clean_gpr_time_test clean_murmur_hash_test clean_grpc_stream_op_test clean_alpn_test clean_time_averaged_stats_test clean_chttp2_stream_encoder_test clean_hpack_table_test clean_chttp2_stream_map_test clean_hpack_parser_test clean_transport_metadata_test clean_chttp2_status_conversion_test clean_chttp2_transport_end2end_test clean_tcp_posix_test clean_dualstack_socket_test clean_no_server_test clean_resolve_address_test clean_sockaddr_utils_test clean_tcp_server_posix_test clean_tcp_client_posix_test clean_grpc_channel_stack_test clean_metadata_buffer_test clean_grpc_completion_queue_test clean_grpc_completion_queue_benchmark clean_census_window_stats_test clean_census_statistics_quick_test clean_census_statistics_small_log_test clean_census_statistics_performance_test clean_census_statistics_multiple_writers_test clean_census_statistics_multiple_writers_circular_buffer_test clean_census_stub_test clean_census_hash_table_test clean_fling_server clean_fling_client clean_fling_test clean_echo_server clean_echo_client clean_echo_test clean_low_level_ping_pong_benchmark clean_message_compress_test clean_bin_encoder_test clean_secure_endpoint_test clean_httpcli_format_request_test clean_httpcli_parser_test clean_httpcli_test clean_grpc_credentials_test clean_grpc_fetch_oauth2 clean_grpc_base64_test clean_grpc_json_token_test clean_timeout_encoding_test clean_fd_posix_test clean_fling_stream_test clean_lame_client_test clean_thread_pool_test clean_status_test clean_sync_client_async_server_test clean_qps_client clean_qps_server clean_interop_server clean_interop_client clean_end2end_test clean_channel_arguments_test clean_alarm_test clean_alarm_list_test clean_alarm_heap_test clean_time_test clean_chttp2_fake_security_cancel_after_accept_test clean_chttp2_fake_security_cancel_after_accept_and_writes_closed_test clean_chttp2_fake_security_cancel_after_invoke_test clean_chttp2_fake_security_cancel_before_invoke_test clean_chttp2_fake_security_cancel_in_a_vacuum_test clean_chttp2_fake_security_disappearing_server_test clean_chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test clean_chttp2_fake_security_early_server_shutdown_finishes_tags_test clean_chttp2_fake_security_invoke_large_request_test clean_chttp2_fake_security_max_concurrent_streams_test clean_chttp2_fake_security_no_op_test clean_chttp2_fake_security_ping_pong_streaming_test clean_chttp2_fake_security_request_response_with_binary_metadata_and_payload_test clean_chttp2_fake_security_request_response_with_metadata_and_payload_test clean_chttp2_fake_security_request_response_with_payload_test clean_chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test clean_chttp2_fake_security_simple_delayed_request_test clean_chttp2_fake_security_simple_request_test clean_chttp2_fake_security_thread_stress_test clean_chttp2_fake_security_writes_done_hangs_with_pending_read_test clean_chttp2_fullstack_cancel_after_accept_test clean_chttp2_fullstack_cancel_after_accept_and_writes_closed_test clean_chttp2_fullstack_cancel_after_invoke_test clean_chttp2_fullstack_cancel_before_invoke_test clean_chttp2_fullstack_cancel_in_a_vacuum_test clean_chttp2_fullstack_disappearing_server_test clean_chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test clean_chttp2_fullstack_early_server_shutdown_finishes_tags_test clean_chttp2_fullstack_invoke_large_request_test clean_chttp2_fullstack_max_concurrent_streams_test clean_chttp2_fullstack_no_op_test clean_chttp2_fullstack_ping_pong_streaming_test clean_chttp2_fullstack_request_response_with_binary_metadata_and_payload_test clean_chttp2_fullstack_request_response_with_metadata_and_payload_test clean_chttp2_fullstack_request_response_with_payload_test clean_chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test clean_chttp2_fullstack_simple_delayed_request_test clean_chttp2_fullstack_simple_request_test clean_chttp2_fullstack_thread_stress_test clean_chttp2_fullstack_writes_done_hangs_with_pending_read_test clean_chttp2_simple_ssl_fullstack_cancel_after_accept_test clean_chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test clean_chttp2_simple_ssl_fullstack_cancel_after_invoke_test clean_chttp2_simple_ssl_fullstack_cancel_before_invoke_test clean_chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test clean_chttp2_simple_ssl_fullstack_disappearing_server_test clean_chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test clean_chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test clean_chttp2_simple_ssl_fullstack_invoke_large_request_test clean_chttp2_simple_ssl_fullstack_max_concurrent_streams_test clean_chttp2_simple_ssl_fullstack_no_op_test clean_chttp2_simple_ssl_fullstack_ping_pong_streaming_test clean_chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test clean_chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test clean_chttp2_simple_ssl_fullstack_request_response_with_payload_test clean_chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test clean_chttp2_simple_ssl_fullstack_simple_delayed_request_test clean_chttp2_simple_ssl_fullstack_simple_request_test clean_chttp2_simple_ssl_fullstack_thread_stress_test clean_chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test clean_chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test clean_chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test clean_chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test clean_chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test clean_chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test clean_chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test clean_chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test clean_chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test clean_chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test clean_chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test clean_chttp2_simple_ssl_with_oauth2_fullstack_no_op_test clean_chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test clean_chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test clean_chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test clean_chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test clean_chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test clean_chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test clean_chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test clean_chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test clean_chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test clean_chttp2_socket_pair_cancel_after_accept_test clean_chttp2_socket_pair_cancel_after_accept_and_writes_closed_test clean_chttp2_socket_pair_cancel_after_invoke_test clean_chttp2_socket_pair_cancel_before_invoke_test clean_chttp2_socket_pair_cancel_in_a_vacuum_test clean_chttp2_socket_pair_disappearing_server_test clean_chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test clean_chttp2_socket_pair_early_server_shutdown_finishes_tags_test clean_chttp2_socket_pair_invoke_large_request_test clean_chttp2_socket_pair_max_concurrent_streams_test clean_chttp2_socket_pair_no_op_test clean_chttp2_socket_pair_ping_pong_streaming_test clean_chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test clean_chttp2_socket_pair_request_response_with_metadata_and_payload_test clean_chttp2_socket_pair_request_response_with_payload_test clean_chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test clean_chttp2_socket_pair_simple_delayed_request_test clean_chttp2_socket_pair_simple_request_test clean_chttp2_socket_pair_thread_stress_test clean_chttp2_socket_pair_writes_done_hangs_with_pending_read_test clean_chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test clean_chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test clean_chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test clean_chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test clean_chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test clean_chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test clean_chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test clean_chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test clean_chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test clean_chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test clean_chttp2_socket_pair_one_byte_at_a_time_no_op_test clean_chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test clean_chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test clean_chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test clean_chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test clean_chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test clean_chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test clean_chttp2_socket_pair_one_byte_at_a_time_simple_request_test clean_chttp2_socket_pair_one_byte_at_a_time_thread_stress_test clean_chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
 	$(Q) $(RM) -r deps objs libs bins gens
@@ -844,18 +1047,18 @@
     include/grpc/support/time_win32.h \
     include/grpc/support/useful.h \
 
-LIBGPR_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBGPR_SRC))))
-LIBGPR_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBGPR_SRC))))
+LIBGPR_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBGPR_SRC))))
+LIBGPR_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBGPR_SRC))))
 
-libs/libgpr.a: $(LIBGPR_OBJS)
+libs/$(TGTDIR)/libgpr.a: $(LIBGPR_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libgpr.a $(LIBGPR_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libgpr.a $(LIBGPR_OBJS)
 
-libs/libgpr.so.$(VERSION): $(LIBGPR_OBJS)
+libs/$(TGTDIR)/libgpr.so.$(VERSION): $(LIBGPR_OBJS)
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) -shared -Wl,-soname,libgpr.so.0 -o libs/libgpr.so.$(VERSION) $(LIBGPR_OBJS) $(LDLIBS)
+	$(Q) $(LD) $(LDFLAGS) -shared -Wl,-soname,libgpr.so.0 -o libs/$(TGTDIR)/libgpr.so.$(VERSION) $(LIBGPR_OBJS) $(LDLIBS)
 
 deps_libgpr: $(LIBGPR_DEPS)
 
@@ -867,8 +1070,8 @@
 	$(E) "[CLEAN]   Cleaning libgpr files"
 	$(Q) $(RM) $(LIBGPR_OBJS)
 	$(Q) $(RM) $(LIBGPR_DEPS)
-	$(Q) $(RM) libs/libgpr.a
-	$(Q) $(RM) libs/libgpr.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libgpr.a
+	$(Q) $(RM) libs/$(TGTDIR)/libgpr.so.$(VERSION)
 
 
 LIBGRPC_SRC = \
@@ -967,30 +1170,30 @@
     include/grpc/grpc_security.h \
     include/grpc/status.h \
 
-LIBGRPC_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBGRPC_SRC))))
-LIBGRPC_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBGRPC_SRC))))
+LIBGRPC_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBGRPC_SRC))))
+LIBGRPC_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBGRPC_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libgrpc.a: openssl_dep_error
+libs/$(TGTDIR)/libgrpc.a: openssl_dep_error
 
 else
 
-libs/libgrpc.a: $(OPENSSL_DEP) $(LIBGRPC_OBJS)
+libs/$(TGTDIR)/libgrpc.a: $(OPENSSL_DEP) $(LIBGRPC_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libgrpc.a $(LIBGRPC_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libgrpc.a $(LIBGRPC_OBJS)
 	$(Q) mkdir tmp-merge
-	$(Q) ( cd tmp-merge ; $(AR) x ../libs/libgrpc.a )
+	$(Q) ( cd tmp-merge ; $(AR) x ../libs/$(TGTDIR)/libgrpc.a )
 	$(Q) for l in $(OPENSSL_MERGE_LIBS) ; do ( cd tmp-merge ; ar x ../$${l} ) ; done
-	$(Q) rm -f libs/libgrpc.a tmp-merge/__.SYMDEF*
-	$(Q) ar rcs libs/libgrpc.a tmp-merge/*
+	$(Q) rm -f libs/$(TGTDIR)/libgrpc.a tmp-merge/__.SYMDEF*
+	$(Q) ar rcs libs/$(TGTDIR)/libgrpc.a tmp-merge/*
 	$(Q) rm -rf tmp-merge
 
-libs/libgrpc.so.$(VERSION): $(LIBGRPC_OBJS)
+libs/$(TGTDIR)/libgrpc.so.$(VERSION): $(LIBGRPC_OBJS)
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) -shared -Wl,-soname,libgrpc.so.0 -o libs/libgrpc.so.$(VERSION) $(LIBGRPC_OBJS) $(LDLIBS) $(LDLIBS_SECURE)
+	$(Q) $(LD) $(LDFLAGS) -shared -Wl,-soname,libgrpc.so.0 -o libs/$(TGTDIR)/libgrpc.so.$(VERSION) $(LIBGRPC_OBJS) $(LDLIBS) $(LDLIBS_SECURE)
 
 endif
 
@@ -1006,8 +1209,8 @@
 	$(E) "[CLEAN]   Cleaning libgrpc files"
 	$(Q) $(RM) $(LIBGRPC_OBJS)
 	$(Q) $(RM) $(LIBGRPC_DEPS)
-	$(Q) $(RM) libs/libgrpc.a
-	$(Q) $(RM) libs/libgrpc.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc.a
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc.so.$(VERSION)
 
 
 LIBGRPC_TEST_UTIL_SRC = \
@@ -1026,19 +1229,19 @@
     test/core/util/test_config.c \
 
 
-LIBGRPC_TEST_UTIL_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBGRPC_TEST_UTIL_SRC))))
-LIBGRPC_TEST_UTIL_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBGRPC_TEST_UTIL_SRC))))
+LIBGRPC_TEST_UTIL_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBGRPC_TEST_UTIL_SRC))))
+LIBGRPC_TEST_UTIL_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBGRPC_TEST_UTIL_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libgrpc_test_util.a: openssl_dep_error
+libs/$(TGTDIR)/libgrpc_test_util.a: openssl_dep_error
 
 else
 
-libs/libgrpc_test_util.a: $(OPENSSL_DEP) $(LIBGRPC_TEST_UTIL_OBJS)
+libs/$(TGTDIR)/libgrpc_test_util.a: $(OPENSSL_DEP) $(LIBGRPC_TEST_UTIL_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libgrpc_test_util.a $(LIBGRPC_TEST_UTIL_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libgrpc_test_util.a $(LIBGRPC_TEST_UTIL_OBJS)
 
 
 
@@ -1056,8 +1259,8 @@
 	$(E) "[CLEAN]   Cleaning libgrpc_test_util files"
 	$(Q) $(RM) $(LIBGRPC_TEST_UTIL_OBJS)
 	$(Q) $(RM) $(LIBGRPC_TEST_UTIL_DEPS)
-	$(Q) $(RM) libs/libgrpc_test_util.a
-	$(Q) $(RM) libs/libgrpc_test_util.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc_test_util.a
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc_test_util.so.$(VERSION)
 
 
 LIBGRPC++_SRC = \
@@ -1100,24 +1303,24 @@
     include/grpc++/stream_context_interface.h \
     include/grpc++/stream.h \
 
-LIBGRPC++_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBGRPC++_SRC))))
-LIBGRPC++_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBGRPC++_SRC))))
+LIBGRPC++_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBGRPC++_SRC))))
+LIBGRPC++_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBGRPC++_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libgrpc++.a: openssl_dep_error
+libs/$(TGTDIR)/libgrpc++.a: openssl_dep_error
 
 else
 
-libs/libgrpc++.a: $(OPENSSL_DEP) $(LIBGRPC++_OBJS)
+libs/$(TGTDIR)/libgrpc++.a: $(OPENSSL_DEP) $(LIBGRPC++_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libgrpc++.a $(LIBGRPC++_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libgrpc++.a $(LIBGRPC++_OBJS)
 
-libs/libgrpc++.so.$(VERSION): $(LIBGRPC++_OBJS)
+libs/$(TGTDIR)/libgrpc++.so.$(VERSION): $(LIBGRPC++_OBJS)
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) -shared -Wl,-soname,libgrpc++.so.0 -o libs/libgrpc++.so.$(VERSION) $(LIBGRPC++_OBJS) $(LDLIBS) $(LDLIBS_SECURE)
+	$(Q) $(LDXX) $(LDFLAGS) -shared -Wl,-soname,libgrpc++.so.0 -o libs/$(TGTDIR)/libgrpc++.so.$(VERSION) $(LIBGRPC++_OBJS) $(LDLIBS) $(LDLIBS_SECURE)
 
 endif
 
@@ -1133,8 +1336,8 @@
 	$(E) "[CLEAN]   Cleaning libgrpc++ files"
 	$(Q) $(RM) $(LIBGRPC++_OBJS)
 	$(Q) $(RM) $(LIBGRPC++_DEPS)
-	$(Q) $(RM) libs/libgrpc++.a
-	$(Q) $(RM) libs/libgrpc++.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc++.a
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc++.so.$(VERSION)
 
 
 LIBGRPC++_TEST_UTIL_SRC = \
@@ -1143,19 +1346,19 @@
     test/cpp/end2end/async_test_server.cc \
 
 
-LIBGRPC++_TEST_UTIL_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_UTIL_SRC))))
-LIBGRPC++_TEST_UTIL_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBGRPC++_TEST_UTIL_SRC))))
+LIBGRPC++_TEST_UTIL_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBGRPC++_TEST_UTIL_SRC))))
+LIBGRPC++_TEST_UTIL_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBGRPC++_TEST_UTIL_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libgrpc++_test_util.a: openssl_dep_error
+libs/$(TGTDIR)/libgrpc++_test_util.a: openssl_dep_error
 
 else
 
-libs/libgrpc++_test_util.a: $(OPENSSL_DEP) $(LIBGRPC++_TEST_UTIL_OBJS)
+libs/$(TGTDIR)/libgrpc++_test_util.a: $(OPENSSL_DEP) $(LIBGRPC++_TEST_UTIL_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libgrpc++_test_util.a $(LIBGRPC++_TEST_UTIL_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libgrpc++_test_util.a $(LIBGRPC++_TEST_UTIL_OBJS)
 
 
 
@@ -1173,27 +1376,27 @@
 	$(E) "[CLEAN]   Cleaning libgrpc++_test_util files"
 	$(Q) $(RM) $(LIBGRPC++_TEST_UTIL_OBJS)
 	$(Q) $(RM) $(LIBGRPC++_TEST_UTIL_DEPS)
-	$(Q) $(RM) libs/libgrpc++_test_util.a
-	$(Q) $(RM) libs/libgrpc++_test_util.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc++_test_util.a
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc++_test_util.so.$(VERSION)
 
 
 LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_SRC = \
     test/core/end2end/fixtures/chttp2_fake_security.c \
 
 
-LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_SRC))))
-LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_fixture_chttp2_fake_security.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a: openssl_dep_error
 
 else
 
-libs/libend2end_fixture_chttp2_fake_security.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS)
+libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_fixture_chttp2_fake_security.a $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS)
 
 
 
@@ -1211,27 +1414,27 @@
 	$(E) "[CLEAN]   Cleaning libend2end_fixture_chttp2_fake_security files"
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_OBJS)
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_FAKE_SECURITY_DEPS)
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_fake_security.a
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_fake_security.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.so.$(VERSION)
 
 
 LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_SRC = \
     test/core/end2end/fixtures/chttp2_fullstack.c \
 
 
-LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_SRC))))
-LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_fixture_chttp2_fullstack.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a: openssl_dep_error
 
 else
 
-libs/libend2end_fixture_chttp2_fullstack.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS)
+libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_fixture_chttp2_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS)
 
 
 
@@ -1249,27 +1452,27 @@
 	$(E) "[CLEAN]   Cleaning libend2end_fixture_chttp2_fullstack files"
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_OBJS)
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_FULLSTACK_DEPS)
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_fullstack.a
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_fullstack.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.so.$(VERSION)
 
 
 LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_SRC = \
     test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c \
 
 
-LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_SRC))))
-LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a: openssl_dep_error
 
 else
 
-libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS)
+libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS)
 
 
 
@@ -1287,27 +1490,27 @@
 	$(E) "[CLEAN]   Cleaning libend2end_fixture_chttp2_simple_ssl_fullstack files"
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_OBJS)
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_FULLSTACK_DEPS)
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.so.$(VERSION)
 
 
 LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SRC = \
     test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c \
 
 
-LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SRC))))
-LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a: openssl_dep_error
 
 else
 
-libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS)
+libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS)
 
 
 
@@ -1325,27 +1528,27 @@
 	$(E) "[CLEAN]   Cleaning libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack files"
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_OBJS)
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DEPS)
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.so.$(VERSION)
 
 
 LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_SRC = \
     test/core/end2end/fixtures/chttp2_socket_pair.c \
 
 
-LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_SRC))))
-LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_fixture_chttp2_socket_pair.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a: openssl_dep_error
 
 else
 
-libs/libend2end_fixture_chttp2_socket_pair.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS)
+libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_fixture_chttp2_socket_pair.a $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS)
 
 
 
@@ -1363,27 +1566,27 @@
 	$(E) "[CLEAN]   Cleaning libend2end_fixture_chttp2_socket_pair files"
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_OBJS)
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_DEPS)
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_socket_pair.a
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_socket_pair.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.so.$(VERSION)
 
 
 LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SRC = \
     test/core/end2end/fixtures/chttp2_socket_pair_one_byte_at_a_time.c \
 
 
-LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SRC))))
-LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SRC))))
+LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a: openssl_dep_error
 
 else
 
-libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS)
+libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a: $(OPENSSL_DEP) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS)
 
 
 
@@ -1401,21 +1604,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time files"
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_OBJS)
 	$(Q) $(RM) $(LIBEND2END_FIXTURE_CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DEPS)
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a
-	$(Q) $(RM) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.so.$(VERSION)
 
 
 LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_SRC = \
     test/core/end2end/tests/cancel_after_accept.c \
 
 
-LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_SRC))))
-LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_SRC))))
+LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_SRC))))
+LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_SRC))))
 
-libs/libend2end_test_cancel_after_accept.a: $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS)
+libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a: $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_cancel_after_accept.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS)
 
 
 
@@ -1429,21 +1632,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_cancel_after_accept files"
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_DEPS)
-	$(Q) $(RM) libs/libend2end_test_cancel_after_accept.a
-	$(Q) $(RM) libs/libend2end_test_cancel_after_accept.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_after_accept.so.$(VERSION)
 
 
 LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_SRC = \
     test/core/end2end/tests/cancel_after_accept_and_writes_closed.c \
 
 
-LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_SRC))))
-LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_SRC))))
+LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_SRC))))
+LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_SRC))))
 
-libs/libend2end_test_cancel_after_accept_and_writes_closed.a: $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS)
+libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a: $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS)
 
 
 
@@ -1457,21 +1660,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_cancel_after_accept_and_writes_closed files"
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_DEPS)
-	$(Q) $(RM) libs/libend2end_test_cancel_after_accept_and_writes_closed.a
-	$(Q) $(RM) libs/libend2end_test_cancel_after_accept_and_writes_closed.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.so.$(VERSION)
 
 
 LIBEND2END_TEST_CANCEL_AFTER_INVOKE_SRC = \
     test/core/end2end/tests/cancel_after_invoke.c \
 
 
-LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_SRC))))
-LIBEND2END_TEST_CANCEL_AFTER_INVOKE_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_SRC))))
+LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_SRC))))
+LIBEND2END_TEST_CANCEL_AFTER_INVOKE_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_SRC))))
 
-libs/libend2end_test_cancel_after_invoke.a: $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS)
+libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a: $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_cancel_after_invoke.a $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS)
 
 
 
@@ -1485,21 +1688,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_cancel_after_invoke files"
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_AFTER_INVOKE_DEPS)
-	$(Q) $(RM) libs/libend2end_test_cancel_after_invoke.a
-	$(Q) $(RM) libs/libend2end_test_cancel_after_invoke.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.so.$(VERSION)
 
 
 LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_SRC = \
     test/core/end2end/tests/cancel_before_invoke.c \
 
 
-LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_SRC))))
-LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_SRC))))
+LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_SRC))))
+LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_SRC))))
 
-libs/libend2end_test_cancel_before_invoke.a: $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS)
+libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a: $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_cancel_before_invoke.a $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS)
 
 
 
@@ -1513,21 +1716,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_cancel_before_invoke files"
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_BEFORE_INVOKE_DEPS)
-	$(Q) $(RM) libs/libend2end_test_cancel_before_invoke.a
-	$(Q) $(RM) libs/libend2end_test_cancel_before_invoke.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.so.$(VERSION)
 
 
 LIBEND2END_TEST_CANCEL_IN_A_VACUUM_SRC = \
     test/core/end2end/tests/cancel_in_a_vacuum.c \
 
 
-LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_SRC))))
-LIBEND2END_TEST_CANCEL_IN_A_VACUUM_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_SRC))))
+LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_SRC))))
+LIBEND2END_TEST_CANCEL_IN_A_VACUUM_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_SRC))))
 
-libs/libend2end_test_cancel_in_a_vacuum.a: $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS)
+libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a: $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_cancel_in_a_vacuum.a $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS)
 
 
 
@@ -1541,21 +1744,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_cancel_in_a_vacuum files"
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_CANCEL_IN_A_VACUUM_DEPS)
-	$(Q) $(RM) libs/libend2end_test_cancel_in_a_vacuum.a
-	$(Q) $(RM) libs/libend2end_test_cancel_in_a_vacuum.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.so.$(VERSION)
 
 
 LIBEND2END_TEST_DISAPPEARING_SERVER_SRC = \
     test/core/end2end/tests/disappearing_server.c \
 
 
-LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_DISAPPEARING_SERVER_SRC))))
-LIBEND2END_TEST_DISAPPEARING_SERVER_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_DISAPPEARING_SERVER_SRC))))
+LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_DISAPPEARING_SERVER_SRC))))
+LIBEND2END_TEST_DISAPPEARING_SERVER_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_DISAPPEARING_SERVER_SRC))))
 
-libs/libend2end_test_disappearing_server.a: $(LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS)
+libs/$(TGTDIR)/libend2end_test_disappearing_server.a: $(LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_disappearing_server.a $(LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_disappearing_server.a $(LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS)
 
 
 
@@ -1569,21 +1772,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_disappearing_server files"
 	$(Q) $(RM) $(LIBEND2END_TEST_DISAPPEARING_SERVER_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_DISAPPEARING_SERVER_DEPS)
-	$(Q) $(RM) libs/libend2end_test_disappearing_server.a
-	$(Q) $(RM) libs/libend2end_test_disappearing_server.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_disappearing_server.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_disappearing_server.so.$(VERSION)
 
 
 LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_SRC = \
     test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c \
 
 
-LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_SRC))))
-LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_SRC))))
+LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_SRC))))
+LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_SRC))))
 
-libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a: $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS)
+libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a: $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS)
 
 
 
@@ -1597,21 +1800,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_early_server_shutdown_finishes_inflight_calls files"
 	$(Q) $(RM) $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_DEPS)
-	$(Q) $(RM) libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a
-	$(Q) $(RM) libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.so.$(VERSION)
 
 
 LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_SRC = \
     test/core/end2end/tests/early_server_shutdown_finishes_tags.c \
 
 
-LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_SRC))))
-LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_SRC))))
+LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_SRC))))
+LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_SRC))))
 
-libs/libend2end_test_early_server_shutdown_finishes_tags.a: $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS)
+libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a: $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS)
 
 
 
@@ -1625,21 +1828,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_early_server_shutdown_finishes_tags files"
 	$(Q) $(RM) $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_DEPS)
-	$(Q) $(RM) libs/libend2end_test_early_server_shutdown_finishes_tags.a
-	$(Q) $(RM) libs/libend2end_test_early_server_shutdown_finishes_tags.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.so.$(VERSION)
 
 
 LIBEND2END_TEST_INVOKE_LARGE_REQUEST_SRC = \
     test/core/end2end/tests/invoke_large_request.c \
 
 
-LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_SRC))))
-LIBEND2END_TEST_INVOKE_LARGE_REQUEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_SRC))))
+LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_SRC))))
+LIBEND2END_TEST_INVOKE_LARGE_REQUEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_SRC))))
 
-libs/libend2end_test_invoke_large_request.a: $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS)
+libs/$(TGTDIR)/libend2end_test_invoke_large_request.a: $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_invoke_large_request.a $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_invoke_large_request.a $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS)
 
 
 
@@ -1653,21 +1856,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_invoke_large_request files"
 	$(Q) $(RM) $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_INVOKE_LARGE_REQUEST_DEPS)
-	$(Q) $(RM) libs/libend2end_test_invoke_large_request.a
-	$(Q) $(RM) libs/libend2end_test_invoke_large_request.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_invoke_large_request.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_invoke_large_request.so.$(VERSION)
 
 
 LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_SRC = \
     test/core/end2end/tests/max_concurrent_streams.c \
 
 
-LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_SRC))))
-LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_SRC))))
+LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_SRC))))
+LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_SRC))))
 
-libs/libend2end_test_max_concurrent_streams.a: $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS)
+libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a: $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_max_concurrent_streams.a $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS)
 
 
 
@@ -1681,21 +1884,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_max_concurrent_streams files"
 	$(Q) $(RM) $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_MAX_CONCURRENT_STREAMS_DEPS)
-	$(Q) $(RM) libs/libend2end_test_max_concurrent_streams.a
-	$(Q) $(RM) libs/libend2end_test_max_concurrent_streams.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.so.$(VERSION)
 
 
 LIBEND2END_TEST_NO_OP_SRC = \
     test/core/end2end/tests/no_op.c \
 
 
-LIBEND2END_TEST_NO_OP_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_NO_OP_SRC))))
-LIBEND2END_TEST_NO_OP_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_NO_OP_SRC))))
+LIBEND2END_TEST_NO_OP_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_NO_OP_SRC))))
+LIBEND2END_TEST_NO_OP_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_NO_OP_SRC))))
 
-libs/libend2end_test_no_op.a: $(LIBEND2END_TEST_NO_OP_OBJS)
+libs/$(TGTDIR)/libend2end_test_no_op.a: $(LIBEND2END_TEST_NO_OP_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_no_op.a $(LIBEND2END_TEST_NO_OP_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_no_op.a $(LIBEND2END_TEST_NO_OP_OBJS)
 
 
 
@@ -1709,21 +1912,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_no_op files"
 	$(Q) $(RM) $(LIBEND2END_TEST_NO_OP_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_NO_OP_DEPS)
-	$(Q) $(RM) libs/libend2end_test_no_op.a
-	$(Q) $(RM) libs/libend2end_test_no_op.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_no_op.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_no_op.so.$(VERSION)
 
 
 LIBEND2END_TEST_PING_PONG_STREAMING_SRC = \
     test/core/end2end/tests/ping_pong_streaming.c \
 
 
-LIBEND2END_TEST_PING_PONG_STREAMING_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_PING_PONG_STREAMING_SRC))))
-LIBEND2END_TEST_PING_PONG_STREAMING_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_PING_PONG_STREAMING_SRC))))
+LIBEND2END_TEST_PING_PONG_STREAMING_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_PING_PONG_STREAMING_SRC))))
+LIBEND2END_TEST_PING_PONG_STREAMING_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_PING_PONG_STREAMING_SRC))))
 
-libs/libend2end_test_ping_pong_streaming.a: $(LIBEND2END_TEST_PING_PONG_STREAMING_OBJS)
+libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a: $(LIBEND2END_TEST_PING_PONG_STREAMING_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_ping_pong_streaming.a $(LIBEND2END_TEST_PING_PONG_STREAMING_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a $(LIBEND2END_TEST_PING_PONG_STREAMING_OBJS)
 
 
 
@@ -1737,21 +1940,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_ping_pong_streaming files"
 	$(Q) $(RM) $(LIBEND2END_TEST_PING_PONG_STREAMING_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_PING_PONG_STREAMING_DEPS)
-	$(Q) $(RM) libs/libend2end_test_ping_pong_streaming.a
-	$(Q) $(RM) libs/libend2end_test_ping_pong_streaming.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.so.$(VERSION)
 
 
 LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_SRC = \
     test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c \
 
 
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_SRC))))
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_SRC))))
 
-libs/libend2end_test_request_response_with_binary_metadata_and_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS)
+libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS)
 
 
 
@@ -1765,21 +1968,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_request_response_with_binary_metadata_and_payload files"
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_DEPS)
-	$(Q) $(RM) libs/libend2end_test_request_response_with_binary_metadata_and_payload.a
-	$(Q) $(RM) libs/libend2end_test_request_response_with_binary_metadata_and_payload.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.so.$(VERSION)
 
 
 LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_SRC = \
     test/core/end2end/tests/request_response_with_metadata_and_payload.c \
 
 
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_SRC))))
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_SRC))))
 
-libs/libend2end_test_request_response_with_metadata_and_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS)
+libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_request_response_with_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS)
 
 
 
@@ -1793,21 +1996,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_request_response_with_metadata_and_payload files"
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_DEPS)
-	$(Q) $(RM) libs/libend2end_test_request_response_with_metadata_and_payload.a
-	$(Q) $(RM) libs/libend2end_test_request_response_with_metadata_and_payload.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.so.$(VERSION)
 
 
 LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_SRC = \
     test/core/end2end/tests/request_response_with_payload.c \
 
 
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_SRC))))
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_SRC))))
 
-libs/libend2end_test_request_response_with_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS)
+libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_request_response_with_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS)
 
 
 
@@ -1821,21 +2024,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_request_response_with_payload files"
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_PAYLOAD_DEPS)
-	$(Q) $(RM) libs/libend2end_test_request_response_with_payload.a
-	$(Q) $(RM) libs/libend2end_test_request_response_with_payload.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_payload.so.$(VERSION)
 
 
 LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_SRC = \
     test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c \
 
 
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_SRC))))
-LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_SRC))))
+LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_SRC))))
 
-libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS)
+libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a: $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS)
 
 
 
@@ -1849,21 +2052,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_request_response_with_trailing_metadata_and_payload files"
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_DEPS)
-	$(Q) $(RM) libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a
-	$(Q) $(RM) libs/libend2end_test_request_response_with_trailing_metadata_and_payload.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.so.$(VERSION)
 
 
 LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_SRC = \
     test/core/end2end/tests/simple_delayed_request.c \
 
 
-LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_SRC))))
-LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_SRC))))
+LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_SRC))))
+LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_SRC))))
 
-libs/libend2end_test_simple_delayed_request.a: $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS)
+libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a: $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_simple_delayed_request.a $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS)
 
 
 
@@ -1877,21 +2080,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_simple_delayed_request files"
 	$(Q) $(RM) $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_SIMPLE_DELAYED_REQUEST_DEPS)
-	$(Q) $(RM) libs/libend2end_test_simple_delayed_request.a
-	$(Q) $(RM) libs/libend2end_test_simple_delayed_request.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_simple_delayed_request.so.$(VERSION)
 
 
 LIBEND2END_TEST_SIMPLE_REQUEST_SRC = \
     test/core/end2end/tests/simple_request.c \
 
 
-LIBEND2END_TEST_SIMPLE_REQUEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_SIMPLE_REQUEST_SRC))))
-LIBEND2END_TEST_SIMPLE_REQUEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_SIMPLE_REQUEST_SRC))))
+LIBEND2END_TEST_SIMPLE_REQUEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_SIMPLE_REQUEST_SRC))))
+LIBEND2END_TEST_SIMPLE_REQUEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_SIMPLE_REQUEST_SRC))))
 
-libs/libend2end_test_simple_request.a: $(LIBEND2END_TEST_SIMPLE_REQUEST_OBJS)
+libs/$(TGTDIR)/libend2end_test_simple_request.a: $(LIBEND2END_TEST_SIMPLE_REQUEST_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_simple_request.a $(LIBEND2END_TEST_SIMPLE_REQUEST_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_simple_request.a $(LIBEND2END_TEST_SIMPLE_REQUEST_OBJS)
 
 
 
@@ -1905,21 +2108,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_simple_request files"
 	$(Q) $(RM) $(LIBEND2END_TEST_SIMPLE_REQUEST_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_SIMPLE_REQUEST_DEPS)
-	$(Q) $(RM) libs/libend2end_test_simple_request.a
-	$(Q) $(RM) libs/libend2end_test_simple_request.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_simple_request.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_simple_request.so.$(VERSION)
 
 
 LIBEND2END_TEST_THREAD_STRESS_SRC = \
     test/core/end2end/tests/thread_stress.c \
 
 
-LIBEND2END_TEST_THREAD_STRESS_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_THREAD_STRESS_SRC))))
-LIBEND2END_TEST_THREAD_STRESS_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_THREAD_STRESS_SRC))))
+LIBEND2END_TEST_THREAD_STRESS_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_THREAD_STRESS_SRC))))
+LIBEND2END_TEST_THREAD_STRESS_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_THREAD_STRESS_SRC))))
 
-libs/libend2end_test_thread_stress.a: $(LIBEND2END_TEST_THREAD_STRESS_OBJS)
+libs/$(TGTDIR)/libend2end_test_thread_stress.a: $(LIBEND2END_TEST_THREAD_STRESS_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_thread_stress.a $(LIBEND2END_TEST_THREAD_STRESS_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_thread_stress.a $(LIBEND2END_TEST_THREAD_STRESS_OBJS)
 
 
 
@@ -1933,21 +2136,21 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_thread_stress files"
 	$(Q) $(RM) $(LIBEND2END_TEST_THREAD_STRESS_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_THREAD_STRESS_DEPS)
-	$(Q) $(RM) libs/libend2end_test_thread_stress.a
-	$(Q) $(RM) libs/libend2end_test_thread_stress.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_thread_stress.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_thread_stress.so.$(VERSION)
 
 
 LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_SRC = \
     test/core/end2end/tests/writes_done_hangs_with_pending_read.c \
 
 
-LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_SRC))))
-LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_SRC))))
+LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_SRC))))
+LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_SRC))))
 
-libs/libend2end_test_writes_done_hangs_with_pending_read.a: $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS)
+libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a: $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_test_writes_done_hangs_with_pending_read.a $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS)
 
 
 
@@ -1961,8 +2164,8 @@
 	$(E) "[CLEAN]   Cleaning libend2end_test_writes_done_hangs_with_pending_read files"
 	$(Q) $(RM) $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_OBJS)
 	$(Q) $(RM) $(LIBEND2END_TEST_WRITES_DONE_HANGS_WITH_PENDING_READ_DEPS)
-	$(Q) $(RM) libs/libend2end_test_writes_done_hangs_with_pending_read.a
-	$(Q) $(RM) libs/libend2end_test_writes_done_hangs_with_pending_read.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.so.$(VERSION)
 
 
 LIBEND2END_CERTS_SRC = \
@@ -1972,19 +2175,19 @@
     test/core/end2end/data/server1_key.c \
 
 
-LIBEND2END_CERTS_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBEND2END_CERTS_SRC))))
-LIBEND2END_CERTS_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBEND2END_CERTS_SRC))))
+LIBEND2END_CERTS_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBEND2END_CERTS_SRC))))
+LIBEND2END_CERTS_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBEND2END_CERTS_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-libs/libend2end_certs.a: openssl_dep_error
+libs/$(TGTDIR)/libend2end_certs.a: openssl_dep_error
 
 else
 
-libs/libend2end_certs.a: $(OPENSSL_DEP) $(LIBEND2END_CERTS_OBJS)
+libs/$(TGTDIR)/libend2end_certs.a: $(OPENSSL_DEP) $(LIBEND2END_CERTS_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libend2end_certs.a $(LIBEND2END_CERTS_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libend2end_certs.a $(LIBEND2END_CERTS_OBJS)
 
 
 
@@ -2002,8 +2205,8 @@
 	$(E) "[CLEAN]   Cleaning libend2end_certs files"
 	$(Q) $(RM) $(LIBEND2END_CERTS_OBJS)
 	$(Q) $(RM) $(LIBEND2END_CERTS_DEPS)
-	$(Q) $(RM) libs/libend2end_certs.a
-	$(Q) $(RM) libs/libend2end_certs.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_certs.a
+	$(Q) $(RM) libs/$(TGTDIR)/libend2end_certs.so.$(VERSION)
 
 
 LIBGRPC_UNSECURE_SRC = \
@@ -2090,18 +2293,18 @@
     include/grpc/grpc_security.h \
     include/grpc/status.h \
 
-LIBGRPC_UNSECURE_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LIBGRPC_UNSECURE_SRC))))
-LIBGRPC_UNSECURE_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LIBGRPC_UNSECURE_SRC))))
+LIBGRPC_UNSECURE_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LIBGRPC_UNSECURE_SRC))))
+LIBGRPC_UNSECURE_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LIBGRPC_UNSECURE_SRC))))
 
-libs/libgrpc_unsecure.a: $(LIBGRPC_UNSECURE_OBJS)
+libs/$(TGTDIR)/libgrpc_unsecure.a: $(LIBGRPC_UNSECURE_OBJS)
 	$(E) "[AR]      Creating $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(AR) rcs libs/libgrpc_unsecure.a $(LIBGRPC_UNSECURE_OBJS)
+	$(Q) $(AR) rcs libs/$(TGTDIR)/libgrpc_unsecure.a $(LIBGRPC_UNSECURE_OBJS)
 
-libs/libgrpc_unsecure.so.$(VERSION): $(LIBGRPC_UNSECURE_OBJS)
+libs/$(TGTDIR)/libgrpc_unsecure.so.$(VERSION): $(LIBGRPC_UNSECURE_OBJS)
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) -shared -Wl,-soname,libgrpc_unsecure.so.0 -o libs/libgrpc_unsecure.so.$(VERSION) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS)
+	$(Q) $(LD) $(LDFLAGS) -shared -Wl,-soname,libgrpc_unsecure.so.0 -o libs/$(TGTDIR)/libgrpc_unsecure.so.$(VERSION) $(LIBGRPC_UNSECURE_OBJS) $(LDLIBS)
 
 deps_libgrpc_unsecure: $(LIBGRPC_UNSECURE_DEPS)
 
@@ -2113,8 +2316,8 @@
 	$(E) "[CLEAN]   Cleaning libgrpc_unsecure files"
 	$(Q) $(RM) $(LIBGRPC_UNSECURE_OBJS)
 	$(Q) $(RM) $(LIBGRPC_UNSECURE_DEPS)
-	$(Q) $(RM) libs/libgrpc_unsecure.a
-	$(Q) $(RM) libs/libgrpc_unsecure.so.$(VERSION)
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc_unsecure.a
+	$(Q) $(RM) libs/$(TGTDIR)/libgrpc_unsecure.so.$(VERSION)
 
 
 
@@ -2124,19 +2327,19 @@
 GEN_HPACK_TABLES_SRC = \
     src/core/transport/chttp2/gen_hpack_tables.c \
 
-GEN_HPACK_TABLES_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC))))
-GEN_HPACK_TABLES_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GEN_HPACK_TABLES_SRC))))
+GEN_HPACK_TABLES_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GEN_HPACK_TABLES_SRC))))
+GEN_HPACK_TABLES_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GEN_HPACK_TABLES_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gen_hpack_tables: openssl_dep_error
+bins/$(TGTDIR)/gen_hpack_tables: openssl_dep_error
 
 else
 
-bins/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) libs/libgrpc_test_util.a libs/libgpr.a libs/libgrpc.a
+bins/$(TGTDIR)/gen_hpack_tables: $(GEN_HPACK_TABLES_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a libs/$(TGTDIR)/libgrpc.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) -Llibs -lgrpc_test_util -lgpr -lgrpc $(LDLIBS) $(LDLIBS_SECURE) -o bins/gen_hpack_tables
+	$(Q) $(LD) $(LDFLAGS) $(GEN_HPACK_TABLES_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr -lgrpc $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gen_hpack_tables
 
 endif
 
@@ -2152,20 +2355,20 @@
 	$(E) "[CLEAN]   Cleaning gen_hpack_tables files"
 	$(Q) $(RM) $(GEN_HPACK_TABLES_OBJS)
 	$(Q) $(RM) $(GEN_HPACK_TABLES_DEPS)
-	$(Q) $(RM) bins/gen_hpack_tables
+	$(Q) $(RM) bins/$(TGTDIR)/gen_hpack_tables
 
 
 CPP_PLUGIN_SRC = \
     src/compiler/cpp_plugin.cpp \
     src/compiler/cpp_generator.cpp \
 
-CPP_PLUGIN_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CPP_PLUGIN_SRC))))
-CPP_PLUGIN_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CPP_PLUGIN_SRC))))
+CPP_PLUGIN_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CPP_PLUGIN_SRC))))
+CPP_PLUGIN_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CPP_PLUGIN_SRC))))
 
-bins/cpp_plugin: $(CPP_PLUGIN_OBJS)
+bins/$(TGTDIR)/cpp_plugin: $(CPP_PLUGIN_OBJS)
 	$(E) "[HOSTLD]  Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(CPP_PLUGIN_OBJS) -Llibs $(HOST_LDLIBSXX) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o bins/cpp_plugin
+	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(CPP_PLUGIN_OBJS) -Llibs/$(TGTDIR) $(HOST_LDLIBSXX) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o bins/$(TGTDIR)/cpp_plugin
 
 deps_cpp_plugin: $(CPP_PLUGIN_DEPS)
 
@@ -2177,20 +2380,20 @@
 	$(E) "[CLEAN]   Cleaning cpp_plugin files"
 	$(Q) $(RM) $(CPP_PLUGIN_OBJS)
 	$(Q) $(RM) $(CPP_PLUGIN_DEPS)
-	$(Q) $(RM) bins/cpp_plugin
+	$(Q) $(RM) bins/$(TGTDIR)/cpp_plugin
 
 
 RUBY_PLUGIN_SRC = \
     src/compiler/ruby_plugin.cpp \
     src/compiler/ruby_generator.cpp \
 
-RUBY_PLUGIN_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(RUBY_PLUGIN_SRC))))
-RUBY_PLUGIN_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(RUBY_PLUGIN_SRC))))
+RUBY_PLUGIN_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(RUBY_PLUGIN_SRC))))
+RUBY_PLUGIN_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(RUBY_PLUGIN_SRC))))
 
-bins/ruby_plugin: $(RUBY_PLUGIN_OBJS)
+bins/$(TGTDIR)/ruby_plugin: $(RUBY_PLUGIN_OBJS)
 	$(E) "[HOSTLD]  Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(RUBY_PLUGIN_OBJS) -Llibs $(HOST_LDLIBSXX) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o bins/ruby_plugin
+	$(Q) $(HOST_LDXX) $(HOST_LDFLAGS) $(RUBY_PLUGIN_OBJS) -Llibs/$(TGTDIR) $(HOST_LDLIBSXX) $(HOST_LDLIBS) $(HOST_LDLIBS_PROTOC) -o bins/$(TGTDIR)/ruby_plugin
 
 deps_ruby_plugin: $(RUBY_PLUGIN_DEPS)
 
@@ -2202,25 +2405,25 @@
 	$(E) "[CLEAN]   Cleaning ruby_plugin files"
 	$(Q) $(RM) $(RUBY_PLUGIN_OBJS)
 	$(Q) $(RM) $(RUBY_PLUGIN_DEPS)
-	$(Q) $(RM) bins/ruby_plugin
+	$(Q) $(RM) bins/$(TGTDIR)/ruby_plugin
 
 
 GRPC_BYTE_BUFFER_READER_TEST_SRC = \
     test/core/surface/byte_buffer_reader_test.c \
 
-GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC))))
-GRPC_BYTE_BUFFER_READER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC))))
+GRPC_BYTE_BUFFER_READER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC))))
+GRPC_BYTE_BUFFER_READER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_BYTE_BUFFER_READER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_byte_buffer_reader_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_byte_buffer_reader_test: openssl_dep_error
 
 else
 
-bins/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_byte_buffer_reader_test: $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_byte_buffer_reader_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_byte_buffer_reader_test
 
 endif
 
@@ -2236,25 +2439,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_byte_buffer_reader_test files"
 	$(Q) $(RM) $(GRPC_BYTE_BUFFER_READER_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_BYTE_BUFFER_READER_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_byte_buffer_reader_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_byte_buffer_reader_test
 
 
 GPR_CANCELLABLE_TEST_SRC = \
     test/core/support/cancellable_test.c \
 
-GPR_CANCELLABLE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_CANCELLABLE_TEST_SRC))))
-GPR_CANCELLABLE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_CANCELLABLE_TEST_SRC))))
+GPR_CANCELLABLE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_CANCELLABLE_TEST_SRC))))
+GPR_CANCELLABLE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_CANCELLABLE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_cancellable_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_cancellable_test: openssl_dep_error
 
 else
 
-bins/gpr_cancellable_test: $(GPR_CANCELLABLE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_cancellable_test: $(GPR_CANCELLABLE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_CANCELLABLE_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_cancellable_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_CANCELLABLE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_cancellable_test
 
 endif
 
@@ -2270,25 +2473,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_cancellable_test files"
 	$(Q) $(RM) $(GPR_CANCELLABLE_TEST_OBJS)
 	$(Q) $(RM) $(GPR_CANCELLABLE_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_cancellable_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_cancellable_test
 
 
 GPR_LOG_TEST_SRC = \
     test/core/support/log_test.c \
 
-GPR_LOG_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC))))
-GPR_LOG_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_LOG_TEST_SRC))))
+GPR_LOG_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_LOG_TEST_SRC))))
+GPR_LOG_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_LOG_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_log_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_log_test: openssl_dep_error
 
 else
 
-bins/gpr_log_test: $(GPR_LOG_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_log_test: $(GPR_LOG_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_log_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_LOG_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_log_test
 
 endif
 
@@ -2304,25 +2507,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_log_test files"
 	$(Q) $(RM) $(GPR_LOG_TEST_OBJS)
 	$(Q) $(RM) $(GPR_LOG_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_log_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_log_test
 
 
 GPR_USEFUL_TEST_SRC = \
     test/core/support/useful_test.c \
 
-GPR_USEFUL_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC))))
-GPR_USEFUL_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_USEFUL_TEST_SRC))))
+GPR_USEFUL_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_USEFUL_TEST_SRC))))
+GPR_USEFUL_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_USEFUL_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_useful_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_useful_test: openssl_dep_error
 
 else
 
-bins/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_useful_test: $(GPR_USEFUL_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_useful_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_USEFUL_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_useful_test
 
 endif
 
@@ -2338,25 +2541,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_useful_test files"
 	$(Q) $(RM) $(GPR_USEFUL_TEST_OBJS)
 	$(Q) $(RM) $(GPR_USEFUL_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_useful_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_useful_test
 
 
 GPR_CMDLINE_TEST_SRC = \
     test/core/support/cmdline_test.c \
 
-GPR_CMDLINE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC))))
-GPR_CMDLINE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_CMDLINE_TEST_SRC))))
+GPR_CMDLINE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_CMDLINE_TEST_SRC))))
+GPR_CMDLINE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_CMDLINE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_cmdline_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_cmdline_test: openssl_dep_error
 
 else
 
-bins/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_cmdline_test: $(GPR_CMDLINE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_cmdline_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_CMDLINE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_cmdline_test
 
 endif
 
@@ -2372,25 +2575,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_cmdline_test files"
 	$(Q) $(RM) $(GPR_CMDLINE_TEST_OBJS)
 	$(Q) $(RM) $(GPR_CMDLINE_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_cmdline_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_cmdline_test
 
 
 GPR_HISTOGRAM_TEST_SRC = \
     test/core/support/histogram_test.c \
 
-GPR_HISTOGRAM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC))))
-GPR_HISTOGRAM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_HISTOGRAM_TEST_SRC))))
+GPR_HISTOGRAM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_HISTOGRAM_TEST_SRC))))
+GPR_HISTOGRAM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_HISTOGRAM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_histogram_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_histogram_test: openssl_dep_error
 
 else
 
-bins/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_histogram_test: $(GPR_HISTOGRAM_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_histogram_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_HISTOGRAM_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_histogram_test
 
 endif
 
@@ -2406,25 +2609,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_histogram_test files"
 	$(Q) $(RM) $(GPR_HISTOGRAM_TEST_OBJS)
 	$(Q) $(RM) $(GPR_HISTOGRAM_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_histogram_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_histogram_test
 
 
 GPR_HOST_PORT_TEST_SRC = \
     test/core/support/host_port_test.c \
 
-GPR_HOST_PORT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC))))
-GPR_HOST_PORT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_HOST_PORT_TEST_SRC))))
+GPR_HOST_PORT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_HOST_PORT_TEST_SRC))))
+GPR_HOST_PORT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_HOST_PORT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_host_port_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_host_port_test: openssl_dep_error
 
 else
 
-bins/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_host_port_test: $(GPR_HOST_PORT_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_host_port_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_HOST_PORT_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_host_port_test
 
 endif
 
@@ -2440,25 +2643,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_host_port_test files"
 	$(Q) $(RM) $(GPR_HOST_PORT_TEST_OBJS)
 	$(Q) $(RM) $(GPR_HOST_PORT_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_host_port_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_host_port_test
 
 
 GPR_SLICE_BUFFER_TEST_SRC = \
     test/core/support/slice_buffer_test.c \
 
-GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC))))
-GPR_SLICE_BUFFER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_SLICE_BUFFER_TEST_SRC))))
+GPR_SLICE_BUFFER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_SLICE_BUFFER_TEST_SRC))))
+GPR_SLICE_BUFFER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_SLICE_BUFFER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_slice_buffer_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_slice_buffer_test: openssl_dep_error
 
 else
 
-bins/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_slice_buffer_test: $(GPR_SLICE_BUFFER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_slice_buffer_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_BUFFER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_slice_buffer_test
 
 endif
 
@@ -2474,25 +2677,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_slice_buffer_test files"
 	$(Q) $(RM) $(GPR_SLICE_BUFFER_TEST_OBJS)
 	$(Q) $(RM) $(GPR_SLICE_BUFFER_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_slice_buffer_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_slice_buffer_test
 
 
 GPR_SLICE_TEST_SRC = \
     test/core/support/slice_test.c \
 
-GPR_SLICE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC))))
-GPR_SLICE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_SLICE_TEST_SRC))))
+GPR_SLICE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_SLICE_TEST_SRC))))
+GPR_SLICE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_SLICE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_slice_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_slice_test: openssl_dep_error
 
 else
 
-bins/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_slice_test: $(GPR_SLICE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_slice_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_SLICE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_slice_test
 
 endif
 
@@ -2508,25 +2711,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_slice_test files"
 	$(Q) $(RM) $(GPR_SLICE_TEST_OBJS)
 	$(Q) $(RM) $(GPR_SLICE_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_slice_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_slice_test
 
 
 GPR_STRING_TEST_SRC = \
     test/core/support/string_test.c \
 
-GPR_STRING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC))))
-GPR_STRING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_STRING_TEST_SRC))))
+GPR_STRING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_STRING_TEST_SRC))))
+GPR_STRING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_STRING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_string_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_string_test: openssl_dep_error
 
 else
 
-bins/gpr_string_test: $(GPR_STRING_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_string_test: $(GPR_STRING_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_string_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_STRING_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_string_test
 
 endif
 
@@ -2542,25 +2745,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_string_test files"
 	$(Q) $(RM) $(GPR_STRING_TEST_OBJS)
 	$(Q) $(RM) $(GPR_STRING_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_string_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_string_test
 
 
 GPR_SYNC_TEST_SRC = \
     test/core/support/sync_test.c \
 
-GPR_SYNC_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC))))
-GPR_SYNC_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_SYNC_TEST_SRC))))
+GPR_SYNC_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_SYNC_TEST_SRC))))
+GPR_SYNC_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_SYNC_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_sync_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_sync_test: openssl_dep_error
 
 else
 
-bins/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_sync_test: $(GPR_SYNC_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_sync_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_SYNC_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_sync_test
 
 endif
 
@@ -2576,25 +2779,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_sync_test files"
 	$(Q) $(RM) $(GPR_SYNC_TEST_OBJS)
 	$(Q) $(RM) $(GPR_SYNC_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_sync_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_sync_test
 
 
 GPR_THD_TEST_SRC = \
     test/core/support/thd_test.c \
 
-GPR_THD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC))))
-GPR_THD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_THD_TEST_SRC))))
+GPR_THD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_THD_TEST_SRC))))
+GPR_THD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_THD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_thd_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_thd_test: openssl_dep_error
 
 else
 
-bins/gpr_thd_test: $(GPR_THD_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_thd_test: $(GPR_THD_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_thd_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_THD_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_thd_test
 
 endif
 
@@ -2610,25 +2813,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_thd_test files"
 	$(Q) $(RM) $(GPR_THD_TEST_OBJS)
 	$(Q) $(RM) $(GPR_THD_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_thd_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_thd_test
 
 
 GPR_TIME_TEST_SRC = \
     test/core/support/time_test.c \
 
-GPR_TIME_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC))))
-GPR_TIME_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GPR_TIME_TEST_SRC))))
+GPR_TIME_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GPR_TIME_TEST_SRC))))
+GPR_TIME_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GPR_TIME_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/gpr_time_test: openssl_dep_error
+bins/$(TGTDIR)/gpr_time_test: openssl_dep_error
 
 else
 
-bins/gpr_time_test: $(GPR_TIME_TEST_OBJS) libs/libgrpc_test_util.a libs/libgpr.a
+bins/$(TGTDIR)/gpr_time_test: $(GPR_TIME_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) -Llibs -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/gpr_time_test
+	$(Q) $(LD) $(LDFLAGS) $(GPR_TIME_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/gpr_time_test
 
 endif
 
@@ -2644,25 +2847,25 @@
 	$(E) "[CLEAN]   Cleaning gpr_time_test files"
 	$(Q) $(RM) $(GPR_TIME_TEST_OBJS)
 	$(Q) $(RM) $(GPR_TIME_TEST_DEPS)
-	$(Q) $(RM) bins/gpr_time_test
+	$(Q) $(RM) bins/$(TGTDIR)/gpr_time_test
 
 
 MURMUR_HASH_TEST_SRC = \
     test/core/support/murmur_hash_test.c \
 
-MURMUR_HASH_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC))))
-MURMUR_HASH_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(MURMUR_HASH_TEST_SRC))))
+MURMUR_HASH_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(MURMUR_HASH_TEST_SRC))))
+MURMUR_HASH_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(MURMUR_HASH_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/murmur_hash_test: openssl_dep_error
+bins/$(TGTDIR)/murmur_hash_test: openssl_dep_error
 
 else
 
-bins/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/murmur_hash_test: $(MURMUR_HASH_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/murmur_hash_test
+	$(Q) $(LD) $(LDFLAGS) $(MURMUR_HASH_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/murmur_hash_test
 
 endif
 
@@ -2678,25 +2881,25 @@
 	$(E) "[CLEAN]   Cleaning murmur_hash_test files"
 	$(Q) $(RM) $(MURMUR_HASH_TEST_OBJS)
 	$(Q) $(RM) $(MURMUR_HASH_TEST_DEPS)
-	$(Q) $(RM) bins/murmur_hash_test
+	$(Q) $(RM) bins/$(TGTDIR)/murmur_hash_test
 
 
 GRPC_STREAM_OP_TEST_SRC = \
     test/core/transport/stream_op_test.c \
 
-GRPC_STREAM_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_STREAM_OP_TEST_SRC))))
-GRPC_STREAM_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_STREAM_OP_TEST_SRC))))
+GRPC_STREAM_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_STREAM_OP_TEST_SRC))))
+GRPC_STREAM_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_STREAM_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_stream_op_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_stream_op_test: openssl_dep_error
 
 else
 
-bins/grpc_stream_op_test: $(GRPC_STREAM_OP_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_stream_op_test: $(GRPC_STREAM_OP_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_STREAM_OP_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_stream_op_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_STREAM_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_stream_op_test
 
 endif
 
@@ -2712,25 +2915,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_stream_op_test files"
 	$(Q) $(RM) $(GRPC_STREAM_OP_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_STREAM_OP_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_stream_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_stream_op_test
 
 
 ALPN_TEST_SRC = \
     test/core/transport/chttp2/alpn_test.c \
 
-ALPN_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC))))
-ALPN_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ALPN_TEST_SRC))))
+ALPN_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ALPN_TEST_SRC))))
+ALPN_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ALPN_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/alpn_test: openssl_dep_error
+bins/$(TGTDIR)/alpn_test: openssl_dep_error
 
 else
 
-bins/alpn_test: $(ALPN_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/alpn_test: $(ALPN_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/alpn_test
+	$(Q) $(LD) $(LDFLAGS) $(ALPN_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/alpn_test
 
 endif
 
@@ -2746,25 +2949,25 @@
 	$(E) "[CLEAN]   Cleaning alpn_test files"
 	$(Q) $(RM) $(ALPN_TEST_OBJS)
 	$(Q) $(RM) $(ALPN_TEST_DEPS)
-	$(Q) $(RM) bins/alpn_test
+	$(Q) $(RM) bins/$(TGTDIR)/alpn_test
 
 
 TIME_AVERAGED_STATS_TEST_SRC = \
     test/core/iomgr/time_averaged_stats_test.c \
 
-TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC))))
-TIME_AVERAGED_STATS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TIME_AVERAGED_STATS_TEST_SRC))))
+TIME_AVERAGED_STATS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TIME_AVERAGED_STATS_TEST_SRC))))
+TIME_AVERAGED_STATS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TIME_AVERAGED_STATS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/time_averaged_stats_test: openssl_dep_error
+bins/$(TGTDIR)/time_averaged_stats_test: openssl_dep_error
 
 else
 
-bins/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/time_averaged_stats_test: $(TIME_AVERAGED_STATS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/time_averaged_stats_test
+	$(Q) $(LD) $(LDFLAGS) $(TIME_AVERAGED_STATS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/time_averaged_stats_test
 
 endif
 
@@ -2780,25 +2983,25 @@
 	$(E) "[CLEAN]   Cleaning time_averaged_stats_test files"
 	$(Q) $(RM) $(TIME_AVERAGED_STATS_TEST_OBJS)
 	$(Q) $(RM) $(TIME_AVERAGED_STATS_TEST_DEPS)
-	$(Q) $(RM) bins/time_averaged_stats_test
+	$(Q) $(RM) bins/$(TGTDIR)/time_averaged_stats_test
 
 
 CHTTP2_STREAM_ENCODER_TEST_SRC = \
     test/core/transport/chttp2/stream_encoder_test.c \
 
-CHTTP2_STREAM_ENCODER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_ENCODER_TEST_SRC))))
-CHTTP2_STREAM_ENCODER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_STREAM_ENCODER_TEST_SRC))))
+CHTTP2_STREAM_ENCODER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_ENCODER_TEST_SRC))))
+CHTTP2_STREAM_ENCODER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_STREAM_ENCODER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_stream_encoder_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_stream_encoder_test: openssl_dep_error
 
 else
 
-bins/chttp2_stream_encoder_test: $(CHTTP2_STREAM_ENCODER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_stream_encoder_test: $(CHTTP2_STREAM_ENCODER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_ENCODER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_stream_encoder_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_ENCODER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_stream_encoder_test
 
 endif
 
@@ -2814,25 +3017,25 @@
 	$(E) "[CLEAN]   Cleaning chttp2_stream_encoder_test files"
 	$(Q) $(RM) $(CHTTP2_STREAM_ENCODER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_STREAM_ENCODER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_stream_encoder_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_stream_encoder_test
 
 
 HPACK_TABLE_TEST_SRC = \
     test/core/transport/chttp2/hpack_table_test.c \
 
-HPACK_TABLE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC))))
-HPACK_TABLE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(HPACK_TABLE_TEST_SRC))))
+HPACK_TABLE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(HPACK_TABLE_TEST_SRC))))
+HPACK_TABLE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(HPACK_TABLE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/hpack_table_test: openssl_dep_error
+bins/$(TGTDIR)/hpack_table_test: openssl_dep_error
 
 else
 
-bins/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/hpack_table_test: $(HPACK_TABLE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/hpack_table_test
+	$(Q) $(LD) $(LDFLAGS) $(HPACK_TABLE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/hpack_table_test
 
 endif
 
@@ -2848,25 +3051,25 @@
 	$(E) "[CLEAN]   Cleaning hpack_table_test files"
 	$(Q) $(RM) $(HPACK_TABLE_TEST_OBJS)
 	$(Q) $(RM) $(HPACK_TABLE_TEST_DEPS)
-	$(Q) $(RM) bins/hpack_table_test
+	$(Q) $(RM) bins/$(TGTDIR)/hpack_table_test
 
 
 CHTTP2_STREAM_MAP_TEST_SRC = \
     test/core/transport/chttp2/stream_map_test.c \
 
-CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC))))
-CHTTP2_STREAM_MAP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC))))
+CHTTP2_STREAM_MAP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC))))
+CHTTP2_STREAM_MAP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_STREAM_MAP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_stream_map_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_stream_map_test: openssl_dep_error
 
 else
 
-bins/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_stream_map_test: $(CHTTP2_STREAM_MAP_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_stream_map_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STREAM_MAP_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_stream_map_test
 
 endif
 
@@ -2882,25 +3085,25 @@
 	$(E) "[CLEAN]   Cleaning chttp2_stream_map_test files"
 	$(Q) $(RM) $(CHTTP2_STREAM_MAP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_STREAM_MAP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_stream_map_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_stream_map_test
 
 
 HPACK_PARSER_TEST_SRC = \
     test/core/transport/chttp2/hpack_parser_test.c \
 
-HPACK_PARSER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC))))
-HPACK_PARSER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(HPACK_PARSER_TEST_SRC))))
+HPACK_PARSER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(HPACK_PARSER_TEST_SRC))))
+HPACK_PARSER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(HPACK_PARSER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/hpack_parser_test: openssl_dep_error
+bins/$(TGTDIR)/hpack_parser_test: openssl_dep_error
 
 else
 
-bins/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/hpack_parser_test: $(HPACK_PARSER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/hpack_parser_test
+	$(Q) $(LD) $(LDFLAGS) $(HPACK_PARSER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/hpack_parser_test
 
 endif
 
@@ -2916,25 +3119,25 @@
 	$(E) "[CLEAN]   Cleaning hpack_parser_test files"
 	$(Q) $(RM) $(HPACK_PARSER_TEST_OBJS)
 	$(Q) $(RM) $(HPACK_PARSER_TEST_DEPS)
-	$(Q) $(RM) bins/hpack_parser_test
+	$(Q) $(RM) bins/$(TGTDIR)/hpack_parser_test
 
 
 TRANSPORT_METADATA_TEST_SRC = \
     test/core/transport/metadata_test.c \
 
-TRANSPORT_METADATA_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC))))
-TRANSPORT_METADATA_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TRANSPORT_METADATA_TEST_SRC))))
+TRANSPORT_METADATA_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TRANSPORT_METADATA_TEST_SRC))))
+TRANSPORT_METADATA_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TRANSPORT_METADATA_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/transport_metadata_test: openssl_dep_error
+bins/$(TGTDIR)/transport_metadata_test: openssl_dep_error
 
 else
 
-bins/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/transport_metadata_test: $(TRANSPORT_METADATA_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/transport_metadata_test
+	$(Q) $(LD) $(LDFLAGS) $(TRANSPORT_METADATA_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/transport_metadata_test
 
 endif
 
@@ -2950,25 +3153,25 @@
 	$(E) "[CLEAN]   Cleaning transport_metadata_test files"
 	$(Q) $(RM) $(TRANSPORT_METADATA_TEST_OBJS)
 	$(Q) $(RM) $(TRANSPORT_METADATA_TEST_DEPS)
-	$(Q) $(RM) bins/transport_metadata_test
+	$(Q) $(RM) bins/$(TGTDIR)/transport_metadata_test
 
 
 CHTTP2_STATUS_CONVERSION_TEST_SRC = \
     test/core/transport/chttp2/status_conversion_test.c \
 
-CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC))))
-CHTTP2_STATUS_CONVERSION_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC))))
+CHTTP2_STATUS_CONVERSION_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC))))
+CHTTP2_STATUS_CONVERSION_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_STATUS_CONVERSION_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_status_conversion_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_status_conversion_test: openssl_dep_error
 
 else
 
-bins/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_status_conversion_test: $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_status_conversion_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_status_conversion_test
 
 endif
 
@@ -2984,25 +3187,25 @@
 	$(E) "[CLEAN]   Cleaning chttp2_status_conversion_test files"
 	$(Q) $(RM) $(CHTTP2_STATUS_CONVERSION_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_STATUS_CONVERSION_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_status_conversion_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_status_conversion_test
 
 
 CHTTP2_TRANSPORT_END2END_TEST_SRC = \
     test/core/transport/chttp2_transport_end2end_test.c \
 
-CHTTP2_TRANSPORT_END2END_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_TRANSPORT_END2END_TEST_SRC))))
-CHTTP2_TRANSPORT_END2END_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_TRANSPORT_END2END_TEST_SRC))))
+CHTTP2_TRANSPORT_END2END_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_TRANSPORT_END2END_TEST_SRC))))
+CHTTP2_TRANSPORT_END2END_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_TRANSPORT_END2END_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_transport_end2end_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_transport_end2end_test: openssl_dep_error
 
 else
 
-bins/chttp2_transport_end2end_test: $(CHTTP2_TRANSPORT_END2END_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_transport_end2end_test: $(CHTTP2_TRANSPORT_END2END_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_TRANSPORT_END2END_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_transport_end2end_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_TRANSPORT_END2END_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_transport_end2end_test
 
 endif
 
@@ -3018,25 +3221,25 @@
 	$(E) "[CLEAN]   Cleaning chttp2_transport_end2end_test files"
 	$(Q) $(RM) $(CHTTP2_TRANSPORT_END2END_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_TRANSPORT_END2END_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_transport_end2end_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_transport_end2end_test
 
 
 TCP_POSIX_TEST_SRC = \
     test/core/iomgr/tcp_posix_test.c \
 
-TCP_POSIX_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC))))
-TCP_POSIX_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TCP_POSIX_TEST_SRC))))
+TCP_POSIX_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TCP_POSIX_TEST_SRC))))
+TCP_POSIX_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TCP_POSIX_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/tcp_posix_test: openssl_dep_error
+bins/$(TGTDIR)/tcp_posix_test: openssl_dep_error
 
 else
 
-bins/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/tcp_posix_test: $(TCP_POSIX_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/tcp_posix_test
+	$(Q) $(LD) $(LDFLAGS) $(TCP_POSIX_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/tcp_posix_test
 
 endif
 
@@ -3052,25 +3255,25 @@
 	$(E) "[CLEAN]   Cleaning tcp_posix_test files"
 	$(Q) $(RM) $(TCP_POSIX_TEST_OBJS)
 	$(Q) $(RM) $(TCP_POSIX_TEST_DEPS)
-	$(Q) $(RM) bins/tcp_posix_test
+	$(Q) $(RM) bins/$(TGTDIR)/tcp_posix_test
 
 
 DUALSTACK_SOCKET_TEST_SRC = \
     test/core/end2end/dualstack_socket_test.c \
 
-DUALSTACK_SOCKET_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC))))
-DUALSTACK_SOCKET_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(DUALSTACK_SOCKET_TEST_SRC))))
+DUALSTACK_SOCKET_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(DUALSTACK_SOCKET_TEST_SRC))))
+DUALSTACK_SOCKET_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(DUALSTACK_SOCKET_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/dualstack_socket_test: openssl_dep_error
+bins/$(TGTDIR)/dualstack_socket_test: openssl_dep_error
 
 else
 
-bins/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/dualstack_socket_test: $(DUALSTACK_SOCKET_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/dualstack_socket_test
+	$(Q) $(LD) $(LDFLAGS) $(DUALSTACK_SOCKET_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/dualstack_socket_test
 
 endif
 
@@ -3086,25 +3289,25 @@
 	$(E) "[CLEAN]   Cleaning dualstack_socket_test files"
 	$(Q) $(RM) $(DUALSTACK_SOCKET_TEST_OBJS)
 	$(Q) $(RM) $(DUALSTACK_SOCKET_TEST_DEPS)
-	$(Q) $(RM) bins/dualstack_socket_test
+	$(Q) $(RM) bins/$(TGTDIR)/dualstack_socket_test
 
 
 NO_SERVER_TEST_SRC = \
     test/core/end2end/no_server_test.c \
 
-NO_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC))))
-NO_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(NO_SERVER_TEST_SRC))))
+NO_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(NO_SERVER_TEST_SRC))))
+NO_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(NO_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/no_server_test: openssl_dep_error
+bins/$(TGTDIR)/no_server_test: openssl_dep_error
 
 else
 
-bins/no_server_test: $(NO_SERVER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/no_server_test: $(NO_SERVER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/no_server_test
+	$(Q) $(LD) $(LDFLAGS) $(NO_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/no_server_test
 
 endif
 
@@ -3120,25 +3323,25 @@
 	$(E) "[CLEAN]   Cleaning no_server_test files"
 	$(Q) $(RM) $(NO_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(NO_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/no_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/no_server_test
 
 
 RESOLVE_ADDRESS_TEST_SRC = \
     test/core/iomgr/resolve_address_test.c \
 
-RESOLVE_ADDRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC))))
-RESOLVE_ADDRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(RESOLVE_ADDRESS_TEST_SRC))))
+RESOLVE_ADDRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(RESOLVE_ADDRESS_TEST_SRC))))
+RESOLVE_ADDRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(RESOLVE_ADDRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/resolve_address_test: openssl_dep_error
+bins/$(TGTDIR)/resolve_address_test: openssl_dep_error
 
 else
 
-bins/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/resolve_address_test: $(RESOLVE_ADDRESS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/resolve_address_test
+	$(Q) $(LD) $(LDFLAGS) $(RESOLVE_ADDRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/resolve_address_test
 
 endif
 
@@ -3154,25 +3357,25 @@
 	$(E) "[CLEAN]   Cleaning resolve_address_test files"
 	$(Q) $(RM) $(RESOLVE_ADDRESS_TEST_OBJS)
 	$(Q) $(RM) $(RESOLVE_ADDRESS_TEST_DEPS)
-	$(Q) $(RM) bins/resolve_address_test
+	$(Q) $(RM) bins/$(TGTDIR)/resolve_address_test
 
 
 SOCKADDR_UTILS_TEST_SRC = \
     test/core/iomgr/sockaddr_utils_test.c \
 
-SOCKADDR_UTILS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC))))
-SOCKADDR_UTILS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(SOCKADDR_UTILS_TEST_SRC))))
+SOCKADDR_UTILS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(SOCKADDR_UTILS_TEST_SRC))))
+SOCKADDR_UTILS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(SOCKADDR_UTILS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/sockaddr_utils_test: openssl_dep_error
+bins/$(TGTDIR)/sockaddr_utils_test: openssl_dep_error
 
 else
 
-bins/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/sockaddr_utils_test: $(SOCKADDR_UTILS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/sockaddr_utils_test
+	$(Q) $(LD) $(LDFLAGS) $(SOCKADDR_UTILS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/sockaddr_utils_test
 
 endif
 
@@ -3188,25 +3391,25 @@
 	$(E) "[CLEAN]   Cleaning sockaddr_utils_test files"
 	$(Q) $(RM) $(SOCKADDR_UTILS_TEST_OBJS)
 	$(Q) $(RM) $(SOCKADDR_UTILS_TEST_DEPS)
-	$(Q) $(RM) bins/sockaddr_utils_test
+	$(Q) $(RM) bins/$(TGTDIR)/sockaddr_utils_test
 
 
 TCP_SERVER_POSIX_TEST_SRC = \
     test/core/iomgr/tcp_server_posix_test.c \
 
-TCP_SERVER_POSIX_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC))))
-TCP_SERVER_POSIX_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TCP_SERVER_POSIX_TEST_SRC))))
+TCP_SERVER_POSIX_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TCP_SERVER_POSIX_TEST_SRC))))
+TCP_SERVER_POSIX_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TCP_SERVER_POSIX_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/tcp_server_posix_test: openssl_dep_error
+bins/$(TGTDIR)/tcp_server_posix_test: openssl_dep_error
 
 else
 
-bins/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/tcp_server_posix_test: $(TCP_SERVER_POSIX_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/tcp_server_posix_test
+	$(Q) $(LD) $(LDFLAGS) $(TCP_SERVER_POSIX_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/tcp_server_posix_test
 
 endif
 
@@ -3222,25 +3425,25 @@
 	$(E) "[CLEAN]   Cleaning tcp_server_posix_test files"
 	$(Q) $(RM) $(TCP_SERVER_POSIX_TEST_OBJS)
 	$(Q) $(RM) $(TCP_SERVER_POSIX_TEST_DEPS)
-	$(Q) $(RM) bins/tcp_server_posix_test
+	$(Q) $(RM) bins/$(TGTDIR)/tcp_server_posix_test
 
 
 TCP_CLIENT_POSIX_TEST_SRC = \
     test/core/iomgr/tcp_client_posix_test.c \
 
-TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC))))
-TCP_CLIENT_POSIX_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TCP_CLIENT_POSIX_TEST_SRC))))
+TCP_CLIENT_POSIX_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TCP_CLIENT_POSIX_TEST_SRC))))
+TCP_CLIENT_POSIX_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TCP_CLIENT_POSIX_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/tcp_client_posix_test: openssl_dep_error
+bins/$(TGTDIR)/tcp_client_posix_test: openssl_dep_error
 
 else
 
-bins/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/tcp_client_posix_test: $(TCP_CLIENT_POSIX_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/tcp_client_posix_test
+	$(Q) $(LD) $(LDFLAGS) $(TCP_CLIENT_POSIX_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/tcp_client_posix_test
 
 endif
 
@@ -3256,25 +3459,25 @@
 	$(E) "[CLEAN]   Cleaning tcp_client_posix_test files"
 	$(Q) $(RM) $(TCP_CLIENT_POSIX_TEST_OBJS)
 	$(Q) $(RM) $(TCP_CLIENT_POSIX_TEST_DEPS)
-	$(Q) $(RM) bins/tcp_client_posix_test
+	$(Q) $(RM) bins/$(TGTDIR)/tcp_client_posix_test
 
 
 GRPC_CHANNEL_STACK_TEST_SRC = \
     test/core/channel/channel_stack_test.c \
 
-GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC))))
-GRPC_CHANNEL_STACK_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC))))
+GRPC_CHANNEL_STACK_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC))))
+GRPC_CHANNEL_STACK_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_CHANNEL_STACK_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_channel_stack_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_channel_stack_test: openssl_dep_error
 
 else
 
-bins/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_channel_stack_test: $(GRPC_CHANNEL_STACK_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_channel_stack_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_STACK_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_channel_stack_test
 
 endif
 
@@ -3290,25 +3493,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_channel_stack_test files"
 	$(Q) $(RM) $(GRPC_CHANNEL_STACK_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_CHANNEL_STACK_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_channel_stack_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_channel_stack_test
 
 
 METADATA_BUFFER_TEST_SRC = \
     test/core/channel/metadata_buffer_test.c \
 
-METADATA_BUFFER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(METADATA_BUFFER_TEST_SRC))))
-METADATA_BUFFER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(METADATA_BUFFER_TEST_SRC))))
+METADATA_BUFFER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(METADATA_BUFFER_TEST_SRC))))
+METADATA_BUFFER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(METADATA_BUFFER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/metadata_buffer_test: openssl_dep_error
+bins/$(TGTDIR)/metadata_buffer_test: openssl_dep_error
 
 else
 
-bins/metadata_buffer_test: $(METADATA_BUFFER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/metadata_buffer_test: $(METADATA_BUFFER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(METADATA_BUFFER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/metadata_buffer_test
+	$(Q) $(LD) $(LDFLAGS) $(METADATA_BUFFER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/metadata_buffer_test
 
 endif
 
@@ -3324,25 +3527,25 @@
 	$(E) "[CLEAN]   Cleaning metadata_buffer_test files"
 	$(Q) $(RM) $(METADATA_BUFFER_TEST_OBJS)
 	$(Q) $(RM) $(METADATA_BUFFER_TEST_DEPS)
-	$(Q) $(RM) bins/metadata_buffer_test
+	$(Q) $(RM) bins/$(TGTDIR)/metadata_buffer_test
 
 
 GRPC_COMPLETION_QUEUE_TEST_SRC = \
     test/core/surface/completion_queue_test.c \
 
-GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC))))
-GRPC_COMPLETION_QUEUE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC))))
+GRPC_COMPLETION_QUEUE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC))))
+GRPC_COMPLETION_QUEUE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_COMPLETION_QUEUE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_completion_queue_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_completion_queue_test: openssl_dep_error
 
 else
 
-bins/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_completion_queue_test: $(GRPC_COMPLETION_QUEUE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_completion_queue_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_completion_queue_test
 
 endif
 
@@ -3358,25 +3561,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_completion_queue_test files"
 	$(Q) $(RM) $(GRPC_COMPLETION_QUEUE_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_COMPLETION_QUEUE_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_completion_queue_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_completion_queue_test
 
 
 GRPC_COMPLETION_QUEUE_BENCHMARK_SRC = \
     test/core/surface/completion_queue_benchmark.c \
 
-GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_BENCHMARK_SRC))))
-GRPC_COMPLETION_QUEUE_BENCHMARK_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_COMPLETION_QUEUE_BENCHMARK_SRC))))
+GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_COMPLETION_QUEUE_BENCHMARK_SRC))))
+GRPC_COMPLETION_QUEUE_BENCHMARK_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_COMPLETION_QUEUE_BENCHMARK_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_completion_queue_benchmark: openssl_dep_error
+bins/$(TGTDIR)/grpc_completion_queue_benchmark: openssl_dep_error
 
 else
 
-bins/grpc_completion_queue_benchmark: $(GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_completion_queue_benchmark: $(GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_completion_queue_benchmark
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_completion_queue_benchmark
 
 endif
 
@@ -3392,25 +3595,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_completion_queue_benchmark files"
 	$(Q) $(RM) $(GRPC_COMPLETION_QUEUE_BENCHMARK_OBJS)
 	$(Q) $(RM) $(GRPC_COMPLETION_QUEUE_BENCHMARK_DEPS)
-	$(Q) $(RM) bins/grpc_completion_queue_benchmark
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_completion_queue_benchmark
 
 
 CENSUS_WINDOW_STATS_TEST_SRC = \
     test/core/statistics/window_stats_test.c \
 
-CENSUS_WINDOW_STATS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_WINDOW_STATS_TEST_SRC))))
-CENSUS_WINDOW_STATS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_WINDOW_STATS_TEST_SRC))))
+CENSUS_WINDOW_STATS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_WINDOW_STATS_TEST_SRC))))
+CENSUS_WINDOW_STATS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_WINDOW_STATS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_window_stats_test: openssl_dep_error
+bins/$(TGTDIR)/census_window_stats_test: openssl_dep_error
 
 else
 
-bins/census_window_stats_test: $(CENSUS_WINDOW_STATS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_window_stats_test: $(CENSUS_WINDOW_STATS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_WINDOW_STATS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_window_stats_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_WINDOW_STATS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_window_stats_test
 
 endif
 
@@ -3426,25 +3629,25 @@
 	$(E) "[CLEAN]   Cleaning census_window_stats_test files"
 	$(Q) $(RM) $(CENSUS_WINDOW_STATS_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_WINDOW_STATS_TEST_DEPS)
-	$(Q) $(RM) bins/census_window_stats_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_window_stats_test
 
 
 CENSUS_STATISTICS_QUICK_TEST_SRC = \
     test/core/statistics/quick_test.c \
 
-CENSUS_STATISTICS_QUICK_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_QUICK_TEST_SRC))))
-CENSUS_STATISTICS_QUICK_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_QUICK_TEST_SRC))))
+CENSUS_STATISTICS_QUICK_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_QUICK_TEST_SRC))))
+CENSUS_STATISTICS_QUICK_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_QUICK_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_statistics_quick_test: openssl_dep_error
+bins/$(TGTDIR)/census_statistics_quick_test: openssl_dep_error
 
 else
 
-bins/census_statistics_quick_test: $(CENSUS_STATISTICS_QUICK_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_statistics_quick_test: $(CENSUS_STATISTICS_QUICK_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_QUICK_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_statistics_quick_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_QUICK_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_statistics_quick_test
 
 endif
 
@@ -3460,25 +3663,25 @@
 	$(E) "[CLEAN]   Cleaning census_statistics_quick_test files"
 	$(Q) $(RM) $(CENSUS_STATISTICS_QUICK_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_STATISTICS_QUICK_TEST_DEPS)
-	$(Q) $(RM) bins/census_statistics_quick_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_statistics_quick_test
 
 
 CENSUS_STATISTICS_SMALL_LOG_TEST_SRC = \
     test/core/statistics/small_log_test.c \
 
-CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_SMALL_LOG_TEST_SRC))))
-CENSUS_STATISTICS_SMALL_LOG_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_SMALL_LOG_TEST_SRC))))
+CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_SMALL_LOG_TEST_SRC))))
+CENSUS_STATISTICS_SMALL_LOG_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_SMALL_LOG_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_statistics_small_log_test: openssl_dep_error
+bins/$(TGTDIR)/census_statistics_small_log_test: openssl_dep_error
 
 else
 
-bins/census_statistics_small_log_test: $(CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_statistics_small_log_test: $(CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_statistics_small_log_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_statistics_small_log_test
 
 endif
 
@@ -3494,25 +3697,25 @@
 	$(E) "[CLEAN]   Cleaning census_statistics_small_log_test files"
 	$(Q) $(RM) $(CENSUS_STATISTICS_SMALL_LOG_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_STATISTICS_SMALL_LOG_TEST_DEPS)
-	$(Q) $(RM) bins/census_statistics_small_log_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_statistics_small_log_test
 
 
 CENSUS_STATISTICS_PERFORMANCE_TEST_SRC = \
     test/core/statistics/performance_test.c \
 
-CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_PERFORMANCE_TEST_SRC))))
-CENSUS_STATISTICS_PERFORMANCE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_PERFORMANCE_TEST_SRC))))
+CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_PERFORMANCE_TEST_SRC))))
+CENSUS_STATISTICS_PERFORMANCE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_PERFORMANCE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_statistics_performance_test: openssl_dep_error
+bins/$(TGTDIR)/census_statistics_performance_test: openssl_dep_error
 
 else
 
-bins/census_statistics_performance_test: $(CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_statistics_performance_test: $(CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_statistics_performance_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_statistics_performance_test
 
 endif
 
@@ -3528,25 +3731,25 @@
 	$(E) "[CLEAN]   Cleaning census_statistics_performance_test files"
 	$(Q) $(RM) $(CENSUS_STATISTICS_PERFORMANCE_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_STATISTICS_PERFORMANCE_TEST_DEPS)
-	$(Q) $(RM) bins/census_statistics_performance_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_statistics_performance_test
 
 
 CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_SRC = \
     test/core/statistics/multiple_writers_test.c \
 
-CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_SRC))))
-CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_SRC))))
+CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_SRC))))
+CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_statistics_multiple_writers_test: openssl_dep_error
+bins/$(TGTDIR)/census_statistics_multiple_writers_test: openssl_dep_error
 
 else
 
-bins/census_statistics_multiple_writers_test: $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_statistics_multiple_writers_test: $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_statistics_multiple_writers_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_statistics_multiple_writers_test
 
 endif
 
@@ -3562,25 +3765,25 @@
 	$(E) "[CLEAN]   Cleaning census_statistics_multiple_writers_test files"
 	$(Q) $(RM) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_TEST_DEPS)
-	$(Q) $(RM) bins/census_statistics_multiple_writers_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_statistics_multiple_writers_test
 
 
 CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_SRC = \
     test/core/statistics/multiple_writers_circular_buffer_test.c \
 
-CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_SRC))))
-CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_SRC))))
+CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_SRC))))
+CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_statistics_multiple_writers_circular_buffer_test: openssl_dep_error
+bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test: openssl_dep_error
 
 else
 
-bins/census_statistics_multiple_writers_circular_buffer_test: $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test: $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_statistics_multiple_writers_circular_buffer_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test
 
 endif
 
@@ -3596,25 +3799,25 @@
 	$(E) "[CLEAN]   Cleaning census_statistics_multiple_writers_circular_buffer_test files"
 	$(Q) $(RM) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_STATISTICS_MULTIPLE_WRITERS_CIRCULAR_BUFFER_TEST_DEPS)
-	$(Q) $(RM) bins/census_statistics_multiple_writers_circular_buffer_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_statistics_multiple_writers_circular_buffer_test
 
 
 CENSUS_STUB_TEST_SRC = \
     test/core/statistics/census_stub_test.c \
 
-CENSUS_STUB_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_STUB_TEST_SRC))))
-CENSUS_STUB_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_STUB_TEST_SRC))))
+CENSUS_STUB_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_STUB_TEST_SRC))))
+CENSUS_STUB_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_STUB_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_stub_test: openssl_dep_error
+bins/$(TGTDIR)/census_stub_test: openssl_dep_error
 
 else
 
-bins/census_stub_test: $(CENSUS_STUB_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_stub_test: $(CENSUS_STUB_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STUB_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_stub_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_STUB_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_stub_test
 
 endif
 
@@ -3630,25 +3833,25 @@
 	$(E) "[CLEAN]   Cleaning census_stub_test files"
 	$(Q) $(RM) $(CENSUS_STUB_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_STUB_TEST_DEPS)
-	$(Q) $(RM) bins/census_stub_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_stub_test
 
 
 CENSUS_HASH_TABLE_TEST_SRC = \
     test/core/statistics/hash_table_test.c \
 
-CENSUS_HASH_TABLE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CENSUS_HASH_TABLE_TEST_SRC))))
-CENSUS_HASH_TABLE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CENSUS_HASH_TABLE_TEST_SRC))))
+CENSUS_HASH_TABLE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CENSUS_HASH_TABLE_TEST_SRC))))
+CENSUS_HASH_TABLE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CENSUS_HASH_TABLE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/census_hash_table_test: openssl_dep_error
+bins/$(TGTDIR)/census_hash_table_test: openssl_dep_error
 
 else
 
-bins/census_hash_table_test: $(CENSUS_HASH_TABLE_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/census_hash_table_test: $(CENSUS_HASH_TABLE_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CENSUS_HASH_TABLE_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/census_hash_table_test
+	$(Q) $(LD) $(LDFLAGS) $(CENSUS_HASH_TABLE_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/census_hash_table_test
 
 endif
 
@@ -3664,25 +3867,25 @@
 	$(E) "[CLEAN]   Cleaning census_hash_table_test files"
 	$(Q) $(RM) $(CENSUS_HASH_TABLE_TEST_OBJS)
 	$(Q) $(RM) $(CENSUS_HASH_TABLE_TEST_DEPS)
-	$(Q) $(RM) bins/census_hash_table_test
+	$(Q) $(RM) bins/$(TGTDIR)/census_hash_table_test
 
 
 FLING_SERVER_SRC = \
     test/core/fling/server.c \
 
-FLING_SERVER_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC))))
-FLING_SERVER_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(FLING_SERVER_SRC))))
+FLING_SERVER_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(FLING_SERVER_SRC))))
+FLING_SERVER_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(FLING_SERVER_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/fling_server: openssl_dep_error
+bins/$(TGTDIR)/fling_server: openssl_dep_error
 
 else
 
-bins/fling_server: $(FLING_SERVER_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/fling_server: $(FLING_SERVER_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/fling_server
+	$(Q) $(LD) $(LDFLAGS) $(FLING_SERVER_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/fling_server
 
 endif
 
@@ -3698,25 +3901,25 @@
 	$(E) "[CLEAN]   Cleaning fling_server files"
 	$(Q) $(RM) $(FLING_SERVER_OBJS)
 	$(Q) $(RM) $(FLING_SERVER_DEPS)
-	$(Q) $(RM) bins/fling_server
+	$(Q) $(RM) bins/$(TGTDIR)/fling_server
 
 
 FLING_CLIENT_SRC = \
     test/core/fling/client.c \
 
-FLING_CLIENT_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC))))
-FLING_CLIENT_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(FLING_CLIENT_SRC))))
+FLING_CLIENT_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(FLING_CLIENT_SRC))))
+FLING_CLIENT_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(FLING_CLIENT_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/fling_client: openssl_dep_error
+bins/$(TGTDIR)/fling_client: openssl_dep_error
 
 else
 
-bins/fling_client: $(FLING_CLIENT_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/fling_client: $(FLING_CLIENT_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/fling_client
+	$(Q) $(LD) $(LDFLAGS) $(FLING_CLIENT_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/fling_client
 
 endif
 
@@ -3732,25 +3935,25 @@
 	$(E) "[CLEAN]   Cleaning fling_client files"
 	$(Q) $(RM) $(FLING_CLIENT_OBJS)
 	$(Q) $(RM) $(FLING_CLIENT_DEPS)
-	$(Q) $(RM) bins/fling_client
+	$(Q) $(RM) bins/$(TGTDIR)/fling_client
 
 
 FLING_TEST_SRC = \
     test/core/fling/fling_test.c \
 
-FLING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(FLING_TEST_SRC))))
-FLING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(FLING_TEST_SRC))))
+FLING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(FLING_TEST_SRC))))
+FLING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(FLING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/fling_test: openssl_dep_error
+bins/$(TGTDIR)/fling_test: openssl_dep_error
 
 else
 
-bins/fling_test: $(FLING_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/fling_test: $(FLING_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/fling_test
+	$(Q) $(LD) $(LDFLAGS) $(FLING_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/fling_test
 
 endif
 
@@ -3766,25 +3969,25 @@
 	$(E) "[CLEAN]   Cleaning fling_test files"
 	$(Q) $(RM) $(FLING_TEST_OBJS)
 	$(Q) $(RM) $(FLING_TEST_DEPS)
-	$(Q) $(RM) bins/fling_test
+	$(Q) $(RM) bins/$(TGTDIR)/fling_test
 
 
 ECHO_SERVER_SRC = \
     test/core/echo/server.c \
 
-ECHO_SERVER_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ECHO_SERVER_SRC))))
-ECHO_SERVER_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ECHO_SERVER_SRC))))
+ECHO_SERVER_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ECHO_SERVER_SRC))))
+ECHO_SERVER_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ECHO_SERVER_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/echo_server: openssl_dep_error
+bins/$(TGTDIR)/echo_server: openssl_dep_error
 
 else
 
-bins/echo_server: $(ECHO_SERVER_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/echo_server: $(ECHO_SERVER_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ECHO_SERVER_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/echo_server
+	$(Q) $(LD) $(LDFLAGS) $(ECHO_SERVER_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/echo_server
 
 endif
 
@@ -3800,25 +4003,25 @@
 	$(E) "[CLEAN]   Cleaning echo_server files"
 	$(Q) $(RM) $(ECHO_SERVER_OBJS)
 	$(Q) $(RM) $(ECHO_SERVER_DEPS)
-	$(Q) $(RM) bins/echo_server
+	$(Q) $(RM) bins/$(TGTDIR)/echo_server
 
 
 ECHO_CLIENT_SRC = \
     test/core/echo/client.c \
 
-ECHO_CLIENT_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ECHO_CLIENT_SRC))))
-ECHO_CLIENT_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ECHO_CLIENT_SRC))))
+ECHO_CLIENT_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ECHO_CLIENT_SRC))))
+ECHO_CLIENT_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ECHO_CLIENT_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/echo_client: openssl_dep_error
+bins/$(TGTDIR)/echo_client: openssl_dep_error
 
 else
 
-bins/echo_client: $(ECHO_CLIENT_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/echo_client: $(ECHO_CLIENT_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ECHO_CLIENT_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/echo_client
+	$(Q) $(LD) $(LDFLAGS) $(ECHO_CLIENT_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/echo_client
 
 endif
 
@@ -3834,25 +4037,25 @@
 	$(E) "[CLEAN]   Cleaning echo_client files"
 	$(Q) $(RM) $(ECHO_CLIENT_OBJS)
 	$(Q) $(RM) $(ECHO_CLIENT_DEPS)
-	$(Q) $(RM) bins/echo_client
+	$(Q) $(RM) bins/$(TGTDIR)/echo_client
 
 
 ECHO_TEST_SRC = \
     test/core/echo/echo_test.c \
 
-ECHO_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ECHO_TEST_SRC))))
-ECHO_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ECHO_TEST_SRC))))
+ECHO_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ECHO_TEST_SRC))))
+ECHO_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ECHO_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/echo_test: openssl_dep_error
+bins/$(TGTDIR)/echo_test: openssl_dep_error
 
 else
 
-bins/echo_test: $(ECHO_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/echo_test: $(ECHO_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ECHO_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/echo_test
+	$(Q) $(LD) $(LDFLAGS) $(ECHO_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/echo_test
 
 endif
 
@@ -3868,25 +4071,25 @@
 	$(E) "[CLEAN]   Cleaning echo_test files"
 	$(Q) $(RM) $(ECHO_TEST_OBJS)
 	$(Q) $(RM) $(ECHO_TEST_DEPS)
-	$(Q) $(RM) bins/echo_test
+	$(Q) $(RM) bins/$(TGTDIR)/echo_test
 
 
 LOW_LEVEL_PING_PONG_BENCHMARK_SRC = \
     test/core/network_benchmarks/low_level_ping_pong.c \
 
-LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC))))
-LOW_LEVEL_PING_PONG_BENCHMARK_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC))))
+LOW_LEVEL_PING_PONG_BENCHMARK_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC))))
+LOW_LEVEL_PING_PONG_BENCHMARK_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LOW_LEVEL_PING_PONG_BENCHMARK_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/low_level_ping_pong_benchmark: openssl_dep_error
+bins/$(TGTDIR)/low_level_ping_pong_benchmark: openssl_dep_error
 
 else
 
-bins/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/low_level_ping_pong_benchmark: $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/low_level_ping_pong_benchmark
+	$(Q) $(LD) $(LDFLAGS) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/low_level_ping_pong_benchmark
 
 endif
 
@@ -3902,25 +4105,25 @@
 	$(E) "[CLEAN]   Cleaning low_level_ping_pong_benchmark files"
 	$(Q) $(RM) $(LOW_LEVEL_PING_PONG_BENCHMARK_OBJS)
 	$(Q) $(RM) $(LOW_LEVEL_PING_PONG_BENCHMARK_DEPS)
-	$(Q) $(RM) bins/low_level_ping_pong_benchmark
+	$(Q) $(RM) bins/$(TGTDIR)/low_level_ping_pong_benchmark
 
 
 MESSAGE_COMPRESS_TEST_SRC = \
     test/core/compression/message_compress_test.c \
 
-MESSAGE_COMPRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC))))
-MESSAGE_COMPRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(MESSAGE_COMPRESS_TEST_SRC))))
+MESSAGE_COMPRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(MESSAGE_COMPRESS_TEST_SRC))))
+MESSAGE_COMPRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(MESSAGE_COMPRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/message_compress_test: openssl_dep_error
+bins/$(TGTDIR)/message_compress_test: openssl_dep_error
 
 else
 
-bins/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/message_compress_test: $(MESSAGE_COMPRESS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/message_compress_test
+	$(Q) $(LD) $(LDFLAGS) $(MESSAGE_COMPRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/message_compress_test
 
 endif
 
@@ -3936,25 +4139,25 @@
 	$(E) "[CLEAN]   Cleaning message_compress_test files"
 	$(Q) $(RM) $(MESSAGE_COMPRESS_TEST_OBJS)
 	$(Q) $(RM) $(MESSAGE_COMPRESS_TEST_DEPS)
-	$(Q) $(RM) bins/message_compress_test
+	$(Q) $(RM) bins/$(TGTDIR)/message_compress_test
 
 
 BIN_ENCODER_TEST_SRC = \
     test/core/transport/chttp2/bin_encoder_test.c \
 
-BIN_ENCODER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC))))
-BIN_ENCODER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(BIN_ENCODER_TEST_SRC))))
+BIN_ENCODER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(BIN_ENCODER_TEST_SRC))))
+BIN_ENCODER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(BIN_ENCODER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/bin_encoder_test: openssl_dep_error
+bins/$(TGTDIR)/bin_encoder_test: openssl_dep_error
 
 else
 
-bins/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/bin_encoder_test: $(BIN_ENCODER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/bin_encoder_test
+	$(Q) $(LD) $(LDFLAGS) $(BIN_ENCODER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/bin_encoder_test
 
 endif
 
@@ -3970,25 +4173,25 @@
 	$(E) "[CLEAN]   Cleaning bin_encoder_test files"
 	$(Q) $(RM) $(BIN_ENCODER_TEST_OBJS)
 	$(Q) $(RM) $(BIN_ENCODER_TEST_DEPS)
-	$(Q) $(RM) bins/bin_encoder_test
+	$(Q) $(RM) bins/$(TGTDIR)/bin_encoder_test
 
 
 SECURE_ENDPOINT_TEST_SRC = \
     test/core/security/secure_endpoint_test.c \
 
-SECURE_ENDPOINT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC))))
-SECURE_ENDPOINT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(SECURE_ENDPOINT_TEST_SRC))))
+SECURE_ENDPOINT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(SECURE_ENDPOINT_TEST_SRC))))
+SECURE_ENDPOINT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(SECURE_ENDPOINT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/secure_endpoint_test: openssl_dep_error
+bins/$(TGTDIR)/secure_endpoint_test: openssl_dep_error
 
 else
 
-bins/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/secure_endpoint_test: $(SECURE_ENDPOINT_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/secure_endpoint_test
+	$(Q) $(LD) $(LDFLAGS) $(SECURE_ENDPOINT_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/secure_endpoint_test
 
 endif
 
@@ -4004,25 +4207,25 @@
 	$(E) "[CLEAN]   Cleaning secure_endpoint_test files"
 	$(Q) $(RM) $(SECURE_ENDPOINT_TEST_OBJS)
 	$(Q) $(RM) $(SECURE_ENDPOINT_TEST_DEPS)
-	$(Q) $(RM) bins/secure_endpoint_test
+	$(Q) $(RM) bins/$(TGTDIR)/secure_endpoint_test
 
 
 HTTPCLI_FORMAT_REQUEST_TEST_SRC = \
     test/core/httpcli/format_request_test.c \
 
-HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC))))
-HTTPCLI_FORMAT_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC))))
+HTTPCLI_FORMAT_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC))))
+HTTPCLI_FORMAT_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(HTTPCLI_FORMAT_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/httpcli_format_request_test: openssl_dep_error
+bins/$(TGTDIR)/httpcli_format_request_test: openssl_dep_error
 
 else
 
-bins/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/httpcli_format_request_test: $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/httpcli_format_request_test
+	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/httpcli_format_request_test
 
 endif
 
@@ -4038,25 +4241,25 @@
 	$(E) "[CLEAN]   Cleaning httpcli_format_request_test files"
 	$(Q) $(RM) $(HTTPCLI_FORMAT_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(HTTPCLI_FORMAT_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/httpcli_format_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/httpcli_format_request_test
 
 
 HTTPCLI_PARSER_TEST_SRC = \
     test/core/httpcli/parser_test.c \
 
-HTTPCLI_PARSER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(HTTPCLI_PARSER_TEST_SRC))))
-HTTPCLI_PARSER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(HTTPCLI_PARSER_TEST_SRC))))
+HTTPCLI_PARSER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(HTTPCLI_PARSER_TEST_SRC))))
+HTTPCLI_PARSER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(HTTPCLI_PARSER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/httpcli_parser_test: openssl_dep_error
+bins/$(TGTDIR)/httpcli_parser_test: openssl_dep_error
 
 else
 
-bins/httpcli_parser_test: $(HTTPCLI_PARSER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/httpcli_parser_test: $(HTTPCLI_PARSER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_PARSER_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/httpcli_parser_test
+	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_PARSER_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/httpcli_parser_test
 
 endif
 
@@ -4072,25 +4275,25 @@
 	$(E) "[CLEAN]   Cleaning httpcli_parser_test files"
 	$(Q) $(RM) $(HTTPCLI_PARSER_TEST_OBJS)
 	$(Q) $(RM) $(HTTPCLI_PARSER_TEST_DEPS)
-	$(Q) $(RM) bins/httpcli_parser_test
+	$(Q) $(RM) bins/$(TGTDIR)/httpcli_parser_test
 
 
 HTTPCLI_TEST_SRC = \
     test/core/httpcli/httpcli_test.c \
 
-HTTPCLI_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC))))
-HTTPCLI_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(HTTPCLI_TEST_SRC))))
+HTTPCLI_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(HTTPCLI_TEST_SRC))))
+HTTPCLI_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(HTTPCLI_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/httpcli_test: openssl_dep_error
+bins/$(TGTDIR)/httpcli_test: openssl_dep_error
 
 else
 
-bins/httpcli_test: $(HTTPCLI_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/httpcli_test: $(HTTPCLI_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/httpcli_test
+	$(Q) $(LD) $(LDFLAGS) $(HTTPCLI_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/httpcli_test
 
 endif
 
@@ -4106,25 +4309,25 @@
 	$(E) "[CLEAN]   Cleaning httpcli_test files"
 	$(Q) $(RM) $(HTTPCLI_TEST_OBJS)
 	$(Q) $(RM) $(HTTPCLI_TEST_DEPS)
-	$(Q) $(RM) bins/httpcli_test
+	$(Q) $(RM) bins/$(TGTDIR)/httpcli_test
 
 
 GRPC_CREDENTIALS_TEST_SRC = \
     test/core/security/credentials_test.c \
 
-GRPC_CREDENTIALS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC))))
-GRPC_CREDENTIALS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_CREDENTIALS_TEST_SRC))))
+GRPC_CREDENTIALS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_CREDENTIALS_TEST_SRC))))
+GRPC_CREDENTIALS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_CREDENTIALS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_credentials_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_credentials_test: openssl_dep_error
 
 else
 
-bins/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_credentials_test: $(GRPC_CREDENTIALS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_credentials_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_CREDENTIALS_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_credentials_test
 
 endif
 
@@ -4140,25 +4343,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_credentials_test files"
 	$(Q) $(RM) $(GRPC_CREDENTIALS_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_CREDENTIALS_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_credentials_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_credentials_test
 
 
 GRPC_FETCH_OAUTH2_SRC = \
     test/core/security/fetch_oauth2.c \
 
-GRPC_FETCH_OAUTH2_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC))))
-GRPC_FETCH_OAUTH2_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_FETCH_OAUTH2_SRC))))
+GRPC_FETCH_OAUTH2_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_FETCH_OAUTH2_SRC))))
+GRPC_FETCH_OAUTH2_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_FETCH_OAUTH2_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_fetch_oauth2: openssl_dep_error
+bins/$(TGTDIR)/grpc_fetch_oauth2: openssl_dep_error
 
 else
 
-bins/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_fetch_oauth2: $(GRPC_FETCH_OAUTH2_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_fetch_oauth2
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_FETCH_OAUTH2_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_fetch_oauth2
 
 endif
 
@@ -4174,25 +4377,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_fetch_oauth2 files"
 	$(Q) $(RM) $(GRPC_FETCH_OAUTH2_OBJS)
 	$(Q) $(RM) $(GRPC_FETCH_OAUTH2_DEPS)
-	$(Q) $(RM) bins/grpc_fetch_oauth2
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_fetch_oauth2
 
 
 GRPC_BASE64_TEST_SRC = \
     test/core/security/base64_test.c \
 
-GRPC_BASE64_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_BASE64_TEST_SRC))))
-GRPC_BASE64_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_BASE64_TEST_SRC))))
+GRPC_BASE64_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_BASE64_TEST_SRC))))
+GRPC_BASE64_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_BASE64_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_base64_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_base64_test: openssl_dep_error
 
 else
 
-bins/grpc_base64_test: $(GRPC_BASE64_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_base64_test: $(GRPC_BASE64_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_BASE64_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_base64_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_BASE64_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_base64_test
 
 endif
 
@@ -4208,25 +4411,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_base64_test files"
 	$(Q) $(RM) $(GRPC_BASE64_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_BASE64_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_base64_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_base64_test
 
 
 GRPC_JSON_TOKEN_TEST_SRC = \
     test/core/security/json_token_test.c \
 
-GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC))))
-GRPC_JSON_TOKEN_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(GRPC_JSON_TOKEN_TEST_SRC))))
+GRPC_JSON_TOKEN_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(GRPC_JSON_TOKEN_TEST_SRC))))
+GRPC_JSON_TOKEN_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(GRPC_JSON_TOKEN_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/grpc_json_token_test: openssl_dep_error
+bins/$(TGTDIR)/grpc_json_token_test: openssl_dep_error
 
 else
 
-bins/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/grpc_json_token_test: $(GRPC_JSON_TOKEN_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/grpc_json_token_test
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_JSON_TOKEN_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/grpc_json_token_test
 
 endif
 
@@ -4242,25 +4445,25 @@
 	$(E) "[CLEAN]   Cleaning grpc_json_token_test files"
 	$(Q) $(RM) $(GRPC_JSON_TOKEN_TEST_OBJS)
 	$(Q) $(RM) $(GRPC_JSON_TOKEN_TEST_DEPS)
-	$(Q) $(RM) bins/grpc_json_token_test
+	$(Q) $(RM) bins/$(TGTDIR)/grpc_json_token_test
 
 
 TIMEOUT_ENCODING_TEST_SRC = \
     test/core/transport/chttp2/timeout_encoding_test.c \
 
-TIMEOUT_ENCODING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC))))
-TIMEOUT_ENCODING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TIMEOUT_ENCODING_TEST_SRC))))
+TIMEOUT_ENCODING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TIMEOUT_ENCODING_TEST_SRC))))
+TIMEOUT_ENCODING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TIMEOUT_ENCODING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/timeout_encoding_test: openssl_dep_error
+bins/$(TGTDIR)/timeout_encoding_test: openssl_dep_error
 
 else
 
-bins/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/timeout_encoding_test: $(TIMEOUT_ENCODING_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/timeout_encoding_test
+	$(Q) $(LD) $(LDFLAGS) $(TIMEOUT_ENCODING_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/timeout_encoding_test
 
 endif
 
@@ -4276,25 +4479,25 @@
 	$(E) "[CLEAN]   Cleaning timeout_encoding_test files"
 	$(Q) $(RM) $(TIMEOUT_ENCODING_TEST_OBJS)
 	$(Q) $(RM) $(TIMEOUT_ENCODING_TEST_DEPS)
-	$(Q) $(RM) bins/timeout_encoding_test
+	$(Q) $(RM) bins/$(TGTDIR)/timeout_encoding_test
 
 
 FD_POSIX_TEST_SRC = \
     test/core/iomgr/fd_posix_test.c \
 
-FD_POSIX_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC))))
-FD_POSIX_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(FD_POSIX_TEST_SRC))))
+FD_POSIX_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(FD_POSIX_TEST_SRC))))
+FD_POSIX_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(FD_POSIX_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/fd_posix_test: openssl_dep_error
+bins/$(TGTDIR)/fd_posix_test: openssl_dep_error
 
 else
 
-bins/fd_posix_test: $(FD_POSIX_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/fd_posix_test: $(FD_POSIX_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/fd_posix_test
+	$(Q) $(LD) $(LDFLAGS) $(FD_POSIX_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/fd_posix_test
 
 endif
 
@@ -4310,25 +4513,25 @@
 	$(E) "[CLEAN]   Cleaning fd_posix_test files"
 	$(Q) $(RM) $(FD_POSIX_TEST_OBJS)
 	$(Q) $(RM) $(FD_POSIX_TEST_DEPS)
-	$(Q) $(RM) bins/fd_posix_test
+	$(Q) $(RM) bins/$(TGTDIR)/fd_posix_test
 
 
 FLING_STREAM_TEST_SRC = \
     test/core/fling/fling_stream_test.c \
 
-FLING_STREAM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC))))
-FLING_STREAM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(FLING_STREAM_TEST_SRC))))
+FLING_STREAM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(FLING_STREAM_TEST_SRC))))
+FLING_STREAM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(FLING_STREAM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/fling_stream_test: openssl_dep_error
+bins/$(TGTDIR)/fling_stream_test: openssl_dep_error
 
 else
 
-bins/fling_stream_test: $(FLING_STREAM_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/fling_stream_test: $(FLING_STREAM_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/fling_stream_test
+	$(Q) $(LD) $(LDFLAGS) $(FLING_STREAM_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/fling_stream_test
 
 endif
 
@@ -4344,25 +4547,25 @@
 	$(E) "[CLEAN]   Cleaning fling_stream_test files"
 	$(Q) $(RM) $(FLING_STREAM_TEST_OBJS)
 	$(Q) $(RM) $(FLING_STREAM_TEST_DEPS)
-	$(Q) $(RM) bins/fling_stream_test
+	$(Q) $(RM) bins/$(TGTDIR)/fling_stream_test
 
 
 LAME_CLIENT_TEST_SRC = \
     test/core/surface/lame_client_test.c \
 
-LAME_CLIENT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC))))
-LAME_CLIENT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(LAME_CLIENT_TEST_SRC))))
+LAME_CLIENT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(LAME_CLIENT_TEST_SRC))))
+LAME_CLIENT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(LAME_CLIENT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/lame_client_test: openssl_dep_error
+bins/$(TGTDIR)/lame_client_test: openssl_dep_error
 
 else
 
-bins/lame_client_test: $(LAME_CLIENT_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/lame_client_test: $(LAME_CLIENT_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/lame_client_test
+	$(Q) $(LD) $(LDFLAGS) $(LAME_CLIENT_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/lame_client_test
 
 endif
 
@@ -4378,25 +4581,25 @@
 	$(E) "[CLEAN]   Cleaning lame_client_test files"
 	$(Q) $(RM) $(LAME_CLIENT_TEST_OBJS)
 	$(Q) $(RM) $(LAME_CLIENT_TEST_DEPS)
-	$(Q) $(RM) bins/lame_client_test
+	$(Q) $(RM) bins/$(TGTDIR)/lame_client_test
 
 
 THREAD_POOL_TEST_SRC = \
     test/cpp/server/thread_pool_test.cc \
 
-THREAD_POOL_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(THREAD_POOL_TEST_SRC))))
-THREAD_POOL_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(THREAD_POOL_TEST_SRC))))
+THREAD_POOL_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(THREAD_POOL_TEST_SRC))))
+THREAD_POOL_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(THREAD_POOL_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/thread_pool_test: openssl_dep_error
+bins/$(TGTDIR)/thread_pool_test: openssl_dep_error
 
 else
 
-bins/thread_pool_test: $(THREAD_POOL_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/thread_pool_test: $(THREAD_POOL_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(THREAD_POOL_TEST_OBJS) $(GTEST_LIB) -Llibs -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/thread_pool_test
+	$(Q) $(LDXX) $(LDFLAGS) $(THREAD_POOL_TEST_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/thread_pool_test
 
 endif
 
@@ -4412,25 +4615,25 @@
 	$(E) "[CLEAN]   Cleaning thread_pool_test files"
 	$(Q) $(RM) $(THREAD_POOL_TEST_OBJS)
 	$(Q) $(RM) $(THREAD_POOL_TEST_DEPS)
-	$(Q) $(RM) bins/thread_pool_test
+	$(Q) $(RM) bins/$(TGTDIR)/thread_pool_test
 
 
 STATUS_TEST_SRC = \
     test/cpp/util/status_test.cc \
 
-STATUS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC))))
-STATUS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(STATUS_TEST_SRC))))
+STATUS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(STATUS_TEST_SRC))))
+STATUS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(STATUS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/status_test: openssl_dep_error
+bins/$(TGTDIR)/status_test: openssl_dep_error
 
 else
 
-bins/status_test: $(STATUS_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/status_test: $(STATUS_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(GTEST_LIB) -Llibs -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/status_test
+	$(Q) $(LDXX) $(LDFLAGS) $(STATUS_TEST_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/status_test
 
 endif
 
@@ -4446,25 +4649,25 @@
 	$(E) "[CLEAN]   Cleaning status_test files"
 	$(Q) $(RM) $(STATUS_TEST_OBJS)
 	$(Q) $(RM) $(STATUS_TEST_DEPS)
-	$(Q) $(RM) bins/status_test
+	$(Q) $(RM) bins/$(TGTDIR)/status_test
 
 
 SYNC_CLIENT_ASYNC_SERVER_TEST_SRC = \
     test/cpp/end2end/sync_client_async_server_test.cc \
 
-SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(SYNC_CLIENT_ASYNC_SERVER_TEST_SRC))))
-SYNC_CLIENT_ASYNC_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(SYNC_CLIENT_ASYNC_SERVER_TEST_SRC))))
+SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(SYNC_CLIENT_ASYNC_SERVER_TEST_SRC))))
+SYNC_CLIENT_ASYNC_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(SYNC_CLIENT_ASYNC_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/sync_client_async_server_test: openssl_dep_error
+bins/$(TGTDIR)/sync_client_async_server_test: openssl_dep_error
 
 else
 
-bins/sync_client_async_server_test: $(SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/sync_client_async_server_test: $(SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS) $(GTEST_LIB) -Llibs -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/sync_client_async_server_test
+	$(Q) $(LDXX) $(LDFLAGS) $(SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/sync_client_async_server_test
 
 endif
 
@@ -4480,7 +4683,7 @@
 	$(E) "[CLEAN]   Cleaning sync_client_async_server_test files"
 	$(Q) $(RM) $(SYNC_CLIENT_ASYNC_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(SYNC_CLIENT_ASYNC_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/sync_client_async_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/sync_client_async_server_test
 
 
 QPS_CLIENT_SRC = \
@@ -4489,19 +4692,19 @@
     gens/test/cpp/interop/test.pb.cc \
     test/cpp/qps/client.cc \
 
-QPS_CLIENT_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(QPS_CLIENT_SRC))))
-QPS_CLIENT_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(QPS_CLIENT_SRC))))
+QPS_CLIENT_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(QPS_CLIENT_SRC))))
+QPS_CLIENT_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(QPS_CLIENT_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/qps_client: openssl_dep_error
+bins/$(TGTDIR)/qps_client: openssl_dep_error
 
 else
 
-bins/qps_client: $(QPS_CLIENT_OBJS) libs/libgrpc++_test_util.a libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/qps_client: $(QPS_CLIENT_OBJS) libs/$(TGTDIR)/libgrpc++_test_util.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(QPS_CLIENT_OBJS) $(GTEST_LIB) -Llibs -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/qps_client
+	$(Q) $(LDXX) $(LDFLAGS) $(QPS_CLIENT_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/qps_client
 
 endif
 
@@ -4517,7 +4720,7 @@
 	$(E) "[CLEAN]   Cleaning qps_client files"
 	$(Q) $(RM) $(QPS_CLIENT_OBJS)
 	$(Q) $(RM) $(QPS_CLIENT_DEPS)
-	$(Q) $(RM) bins/qps_client
+	$(Q) $(RM) bins/$(TGTDIR)/qps_client
 
 
 QPS_SERVER_SRC = \
@@ -4526,19 +4729,19 @@
     gens/test/cpp/interop/test.pb.cc \
     test/cpp/qps/server.cc \
 
-QPS_SERVER_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(QPS_SERVER_SRC))))
-QPS_SERVER_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(QPS_SERVER_SRC))))
+QPS_SERVER_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(QPS_SERVER_SRC))))
+QPS_SERVER_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(QPS_SERVER_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/qps_server: openssl_dep_error
+bins/$(TGTDIR)/qps_server: openssl_dep_error
 
 else
 
-bins/qps_server: $(QPS_SERVER_OBJS) libs/libgrpc++_test_util.a libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/qps_server: $(QPS_SERVER_OBJS) libs/$(TGTDIR)/libgrpc++_test_util.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(QPS_SERVER_OBJS) $(GTEST_LIB) -Llibs -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/qps_server
+	$(Q) $(LDXX) $(LDFLAGS) $(QPS_SERVER_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/qps_server
 
 endif
 
@@ -4554,7 +4757,7 @@
 	$(E) "[CLEAN]   Cleaning qps_server files"
 	$(Q) $(RM) $(QPS_SERVER_OBJS)
 	$(Q) $(RM) $(QPS_SERVER_DEPS)
-	$(Q) $(RM) bins/qps_server
+	$(Q) $(RM) bins/$(TGTDIR)/qps_server
 
 
 INTEROP_SERVER_SRC = \
@@ -4563,19 +4766,19 @@
     gens/test/cpp/interop/test.pb.cc \
     test/cpp/interop/server.cc \
 
-INTEROP_SERVER_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(INTEROP_SERVER_SRC))))
-INTEROP_SERVER_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(INTEROP_SERVER_SRC))))
+INTEROP_SERVER_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(INTEROP_SERVER_SRC))))
+INTEROP_SERVER_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(INTEROP_SERVER_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/interop_server: openssl_dep_error
+bins/$(TGTDIR)/interop_server: openssl_dep_error
 
 else
 
-bins/interop_server: $(INTEROP_SERVER_OBJS) libs/libgrpc++_test_util.a libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/interop_server: $(INTEROP_SERVER_OBJS) libs/$(TGTDIR)/libgrpc++_test_util.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(INTEROP_SERVER_OBJS) $(GTEST_LIB) -Llibs -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/interop_server
+	$(Q) $(LDXX) $(LDFLAGS) $(INTEROP_SERVER_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/interop_server
 
 endif
 
@@ -4591,7 +4794,7 @@
 	$(E) "[CLEAN]   Cleaning interop_server files"
 	$(Q) $(RM) $(INTEROP_SERVER_OBJS)
 	$(Q) $(RM) $(INTEROP_SERVER_DEPS)
-	$(Q) $(RM) bins/interop_server
+	$(Q) $(RM) bins/$(TGTDIR)/interop_server
 
 
 INTEROP_CLIENT_SRC = \
@@ -4600,19 +4803,19 @@
     gens/test/cpp/interop/test.pb.cc \
     test/cpp/interop/client.cc \
 
-INTEROP_CLIENT_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(INTEROP_CLIENT_SRC))))
-INTEROP_CLIENT_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(INTEROP_CLIENT_SRC))))
+INTEROP_CLIENT_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(INTEROP_CLIENT_SRC))))
+INTEROP_CLIENT_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(INTEROP_CLIENT_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/interop_client: openssl_dep_error
+bins/$(TGTDIR)/interop_client: openssl_dep_error
 
 else
 
-bins/interop_client: $(INTEROP_CLIENT_OBJS) libs/libgrpc++_test_util.a libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/interop_client: $(INTEROP_CLIENT_OBJS) libs/$(TGTDIR)/libgrpc++_test_util.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(INTEROP_CLIENT_OBJS) $(GTEST_LIB) -Llibs -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/interop_client
+	$(Q) $(LDXX) $(LDFLAGS) $(INTEROP_CLIENT_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc++_test_util -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/interop_client
 
 endif
 
@@ -4628,25 +4831,25 @@
 	$(E) "[CLEAN]   Cleaning interop_client files"
 	$(Q) $(RM) $(INTEROP_CLIENT_OBJS)
 	$(Q) $(RM) $(INTEROP_CLIENT_DEPS)
-	$(Q) $(RM) bins/interop_client
+	$(Q) $(RM) bins/$(TGTDIR)/interop_client
 
 
 END2END_TEST_SRC = \
     test/cpp/end2end/end2end_test.cc \
 
-END2END_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(END2END_TEST_SRC))))
-END2END_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(END2END_TEST_SRC))))
+END2END_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(END2END_TEST_SRC))))
+END2END_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(END2END_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/end2end_test: openssl_dep_error
+bins/$(TGTDIR)/end2end_test: openssl_dep_error
 
 else
 
-bins/end2end_test: $(END2END_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc++.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/end2end_test: $(END2END_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(GTEST_LIB) -Llibs -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/end2end_test
+	$(Q) $(LDXX) $(LDFLAGS) $(END2END_TEST_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc++ -lgrpc -lgpr $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/end2end_test
 
 endif
 
@@ -4662,25 +4865,25 @@
 	$(E) "[CLEAN]   Cleaning end2end_test files"
 	$(Q) $(RM) $(END2END_TEST_OBJS)
 	$(Q) $(RM) $(END2END_TEST_DEPS)
-	$(Q) $(RM) bins/end2end_test
+	$(Q) $(RM) bins/$(TGTDIR)/end2end_test
 
 
 CHANNEL_ARGUMENTS_TEST_SRC = \
     test/cpp/client/channel_arguments_test.cc \
 
-CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC))))
-CHANNEL_ARGUMENTS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC))))
+CHANNEL_ARGUMENTS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC))))
+CHANNEL_ARGUMENTS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHANNEL_ARGUMENTS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/channel_arguments_test: openssl_dep_error
+bins/$(TGTDIR)/channel_arguments_test: openssl_dep_error
 
 else
 
-bins/channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS) libs/libgrpc++.a libs/libgrpc.a
+bins/$(TGTDIR)/channel_arguments_test: $(CHANNEL_ARGUMENTS_TEST_OBJS) libs/$(TGTDIR)/libgrpc++.a libs/$(TGTDIR)/libgrpc.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(GTEST_LIB) -Llibs -lgrpc++ -lgrpc $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/channel_arguments_test
+	$(Q) $(LDXX) $(LDFLAGS) $(CHANNEL_ARGUMENTS_TEST_OBJS) $(GTEST_LIB) -Llibs/$(TGTDIR) -lgrpc++ -lgrpc $(LDLIBSXX) $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/channel_arguments_test
 
 endif
 
@@ -4696,25 +4899,25 @@
 	$(E) "[CLEAN]   Cleaning channel_arguments_test files"
 	$(Q) $(RM) $(CHANNEL_ARGUMENTS_TEST_OBJS)
 	$(Q) $(RM) $(CHANNEL_ARGUMENTS_TEST_DEPS)
-	$(Q) $(RM) bins/channel_arguments_test
+	$(Q) $(RM) bins/$(TGTDIR)/channel_arguments_test
 
 
 ALARM_TEST_SRC = \
     test/core/iomgr/alarm_test.c \
 
-ALARM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC))))
-ALARM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ALARM_TEST_SRC))))
+ALARM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC))))
+ALARM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ALARM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/alarm_test: openssl_dep_error
+bins/$(TGTDIR)/alarm_test: openssl_dep_error
 
 else
 
-bins/alarm_test: $(ALARM_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/alarm_test: $(ALARM_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/alarm_test
+	$(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/alarm_test
 
 endif
 
@@ -4730,25 +4933,25 @@
 	$(E) "[CLEAN]   Cleaning alarm_test files"
 	$(Q) $(RM) $(ALARM_TEST_OBJS)
 	$(Q) $(RM) $(ALARM_TEST_DEPS)
-	$(Q) $(RM) bins/alarm_test
+	$(Q) $(RM) bins/$(TGTDIR)/alarm_test
 
 
 ALARM_LIST_TEST_SRC = \
     test/core/iomgr/alarm_list_test.c \
 
-ALARM_LIST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ALARM_LIST_TEST_SRC))))
-ALARM_LIST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ALARM_LIST_TEST_SRC))))
+ALARM_LIST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ALARM_LIST_TEST_SRC))))
+ALARM_LIST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ALARM_LIST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/alarm_list_test: openssl_dep_error
+bins/$(TGTDIR)/alarm_list_test: openssl_dep_error
 
 else
 
-bins/alarm_list_test: $(ALARM_LIST_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/alarm_list_test: $(ALARM_LIST_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ALARM_LIST_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/alarm_list_test
+	$(Q) $(LD) $(LDFLAGS) $(ALARM_LIST_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/alarm_list_test
 
 endif
 
@@ -4764,25 +4967,25 @@
 	$(E) "[CLEAN]   Cleaning alarm_list_test files"
 	$(Q) $(RM) $(ALARM_LIST_TEST_OBJS)
 	$(Q) $(RM) $(ALARM_LIST_TEST_DEPS)
-	$(Q) $(RM) bins/alarm_list_test
+	$(Q) $(RM) bins/$(TGTDIR)/alarm_list_test
 
 
 ALARM_HEAP_TEST_SRC = \
     test/core/iomgr/alarm_heap_test.c \
 
-ALARM_HEAP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(ALARM_HEAP_TEST_SRC))))
-ALARM_HEAP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(ALARM_HEAP_TEST_SRC))))
+ALARM_HEAP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(ALARM_HEAP_TEST_SRC))))
+ALARM_HEAP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(ALARM_HEAP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/alarm_heap_test: openssl_dep_error
+bins/$(TGTDIR)/alarm_heap_test: openssl_dep_error
 
 else
 
-bins/alarm_heap_test: $(ALARM_HEAP_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/alarm_heap_test: $(ALARM_HEAP_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(ALARM_HEAP_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/alarm_heap_test
+	$(Q) $(LD) $(LDFLAGS) $(ALARM_HEAP_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/alarm_heap_test
 
 endif
 
@@ -4798,25 +5001,25 @@
 	$(E) "[CLEAN]   Cleaning alarm_heap_test files"
 	$(Q) $(RM) $(ALARM_HEAP_TEST_OBJS)
 	$(Q) $(RM) $(ALARM_HEAP_TEST_DEPS)
-	$(Q) $(RM) bins/alarm_heap_test
+	$(Q) $(RM) bins/$(TGTDIR)/alarm_heap_test
 
 
 TIME_TEST_SRC = \
     test/core/support/time_test.c \
 
-TIME_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(TIME_TEST_SRC))))
-TIME_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(TIME_TEST_SRC))))
+TIME_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(TIME_TEST_SRC))))
+TIME_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(TIME_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/time_test: openssl_dep_error
+bins/$(TGTDIR)/time_test: openssl_dep_error
 
 else
 
-bins/time_test: $(TIME_TEST_OBJS) libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/time_test: $(TIME_TEST_OBJS) libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(TIME_TEST_OBJS) -Llibs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/time_test
+	$(Q) $(LD) $(LDFLAGS) $(TIME_TEST_OBJS) -Llibs/$(TGTDIR) -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/time_test
 
 endif
 
@@ -4832,24 +5035,24 @@
 	$(E) "[CLEAN]   Cleaning time_test files"
 	$(Q) $(RM) $(TIME_TEST_OBJS)
 	$(Q) $(RM) $(TIME_TEST_DEPS)
-	$(Q) $(RM) bins/time_test
+	$(Q) $(RM) bins/$(TGTDIR)/time_test
 
 
 CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_cancel_after_accept_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_cancel_after_accept_test: $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test: $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_cancel_after_accept_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test
 
 endif
 
@@ -4865,24 +5068,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_cancel_after_accept_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_cancel_after_accept_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_test
 
 
 CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_cancel_after_accept_and_writes_closed_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_cancel_after_accept_and_writes_closed_test: $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test: $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_cancel_after_accept_and_writes_closed_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test
 
 endif
 
@@ -4898,24 +5101,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_cancel_after_accept_and_writes_closed_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_cancel_after_accept_and_writes_closed_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test
 
 
 CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_cancel_after_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_cancel_after_invoke_test: $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test: $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_cancel_after_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test
 
 endif
 
@@ -4931,24 +5134,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_cancel_after_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_AFTER_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_cancel_after_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_cancel_after_invoke_test
 
 
 CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_cancel_before_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_cancel_before_invoke_test: $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test: $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_cancel_before_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test
 
 endif
 
@@ -4964,24 +5167,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_cancel_before_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_BEFORE_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_cancel_before_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_cancel_before_invoke_test
 
 
 CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_cancel_in_a_vacuum_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_cancel_in_a_vacuum_test: $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test: $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_cancel_in_a_vacuum_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test
 
 endif
 
@@ -4997,24 +5200,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_cancel_in_a_vacuum_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_CANCEL_IN_A_VACUUM_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_cancel_in_a_vacuum_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_cancel_in_a_vacuum_test
 
 
 CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_disappearing_server_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_disappearing_server_test: $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_disappearing_server.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test: $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_disappearing_server_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test
 
 endif
 
@@ -5030,24 +5233,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_disappearing_server_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_DISAPPEARING_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_disappearing_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_disappearing_server_test
 
 
 CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test
 
 endif
 
@@ -5063,24 +5266,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test
 
 
 CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_early_server_shutdown_finishes_tags_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_early_server_shutdown_finishes_tags_test: $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test: $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_early_server_shutdown_finishes_tags_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test
 
 endif
 
@@ -5096,24 +5299,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_early_server_shutdown_finishes_tags_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_early_server_shutdown_finishes_tags_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_early_server_shutdown_finishes_tags_test
 
 
 CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_invoke_large_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_invoke_large_request_test: $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_invoke_large_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test: $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_invoke_large_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test
 
 endif
 
@@ -5129,24 +5332,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_invoke_large_request_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_INVOKE_LARGE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_invoke_large_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_invoke_large_request_test
 
 
 CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_max_concurrent_streams_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_max_concurrent_streams_test: $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test: $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_max_concurrent_streams_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test
 
 endif
 
@@ -5162,24 +5365,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_max_concurrent_streams_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_MAX_CONCURRENT_STREAMS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_max_concurrent_streams_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_max_concurrent_streams_test
 
 
 CHTTP2_FAKE_SECURITY_NO_OP_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_NO_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_NO_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_no_op_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_no_op_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_no_op_test: $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_no_op.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_no_op_test: $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_no_op_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_no_op_test
 
 endif
 
@@ -5195,24 +5398,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_no_op_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_NO_OP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_no_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_no_op_test
 
 
 CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_ping_pong_streaming_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_ping_pong_streaming_test: $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test: $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_ping_pong_streaming_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test
 
 endif
 
@@ -5228,24 +5431,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_ping_pong_streaming_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_PING_PONG_STREAMING_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_ping_pong_streaming_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_ping_pong_streaming_test
 
 
 CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test
 
 endif
 
@@ -5261,24 +5464,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_request_response_with_binary_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test
 
 
 CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_request_response_with_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_request_response_with_metadata_and_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_request_response_with_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test
 
 endif
 
@@ -5294,24 +5497,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_request_response_with_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_request_response_with_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_request_response_with_metadata_and_payload_test
 
 
 CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_request_response_with_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_request_response_with_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_request_response_with_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test
 
 endif
 
@@ -5327,24 +5530,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_request_response_with_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_request_response_with_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_request_response_with_payload_test
 
 
 CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test
 
 endif
 
@@ -5360,24 +5563,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test
 
 
 CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_simple_delayed_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_simple_delayed_request_test: $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test: $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_simple_delayed_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test
 
 endif
 
@@ -5393,24 +5596,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_simple_delayed_request_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_SIMPLE_DELAYED_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_simple_delayed_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_simple_delayed_request_test
 
 
 CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_simple_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_simple_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_simple_request_test: $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_simple_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_simple_request_test: $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_simple_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_simple_request_test
 
 endif
 
@@ -5426,24 +5629,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_simple_request_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_SIMPLE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_simple_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_simple_request_test
 
 
 CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_thread_stress_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_thread_stress_test: $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_thread_stress.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test: $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_thread_stress_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test
 
 endif
 
@@ -5459,24 +5662,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_thread_stress_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_THREAD_STRESS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_thread_stress_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_thread_stress_test
 
 
 CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC = \
 
-CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
-CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fake_security_writes_done_hangs_with_pending_read_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test: openssl_dep_error
 
 else
 
-bins/chttp2_fake_security_writes_done_hangs_with_pending_read_test: $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/libend2end_fixture_chttp2_fake_security.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test: $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fake_security.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fake_security -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fake_security_writes_done_hangs_with_pending_read_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fake_security -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test
 
 endif
 
@@ -5492,24 +5695,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fake_security_writes_done_hangs_with_pending_read_test files"
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FAKE_SECURITY_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fake_security_writes_done_hangs_with_pending_read_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fake_security_writes_done_hangs_with_pending_read_test
 
 
 CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC = \
 
-CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
-CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_cancel_after_accept_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_cancel_after_accept_test: $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test: $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_cancel_after_accept_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test
 
 endif
 
@@ -5525,24 +5728,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_cancel_after_accept_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_cancel_after_accept_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_test
 
 
 CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC = \
 
-CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
-CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_cancel_after_accept_and_writes_closed_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_cancel_after_accept_and_writes_closed_test: $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test: $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_cancel_after_accept_and_writes_closed_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test
 
 endif
 
@@ -5558,24 +5761,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_cancel_after_accept_and_writes_closed_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_cancel_after_accept_and_writes_closed_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test
 
 
 CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC = \
 
-CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
-CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_cancel_after_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_cancel_after_invoke_test: $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test: $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_cancel_after_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test
 
 endif
 
@@ -5591,24 +5794,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_cancel_after_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_cancel_after_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_cancel_after_invoke_test
 
 
 CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC = \
 
-CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
-CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_cancel_before_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_cancel_before_invoke_test: $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test: $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_cancel_before_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test
 
 endif
 
@@ -5624,24 +5827,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_cancel_before_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_cancel_before_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_cancel_before_invoke_test
 
 
 CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC = \
 
-CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
-CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_cancel_in_a_vacuum_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_cancel_in_a_vacuum_test: $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test: $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_cancel_in_a_vacuum_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test
 
 endif
 
@@ -5657,24 +5860,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_cancel_in_a_vacuum_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_cancel_in_a_vacuum_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_cancel_in_a_vacuum_test
 
 
 CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC = \
 
-CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
-CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_disappearing_server_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_disappearing_server_test: $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_disappearing_server.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test: $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_disappearing_server_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test
 
 endif
 
@@ -5690,24 +5893,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_disappearing_server_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_disappearing_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_disappearing_server_test
 
 
 CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC = \
 
-CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
-CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test
 
 endif
 
@@ -5723,24 +5926,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test
 
 
 CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC = \
 
-CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
-CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_early_server_shutdown_finishes_tags_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_early_server_shutdown_finishes_tags_test: $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test: $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_early_server_shutdown_finishes_tags_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test
 
 endif
 
@@ -5756,24 +5959,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_early_server_shutdown_finishes_tags_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_early_server_shutdown_finishes_tags_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_early_server_shutdown_finishes_tags_test
 
 
 CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC = \
 
-CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
-CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_invoke_large_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_invoke_large_request_test: $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_invoke_large_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test: $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_invoke_large_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test
 
 endif
 
@@ -5789,24 +5992,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_invoke_large_request_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_invoke_large_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_invoke_large_request_test
 
 
 CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC = \
 
-CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
-CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_max_concurrent_streams_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_max_concurrent_streams_test: $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test: $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_max_concurrent_streams_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test
 
 endif
 
@@ -5822,24 +6025,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_max_concurrent_streams_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_max_concurrent_streams_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_max_concurrent_streams_test
 
 
 CHTTP2_FULLSTACK_NO_OP_TEST_SRC = \
 
-CHTTP2_FULLSTACK_NO_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_NO_OP_TEST_SRC))))
-CHTTP2_FULLSTACK_NO_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_NO_OP_TEST_SRC))))
+CHTTP2_FULLSTACK_NO_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_NO_OP_TEST_SRC))))
+CHTTP2_FULLSTACK_NO_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_NO_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_no_op_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_no_op_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_no_op_test: $(CHTTP2_FULLSTACK_NO_OP_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_no_op.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_no_op_test: $(CHTTP2_FULLSTACK_NO_OP_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_NO_OP_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_no_op_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_NO_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_no_op_test
 
 endif
 
@@ -5855,24 +6058,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_no_op_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_NO_OP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_NO_OP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_no_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_no_op_test
 
 
 CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC = \
 
-CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
-CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_ping_pong_streaming_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_ping_pong_streaming_test: $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test: $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_ping_pong_streaming_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test
 
 endif
 
@@ -5888,24 +6091,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_ping_pong_streaming_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_ping_pong_streaming_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_ping_pong_streaming_test
 
 
 CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test
 
 endif
 
@@ -5921,24 +6124,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_request_response_with_binary_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test
 
 
 CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_request_response_with_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_request_response_with_metadata_and_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_request_response_with_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test
 
 endif
 
@@ -5954,24 +6157,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_request_response_with_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_request_response_with_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_request_response_with_metadata_and_payload_test
 
 
 CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_request_response_with_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_request_response_with_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_request_response_with_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test
 
 endif
 
@@ -5987,24 +6190,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_request_response_with_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_request_response_with_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_request_response_with_payload_test
 
 
 CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test
 
 endif
 
@@ -6020,24 +6223,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test
 
 
 CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC = \
 
-CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
-CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_simple_delayed_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_simple_delayed_request_test: $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test: $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_simple_delayed_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test
 
 endif
 
@@ -6053,24 +6256,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_simple_delayed_request_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_simple_delayed_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_simple_delayed_request_test
 
 
 CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC = \
 
-CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
-CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_simple_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_simple_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_simple_request_test: $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_simple_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_simple_request_test: $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_simple_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_simple_request_test
 
 endif
 
@@ -6086,24 +6289,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_simple_request_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_simple_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_simple_request_test
 
 
 CHTTP2_FULLSTACK_THREAD_STRESS_TEST_SRC = \
 
-CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
-CHTTP2_FULLSTACK_THREAD_STRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
+CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
+CHTTP2_FULLSTACK_THREAD_STRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_thread_stress_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_thread_stress_test: $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_thread_stress.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test: $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_thread_stress_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test
 
 endif
 
@@ -6119,24 +6322,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_thread_stress_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_THREAD_STRESS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_thread_stress_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_thread_stress_test
 
 
 CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC = \
 
-CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
-CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_fullstack_writes_done_hangs_with_pending_read_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test: openssl_dep_error
 
 else
 
-bins/chttp2_fullstack_writes_done_hangs_with_pending_read_test: $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/libend2end_fixture_chttp2_fullstack.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test: $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_fullstack.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_fullstack -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_fullstack_writes_done_hangs_with_pending_read_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_fullstack -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test
 
 endif
 
@@ -6152,24 +6355,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_fullstack_writes_done_hangs_with_pending_read_test files"
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_fullstack_writes_done_hangs_with_pending_read_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_fullstack_writes_done_hangs_with_pending_read_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_cancel_after_accept_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_cancel_after_accept_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_cancel_after_accept_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test
 
 endif
 
@@ -6185,24 +6388,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_cancel_after_accept_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_cancel_after_accept_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test
 
 endif
 
@@ -6218,24 +6421,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_cancel_after_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_cancel_after_invoke_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_cancel_after_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test
 
 endif
 
@@ -6251,24 +6454,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_cancel_after_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_cancel_after_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_cancel_before_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_cancel_before_invoke_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_cancel_before_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test
 
 endif
 
@@ -6284,24 +6487,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_cancel_before_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_cancel_before_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test
 
 endif
 
@@ -6317,24 +6520,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_disappearing_server_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_disappearing_server_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_disappearing_server.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_disappearing_server_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test
 
 endif
 
@@ -6350,24 +6553,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_disappearing_server_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_disappearing_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_disappearing_server_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test
 
 endif
 
@@ -6383,24 +6586,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test
 
 endif
 
@@ -6416,24 +6619,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_invoke_large_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_invoke_large_request_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_invoke_large_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_invoke_large_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test
 
 endif
 
@@ -6449,24 +6652,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_invoke_large_request_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_invoke_large_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_invoke_large_request_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_max_concurrent_streams_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_max_concurrent_streams_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_max_concurrent_streams_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test
 
 endif
 
@@ -6482,24 +6685,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_max_concurrent_streams_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_max_concurrent_streams_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_no_op_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_no_op_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_no_op.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_no_op_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test
 
 endif
 
@@ -6515,24 +6718,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_no_op_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_NO_OP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_no_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_no_op_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_ping_pong_streaming_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_ping_pong_streaming_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_ping_pong_streaming_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test
 
 endif
 
@@ -6548,24 +6751,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_ping_pong_streaming_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_ping_pong_streaming_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test
 
 endif
 
@@ -6581,24 +6784,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test
 
 endif
 
@@ -6614,24 +6817,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_request_response_with_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test
 
 endif
 
@@ -6647,24 +6850,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_request_response_with_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_request_response_with_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_payload_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test
 
 endif
 
@@ -6680,24 +6883,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_simple_delayed_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_simple_delayed_request_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_simple_delayed_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test
 
 endif
 
@@ -6713,24 +6916,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_simple_delayed_request_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_simple_delayed_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_delayed_request_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_simple_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_simple_request_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_simple_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_simple_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test
 
 endif
 
@@ -6746,24 +6949,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_simple_request_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_simple_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_simple_request_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_thread_stress_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_thread_stress_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_thread_stress.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_thread_stress_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test
 
 endif
 
@@ -6779,24 +6982,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_thread_stress_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_THREAD_STRESS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_thread_stress_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_thread_stress_test
 
 
 CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test: $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_fullstack.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_fullstack -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test
 
 endif
 
@@ -6812,24 +7015,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_fullstack_writes_done_hangs_with_pending_read_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test
 
 endif
 
@@ -6845,24 +7048,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test
 
 endif
 
@@ -6878,24 +7081,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test
 
 endif
 
@@ -6911,24 +7114,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_AFTER_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test
 
 endif
 
@@ -6944,24 +7147,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_BEFORE_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test
 
 endif
 
@@ -6977,24 +7180,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_CANCEL_IN_A_VACUUM_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_disappearing_server.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test
 
 endif
 
@@ -7010,24 +7213,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_DISAPPEARING_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test
 
 endif
 
@@ -7043,24 +7246,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test
 
 endif
 
@@ -7076,24 +7279,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_invoke_large_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test
 
 endif
 
@@ -7109,24 +7312,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_INVOKE_LARGE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test
 
 endif
 
@@ -7142,24 +7345,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_MAX_CONCURRENT_STREAMS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_no_op.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test
 
 endif
 
@@ -7175,24 +7378,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_no_op_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_NO_OP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test
 
 endif
 
@@ -7208,24 +7411,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_PING_PONG_STREAMING_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test
 
 endif
 
@@ -7241,24 +7444,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test
 
 endif
 
@@ -7274,24 +7477,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test
 
 endif
 
@@ -7307,24 +7510,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test
 
 endif
 
@@ -7340,24 +7543,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test
 
 endif
 
@@ -7373,24 +7576,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_DELAYED_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_simple_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test
 
 endif
 
@@ -7406,24 +7609,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_SIMPLE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_thread_stress.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test
 
 endif
 
@@ -7439,24 +7642,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_THREAD_STRESS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_thread_stress_test
 
 
 CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC = \
 
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
-CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test: openssl_dep_error
 
 else
 
-bins/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test: $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test
 
 endif
 
@@ -7472,24 +7675,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test files"
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SIMPLE_SSL_WITH_OAUTH2_FULLSTACK_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_simple_ssl_with_oauth2_fullstack_writes_done_hangs_with_pending_read_test
 
 
 CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_cancel_after_accept_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_cancel_after_accept_test: $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test: $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_cancel_after_accept_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test
 
 endif
 
@@ -7505,24 +7708,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_cancel_after_accept_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_cancel_after_accept_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_test
 
 
 CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test
 
 endif
 
@@ -7538,24 +7741,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_cancel_after_accept_and_writes_closed_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test
 
 
 CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_cancel_after_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_cancel_after_invoke_test: $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test: $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_cancel_after_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test
 
 endif
 
@@ -7571,24 +7774,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_cancel_after_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_AFTER_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_cancel_after_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_cancel_after_invoke_test
 
 
 CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_cancel_before_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_cancel_before_invoke_test: $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test: $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_cancel_before_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test
 
 endif
 
@@ -7604,24 +7807,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_cancel_before_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_BEFORE_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_cancel_before_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_cancel_before_invoke_test
 
 
 CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_cancel_in_a_vacuum_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_cancel_in_a_vacuum_test: $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test: $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_cancel_in_a_vacuum_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test
 
 endif
 
@@ -7637,24 +7840,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_cancel_in_a_vacuum_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_CANCEL_IN_A_VACUUM_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_cancel_in_a_vacuum_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_cancel_in_a_vacuum_test
 
 
 CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_disappearing_server_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_disappearing_server_test: $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_disappearing_server.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test: $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_disappearing_server_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test
 
 endif
 
@@ -7670,24 +7873,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_disappearing_server_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_DISAPPEARING_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_disappearing_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_disappearing_server_test
 
 
 CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test
 
 endif
 
@@ -7703,24 +7906,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test
 
 
 CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_early_server_shutdown_finishes_tags_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_early_server_shutdown_finishes_tags_test: $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test: $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_early_server_shutdown_finishes_tags_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test
 
 endif
 
@@ -7736,24 +7939,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_early_server_shutdown_finishes_tags_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_early_server_shutdown_finishes_tags_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test
 
 
 CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_invoke_large_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_invoke_large_request_test: $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_invoke_large_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test: $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_invoke_large_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test
 
 endif
 
@@ -7769,24 +7972,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_invoke_large_request_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_INVOKE_LARGE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_invoke_large_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_invoke_large_request_test
 
 
 CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_max_concurrent_streams_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_max_concurrent_streams_test: $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test: $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_max_concurrent_streams_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test
 
 endif
 
@@ -7802,24 +8005,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_max_concurrent_streams_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_MAX_CONCURRENT_STREAMS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_max_concurrent_streams_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_max_concurrent_streams_test
 
 
 CHTTP2_SOCKET_PAIR_NO_OP_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_NO_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_NO_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_no_op_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_no_op_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_no_op_test: $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_no_op.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_no_op_test: $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_no_op_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_no_op_test
 
 endif
 
@@ -7835,24 +8038,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_no_op_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_NO_OP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_no_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_no_op_test
 
 
 CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_ping_pong_streaming_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_ping_pong_streaming_test: $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test: $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_ping_pong_streaming_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test
 
 endif
 
@@ -7868,24 +8071,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_ping_pong_streaming_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_PING_PONG_STREAMING_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_ping_pong_streaming_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_ping_pong_streaming_test
 
 
 CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test
 
 endif
 
@@ -7901,24 +8104,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test
 
 
 CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_request_response_with_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_request_response_with_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_request_response_with_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test
 
 endif
 
@@ -7934,24 +8137,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_request_response_with_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_request_response_with_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_metadata_and_payload_test
 
 
 CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_request_response_with_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_request_response_with_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_request_response_with_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test
 
 endif
 
@@ -7967,24 +8170,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_request_response_with_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_request_response_with_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_payload_test
 
 
 CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test
 
 endif
 
@@ -8000,24 +8203,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test
 
 
 CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_simple_delayed_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_simple_delayed_request_test: $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test: $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_simple_delayed_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test
 
 endif
 
@@ -8033,24 +8236,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_simple_delayed_request_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_SIMPLE_DELAYED_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_simple_delayed_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_simple_delayed_request_test
 
 
 CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_simple_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_simple_request_test: $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_simple_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test: $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_simple_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test
 
 endif
 
@@ -8066,24 +8269,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_simple_request_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_SIMPLE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_simple_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_simple_request_test
 
 
 CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_thread_stress_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_thread_stress_test: $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_thread_stress.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test: $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_thread_stress_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test
 
 endif
 
@@ -8099,24 +8302,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_thread_stress_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_THREAD_STRESS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_thread_stress_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_thread_stress_test
 
 
 CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_writes_done_hangs_with_pending_read_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_writes_done_hangs_with_pending_read_test: $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test: $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_writes_done_hangs_with_pending_read_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test
 
 endif
 
@@ -8132,24 +8335,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_writes_done_hangs_with_pending_read_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_writes_done_hangs_with_pending_read_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_writes_done_hangs_with_pending_read_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_after_accept.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_after_accept -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test
 
 endif
 
@@ -8165,24 +8368,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_after_accept_and_writes_closed.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_after_accept_and_writes_closed.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_after_accept_and_writes_closed -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test
 
 endif
 
@@ -8198,24 +8401,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_ACCEPT_AND_WRITES_CLOSED_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_after_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_after_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_after_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test
 
 endif
 
@@ -8231,24 +8434,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_AFTER_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_before_invoke.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_before_invoke.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_before_invoke -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test
 
 endif
 
@@ -8264,24 +8467,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_BEFORE_INVOKE_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_cancel_in_a_vacuum.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_cancel_in_a_vacuum.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_cancel_in_a_vacuum -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test
 
 endif
 
@@ -8297,24 +8500,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_CANCEL_IN_A_VACUUM_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_disappearing_server.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_disappearing_server.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_disappearing_server -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test
 
 endif
 
@@ -8330,24 +8533,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_DISAPPEARING_SERVER_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_disappearing_server_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_inflight_calls.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_early_server_shutdown_finishes_inflight_calls -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test
 
 endif
 
@@ -8363,24 +8566,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_INFLIGHT_CALLS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_early_server_shutdown_finishes_tags.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_early_server_shutdown_finishes_tags.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_early_server_shutdown_finishes_tags -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test
 
 endif
 
@@ -8396,24 +8599,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_EARLY_SERVER_SHUTDOWN_FINISHES_TAGS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_invoke_large_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_invoke_large_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_invoke_large_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test
 
 endif
 
@@ -8429,24 +8632,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_INVOKE_LARGE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_max_concurrent_streams.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_max_concurrent_streams.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_max_concurrent_streams -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test
 
 endif
 
@@ -8462,24 +8665,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_MAX_CONCURRENT_STREAMS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_no_op_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_no_op_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_no_op.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_no_op.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_no_op_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_no_op -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test
 
 endif
 
@@ -8495,24 +8698,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_no_op_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_NO_OP_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_no_op_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_no_op_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_ping_pong_streaming.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_ping_pong_streaming.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_ping_pong_streaming -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test
 
 endif
 
@@ -8528,24 +8731,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_PING_PONG_STREAMING_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_request_response_with_binary_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_binary_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test
 
 endif
 
@@ -8561,24 +8764,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_BINARY_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_request_response_with_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_request_response_with_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test
 
 endif
 
@@ -8594,24 +8797,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_request_response_with_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_request_response_with_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test
 
 endif
 
@@ -8627,24 +8830,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_request_response_with_trailing_metadata_and_payload.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_request_response_with_trailing_metadata_and_payload -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test
 
 endif
 
@@ -8660,24 +8863,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_REQUEST_RESPONSE_WITH_TRAILING_METADATA_AND_PAYLOAD_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_simple_delayed_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_simple_delayed_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_simple_delayed_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test
 
 endif
 
@@ -8693,24 +8896,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_DELAYED_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_delayed_request_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_simple_request_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_simple_request_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_simple_request.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_simple_request.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_simple_request_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_simple_request -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test
 
 endif
 
@@ -8726,24 +8929,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_simple_request_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_SIMPLE_REQUEST_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_simple_request_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_thread_stress.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_thread_stress.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_thread_stress -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test
 
 endif
 
@@ -8759,24 +8962,24 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_thread_stress_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_THREAD_STRESS_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_thread_stress_test
 
 
 CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC = \
 
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
-CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS = $(addprefix objs/$(TGTDIR)/, $(addsuffix .o, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
+CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS = $(addprefix deps/$(TGTDIR)/, $(addsuffix .dep, $(basename $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_SRC))))
 
 ifeq ($(NO_SECURE),true)
 
-bins/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test: openssl_dep_error
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test: openssl_dep_error
 
 else
 
-bins/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/libend2end_test_writes_done_hangs_with_pending_read.a libs/libend2end_certs.a libs/libgrpc_test_util.a libs/libgrpc.a libs/libgpr.a
+bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test: $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) libs/$(TGTDIR)/libend2end_fixture_chttp2_socket_pair_one_byte_at_a_time.a libs/$(TGTDIR)/libend2end_test_writes_done_hangs_with_pending_read.a libs/$(TGTDIR)/libend2end_certs.a libs/$(TGTDIR)/libgrpc_test_util.a libs/$(TGTDIR)/libgrpc.a libs/$(TGTDIR)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
+	$(Q) $(LD) $(LDFLAGS) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS) -Llibs/$(TGTDIR) -lend2end_fixture_chttp2_socket_pair_one_byte_at_a_time -lend2end_test_writes_done_hangs_with_pending_read -lend2end_certs -lgrpc_test_util -lgrpc -lgpr $(LDLIBS) $(LDLIBS_SECURE) -o bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
 
 endif
 
@@ -8792,7 +8995,7 @@
 	$(E) "[CLEAN]   Cleaning chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test files"
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_OBJS)
 	$(Q) $(RM) $(CHTTP2_SOCKET_PAIR_ONE_BYTE_AT_A_TIME_WRITES_DONE_HANGS_WITH_PENDING_READ_TEST_DEPS)
-	$(Q) $(RM) bins/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test
+	$(Q) $(RM) bins/$(TGTDIR)/chttp2_socket_pair_one_byte_at_a_time_writes_done_hangs_with_pending_read_test