[Android Software/Hacking General [Developers Only]] Surge1223:
I'll upload 1.0.37 today, i currently have to use Aosp and a modified bionic and libc++ to build it though, as far as Makefile/ndk support, I have this done for the most part but the modified bionic and libc++ support are currently not Iimplemented

Ill upload 1.031 and 1.0.32 (the source changed quite a bit between the two)

Yeah I'll discuss some of the issues in a bit, in the meantime this is the Android.mk I use for 1.0.37, and it was hard to get it right lol

# Copyright 2005 The Android Open Source Project
#
# Android.mk for adb
#

LOCAL_PATH:= $(call my-dir)

adb_version := N-android

ADB_COMMON_CFLAGS := \
-Wall -Wextra -Werror \
-Wno-unused-parameter \
-Wno-missing-field-initializers \
-Wvla \
-DADB_REVISION='"$(adb_version)"' \
-DADB_LOCAL_HOST=1 \
-DADB_HAX=1 \
-DALLOW_ADBD_NO_AUTH=1 \
-DALLOW_ADBD_DISABLE_VERITY=1\
-DALLOW_ADBD_ROOT=1 \

ADB_COMMON_linux_CFLAGS := \
-std=gnu++14 \

ADB_COMMON_darwin_CFLAGS := \
-std=gnu++14 \

CFLAGS += -DARM=1
CFLAGS += -O2 -fPIC -static -D_GNU_SOURCE -g

aoptCppFlags += -DHAVE_FORKEXEC=1
aoptHostLdLibs := -lc -lgcc -ldl -lz

#APP_STL := libc++_static
LOCAL_CXX_STL := libc++_static

common_inc := \
$(LOCAL_PATH)/include \
system/core/base/include \
system/core/libutils \
system/core/include \
system/core/liblog \
system/core/libcutils \
system/core/libcrypto_utils/include \
system/core/libcrypto_utils \
external/boringssl/src/include \
external/boringssl/src/include/crypto \
external/libpng \
external/libcxx/include \
external/expat \
external/zlib \
bionic/libc/include \
external/openssl/include \
system/core/libziparchive \
system/extras/ext4_utils

LOCAL_EXPORT_C_INCLUDES := $(common_inc)

ADB_STATIC_LIBRARIES := \
libbase \
libcrypto_static \
libcrypto_utils_static \
libcutils \
liblog \
libutils \
libziparchive \
libc \
libz

# libadb
#
# Much of adb is duplicated in bootable/recovery/minadb and fastboot. Changes
# made to adb rarely get ported to the other two, so the trees have diverged a
# bit. We'd like to stop this because it is a maintenance nightmare, but the
# divergence makes this difficult to do all at once. For now, we will start
# small by moving common files into a static library. Hopefully some day we can
# get enough of adb in here that we no longer need minadb. https://b/17626262
LIBADB_SRC_FILES := \
adb.cpp \
adb_auth.cpp \
adb_io.cpp \
adb_listeners.cpp \
adb_trace.cpp \
adb_utils.cpp \
fdevent.cpp \
sockets.cpp \
transport.cpp \
transport_local.cpp \
transport_usb.cpp \

LIBADB_TEST_SRCS := \
adb_io_test.cpp \
adb_listeners_test.cpp \
adb_utils_test.cpp \
fdevent_test.cpp \
socket_test.cpp \
sysdeps_test.cpp \
sysdeps/stat_test.cpp \
transport_test.cpp \

LIBADB_CFLAGS := \
$(ADB_COMMON_CFLAGS) \
-fvisibility=hidden \
-Wno-missing-field-initializers \

LIBADB_linux_CFLAGS := \
$(ADB_COMMON_linux_CFLAGS) \

LIBADB_linux_SRC_FILES := \
get_my_path_linux.cpp \
sysdeps_unix.cpp \
usb_linux.cpp \

include $(CLEAR_VARS)

LOCAL_CLANG := false
LOCAL_MODULE := libadbd
libadbd_srcs := \
$(LIBADB_SRC_FILES) \
adb_auth_client.cpp \
jdwp_service.cpp

ifdef TARGET_2ND_ARCH
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)
LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
LOCAL_SRC_FILES_64 := $(libadbd_srcs)
LOCAL_SRC_FILES_32 := $(libadbd_srcs)
else
LOCAL_SRC_FILES := $(libadbd_srcs)
endif

