This makes libdivecomputer build via Android NDK. Its currently unusable due to the fact that Android usually doesn't provide any kernel serial drivers.
Signed-off-by: Anton Lundin glance@acc.umu.se --- src/serial_posix.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/serial_posix.c b/src/serial_posix.c index 2748957..fc0e79e 100644 --- a/src/serial_posix.c +++ b/src/serial_posix.c @@ -53,6 +53,11 @@ #define NOPTY 1 #endif
+/* Android is missing tcdrain, so use ioctl version instead */ +#ifdef __ANDROID__ +#define tcdrain(x) ioctl(x, TCSBRK, 1) +#endif + #include "serial.h" #include "context-private.h"
@@ -433,7 +438,7 @@ serial_configure (serial_t *device, int baudrate, int databits, int parity, int
// Configure a custom baudrate if necessary. if (custom) { -#if defined(TIOCGSERIAL) && defined(TIOCSSERIAL) +#if defined(TIOCGSERIAL) && defined(TIOCSSERIAL) && !defined(__ANDROID__) // Get the current settings. struct serial_struct ss; if (ioctl (device->fd, TIOCGSERIAL, &ss) != 0 && NOPTY) {