Hamlib/android
Nate Bargmann d04364e685
Use pkgconf/pkg-config to test for libusb-1.0
As reported in GitHub issue #1892, configure on FreeBSD failed to search
for the name of the library correctly which is libusb.  As pkg-config
correctly holds the library name for linking, modify the search for
libusb-1.0 to use the pkg-config capability.  If pkg-config (now largely
replaced by pkgconf) is not installed or found, the modules depending on
it will be gracefull disabled, i.e. the configure script will complete
with those modules disabled.

Modify the output summary to use spaces instead of tabs as things were
not lining up nicely in my FreeBSD terminal.

Rename the Automake substituted variable 'HAVE_LIBUSB' to
'TESTS_HAVE_LIBUSB' to avoid confusion with identically named variable
written to include/hamlib/config.h.

Likewise, rename the AutoConf substituted name 'LIBUSB' to
'HAMLIB_PC_LIBUSB' to avoid confusion with the 'LIBUSB' string passed to
PKG_CHECK_MODULES.

Update hamlib.pc.in and tests/Makefile.am to use the new variable names.

Make sure all source files no longer reference HAVE_LIBUSB_H or
HAVE_LIBUSB_1_0_LIBUSB_H as these variables no longer exist.

Fix src/Makefile.am to provide include path for usb_port.c.
2025-09-17 21:31:37 -05:00
..
Makefile.am
README.android
config.h
hamlib-compile
ltdl.c
ltdl.h

README.android

Update Note:
These Android NDK scripts can compile the 4.3 version of hamlib normally, but they may be corrupted as the master branch code is updated. If you encounter compile-time errors, please try to fix them, or choose to recompile with version 4.3.

This is android port of hamlib
(C) 2012 Ladislav Vaiz <ok1zia@nagano.cz>

Notes:
* use hamlib-compile script to build hamlib for android
* script deletes file include/config.h, it conflicts with android/config.h
* android port implements ltdl interface and calls dlfcn functions directly
* RPC is not present on android
* ARS backend is compiled without pthreads because of deprecated pthread_cancel
* I don'k know how to connect to real radio:
** Bluetooth API is available only under Java, not from native code
** FTDI USB to serial converter driver is not included in standard kernel. It should work on rooted device.
** But NET rigctl works fine
* Backends are named libhamlib-vendor.so, I don't know how to include libraries without lib prefix into APK
* Check the location of libusb.h and define the corresponding macro accordingly in config.h.
* Had to build without libusb as ndk did not contain it
** comment out HAVE_LIBUSB_H in android/config.h if you get libusb errors

Happy hacking
73 Lada, OK1ZIA