LOCAL_CFLAGS := \
$(LIBADB_CFLAGS) \
-DADB_HOST=0 \
-std=gnu++1y

# Even though we're building a static library (and thus there's no link step for
# this to take effect), this adds the includes to our path.
LOCAL_STATIC_LIBRARIES := libcrypto_utils_static libcrypto_static libbase

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)

LOCAL_CLANG := false
LOCAL_MODULE := libadb
libadb_srcs := \
$(LIBADB_SRC_FILES) \
adb_auth_host.cpp \

LOCAL_SRC_FILES_linux := $(LIBADB_linux_SRC_FILES)
ifdef TARGET_2ND_ARCH
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)
LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
LOCAL_SRC_FILES_64 := $(libadb_srcs)
LOCAL_SRC_FILES_32 := $(libadb_srcs)
else
LOCAL_SRC_FILES := $(libadb_srcs)
endif
LOCAL_CFLAGS := $(LIBADB_CFLAGS) -DADB_HOST=1
LOCAL_CFLAGS_linux := $(LIBADB_linux_CFLAGS)

# Even though we're building a static library (and thus there's no link step for
# this to take effect), this adds the includes to our path.
LOCAL_STATIC_LIBRARIES := libcrypto_utils_static libcrypto_static libbase libadb_usb

LOCAL_MULTILIB := first

include $(BUILD_STATIC_LIBRARY)

include $(CLEAR_VARS)

LOCAL_CLANG := false
adb_srcs := \
adb.cpp \
adb_auth.cpp \
adb_io.cpp \
adb_listeners.cpp \
adb_trace.cpp \
adb_utils.cpp \
fdevent.cpp \
sockets.cpp \
get_my_path_linux.cpp \
transport.cpp \
transport_local.cpp \
transport_usb.cpp \
adb_client.cpp \
client/main.cpp \
console.cpp \
commandline.cpp \
diagnose_usb.cpp \
file_sync_client.cpp \
line_printer.cpp \
services.cpp \
shell_service_protocol.cpp \
adb_auth_host.cpp \
sysdeps_unix.cpp \
usb_linux.cpp \

LOCAL_CFLAGS += \
$(ADB_COMMON_CFLAGS) \
-DADB_HOST=1 \
-DADB_HOST_ON_TARGET=1 \
-Wall \
-Wno-unused-parameter \
-D_XOPEN_SOURCE \
-D_GNU_SOURCE

LOCAL_CFLAGS_linux := \
$(ADB_COMMON_linux_CFLAGS) \

LOCAL_MODULE_PATH := $(ANDROID_PRODUCT_OUT)/system/bin
LOCAL_MODULE := adb
LOCAL_MODULE_TAGS := debug
ifdef TARGET_2ND_ARCH
LOCAL_MULTILIB := both
LOCAL_MODULE_STEM_32 := $(LOCAL_MODULE)
LOCAL_MODULE_STEM_64 := $(LOCAL_MODULE)64
LOCAL_SRC_FILES_64 := $(adb_srcs)
LOCAL_SRC_FILES_32 := $(adb_srcs)
else
LOCAL_SRC_FILES := $(adb_srcs)
endif

LOCAL_WHOLE_STATIC_LIBRARIES := libbase
LOCAL_CXX_STL := libc++_static

LOCAL_C_INCLUDES := $(common_inc)

LOCAL_STATIC_LIBRARIES := \
libbase \
libadb \
libcutils \
libcrypto_static \
libcrypto_utils_static \
libcutils \
liblog \
libutils \
libziparchive \
libc \
libz \
libadb_usb

LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE_PATH := $(TARGET_ROOT_OUT_SBIN)
LOCAL_UNSTRIPPED_PATH := $(TARGET_ROOT_OUT_SBIN_UNSTRIPPED)
LOCAL_LDLIBS := -lc -lgcc -ldl -lz
LOCAL_MODULE_TAGS := optional
LOCAL_LDFLAGS += -static
LOCAL_STATIC_LIBRARIES := $(ADB_STATIC_LIBRARIES)
include $(BUILD_EXECUTABLE)

Edit: here's an older Makefile that was WIP

https://github.com/Surge1223/adb-arm-1.0.37/blob/n/Makefile

I'm not sure how up to date my repo is, I'll check in a bit, but if anyone tries to build it I have a feeling they'll run into libc and libc++ issues.