[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 8/8] Refactor devices build
From: |
Ladislav Michl |
Subject: |
[PATCH 8/8] Refactor devices build |
Date: |
Mon, 3 Dec 2018 10:44:08 +0100 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
Remove #ifdefs from device drivers and compile them only when
selected. Once there, move device detection code in configure.ac
to live in one place.
---
common/device.c | 8 +-
common/devices/Makefile.am | 57 +++----
common/devices/bluetooth.c | 31 ----
common/devices/dku2libusb.c | 42 +----
common/devices/irda.c | 27 ----
common/devices/osxbluetooth.m | 8 +-
common/devices/socketphonet.c | 38 +----
common/devices/tcp.c | 53 +------
common/devices/tekram.c | 1 -
common/devices/unixbluetooth.c | 19 +--
common/devices/unixirda.c | 11 +-
common/devices/winbluetooth.c | 10 +-
common/devices/winirda.c | 7 +-
configure.ac | 147 ++++++++++--------
gnokii/Makefile.am | 10 --
.../devices/{unixbluetooth.h => bluetooth.h} | 38 ++++-
include/devices/dku2libusb.h | 38 ++++-
include/devices/irda.h | 32 ++++
include/devices/socketphonet.h | 32 ++++
include/devices/tcp.h | 33 ++++
include/devices/unixirda.h | 15 --
21 files changed, 305 insertions(+), 352 deletions(-)
delete mode 100644 common/devices/bluetooth.c
delete mode 100644 common/devices/irda.c
rename include/devices/{unixbluetooth.h => bluetooth.h} (52%)
delete mode 100644 include/devices/unixirda.h
diff --git a/common/device.c b/common/device.c
index 3b4d2c3d..eee21ecd 100644
--- a/common/device.c
+++ b/common/device.c
@@ -21,12 +21,12 @@
#include "gnokii-internal.h"
#include "device.h"
#include "devices/irda.h"
-#include "devices/unixbluetooth.h"
-#include "devices/tcp.h"
-#include "devices/serial.h"
-#include "devices/tekram.h"
+#include "devices/bluetooth.h"
#include "devices/dku2libusb.h"
+#include "devices/serial.h"
#include "devices/socketphonet.h"
+#include "devices/tcp.h"
+#include "devices/tekram.h"
GNOKII_API int device_getfd(struct gn_statemachine *state)
{
diff --git a/common/devices/Makefile.am b/common/devices/Makefile.am
index 9beef37a..23127ec5 100644
--- a/common/devices/Makefile.am
+++ b/common/devices/Makefile.am
@@ -2,35 +2,39 @@ DEFS = -DCOMPILING_LIBGNOKII
noinst_LTLIBRARIES = libDEVICES.la
-WIN32_FILES = \
- winserial.c \
- winirda.c \
- winbluetooth.c
-
-UNIX_FILES = \
- unixserial.c \
- unixirda.c \
- tcp.c \
- socketphonet.c
-
-if FOR_MAC
-UNIX_SPECIFIC_FILES = osxbluetooth.m
-else
-UNIX_SPECIFIC_FILES = unixbluetooth.c
+gnokii_devices = tekram.c
+if LIBUSB
+gnokii_devices += dku2libusb.c
+endif
+if !WIN32
+gnokii_devices += tcp.c
+endif
+if SOCKETPHONET
+gnokii_devices += socketphonet.c
+endif
+if OSXBLUETOOTH
+gnokii_devices += osxbluetooth.m
+endif
+if UNIXBLUETOOTH
+gnokii_devices += unixbluetooth.c
+endif
+if UNIXIRDA
+gnokii_devices += unixirda.c
+endif
+if !WIN32
+gnokii_devices += unixserial.c
+endif
+if WINBLUETOOTH
+gnokii_devices += winbluetooth.c
+endif
+if WINIRDA
+gnokii_devices += winirda.c
endif
-
if WIN32
-PLATFORM_FILES = $(WIN32_FILES)
-else
-PLATFORM_FILES = $(UNIX_FILES) $(UNIX_SPECIFIC_FILES)
+gnokii_devices += winserial.c
endif
-libDEVICES_la_SOURCES = \
- $(PLATFORM_FILES) \
- tekram.c \
- irda.c \
- dku2libusb.c \
- bluetooth.c
+libDEVICES_la_SOURCES = $(gnokii_devices)
libDEVICES_la_CFLAGS = \
-I$(top_srcdir)/include
@@ -39,6 +43,3 @@ libDEVICES_la_LIBADD = \
$(USB_LIBS) \
$(BLUETOOTH_LIBS) \
$(TCP_LIBS)
-
-EXTRA_DIST = $(WIN32_FILES) $(UNIX_FILES) $(UNIX_SPECIFIC_FILES)
-
diff --git a/common/devices/bluetooth.c b/common/devices/bluetooth.c
deleted file mode 100644
index dccf448b..00000000
--- a/common/devices/bluetooth.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-
- G N O K I I
-
- A Linux/Unix toolset and driver for the mobile phones.
-
- This file is part of gnokii.
-
- Copyright (C) 2002 Marcel Holtmann <address@hidden>
- Copyright (C) 2003 BORBELY Zoltan
- Copyright (C) 2004 Pawel Kot, Phil Ashby
-
- Fake definitions for the bluetooth handling functions.
-
-*/
-
-#include "config.h"
-#include "compat.h"
-#include "misc.h"
-#include "gnokii.h"
-#include "devices/unixbluetooth.h"
-
-#ifndef HAVE_BLUETOOTH
-
-int bluetooth_open(const char *addr, uint8_t channel, struct gn_statemachine
*state) { return -1; }
-int bluetooth_close(int fd, struct gn_statemachine *state) { return -1; }
-int bluetooth_write(int fd, const __ptr_t bytes, int size, struct
gn_statemachine *state) { return -1; }
-int bluetooth_read(int fd, __ptr_t bytes, int size, struct gn_statemachine
*state) { return -1; }
-int bluetooth_select(int fd, struct timeval *timeout, struct gn_statemachine
*state) { return -1; }
-
-#endif /* HAVE_BLUETOOTH */
diff --git a/common/devices/dku2libusb.c b/common/devices/dku2libusb.c
index f219c39b..77d2af54 100644
--- a/common/devices/dku2libusb.c
+++ b/common/devices/dku2libusb.c
@@ -14,46 +14,14 @@
*/
-#include "config.h"
-#include "compat.h"
-#include "misc.h"
-#include "gnokii.h"
-#include "devices/dku2libusb.h"
-
-#ifndef HAVE_LIBUSB
-int fbusdku2usb_open(struct gn_statemachine *state)
-{
- return -1;
-}
-
-int fbusdku2usb_close(struct gn_statemachine *state)
-{
- return -1;
-}
-
-int fbusdku2usb_write(const __ptr_t bytes, int size, struct gn_statemachine
*state)
-{
- return -1;
-}
-
-int fbusdku2usb_read(__ptr_t bytes, int size, struct gn_statemachine *state)
-{
- return -1;
-}
-
-int fbusdku2usb_select(struct timeval *timeout, struct gn_statemachine *state)
-{
- return -1;
-}
-
-#else
-
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <errno.h>
#include <string.h>
+#include "devices/dku2libusb.h"
+
#define DEVINSTANCE(s) (*((fbus_usb_interface
**)(&(s)->device.device_instance)))
/*
@@ -388,7 +356,7 @@ static int usbfbus_connect_request(struct gn_statemachine
*state)
return 1;
err3:
- usb_release_interface(DEVINSTANCE(state)->interface->dev_data,
DEVINSTANCE(state)->interface->data_interface);
+ usb_release_interface(DEVINSTANCE(state)->interface->dev_data,
DEVINSTANCE(state)->interface->data_interface);
err2:
usb_release_interface(DEVINSTANCE(state)->interface->dev_data,
DEVINSTANCE(state)->interface->control_interface);
err1:
@@ -420,7 +388,7 @@ static int usbfbus_disconnect_request(struct
gn_statemachine *state)
ret = usb_close(DEVINSTANCE(state)->interface->dev_data);
if (ret < 0)
dprintf("Can't close data interface %d\n", ret);
- return ret;
+ return ret;
}
int fbusdku2usb_open(struct gn_statemachine *state)
@@ -459,5 +427,3 @@ int fbusdku2usb_select(struct timeval *timeout, struct
gn_statemachine *state)
{
return 1;
}
-
-#endif
diff --git a/common/devices/irda.c b/common/devices/irda.c
deleted file mode 100644
index 2674c2db..00000000
--- a/common/devices/irda.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- *
- * G N O K I I
- *
- * A Linux/Unix toolset and driver for the mobile phones.
- *
- * Copyright (C) 1999-2000 Hugh Blemings & Pavel Janík ml.
- * Copyright (C) 2000-2001 Marcel Holtmann <address@hidden>
- * Copyright (C) 2004 Phil Ashby
- *
- * Fake definitions for irda handling functions.
- */
-
-#include "config.h"
-#include "compat.h"
-#include "misc.h"
-#include "gnokii.h"
-
-#ifndef HAVE_IRDA
-
-int irda_open(struct gn_statemachine *state) { return -1; }
-int irda_close(int fd, struct gn_statemachine *state) { return -1; }
-int irda_write(int fd, const __ptr_t bytes, int size, struct gn_statemachine
*state) { return -1; }
-int irda_read(int fd, __ptr_t bytes, int size, struct gn_statemachine *state)
{ return -1; }
-int irda_select(int fd, struct timeval *timeout, struct gn_statemachine
*state) { return -1; }
-
-#endif /* HAVE_IRDA */
diff --git a/common/devices/osxbluetooth.m b/common/devices/osxbluetooth.m
index 6216cc5c..1fc11295 100644
--- a/common/devices/osxbluetooth.m
+++ b/common/devices/osxbluetooth.m
@@ -10,14 +10,10 @@
*/
-#include "config.h"
-
-#ifdef HAVE_BLUETOOTH_MACOSX
-
#include <IOBluetooth/objc/IOBluetoothRFCOMMChannel.h>
#include <IOBluetooth/objc/IOBluetoothDevice.h>
-#include "devices/unixbluetooth.h"
+#include "devices/bluetooth.h"
static NSMutableDictionary *queues;
static int next_fd = 1;
@@ -179,5 +175,3 @@ int bluetooth_close(int fd, struct gn_statemachine *state)
[queues removeObjectForKey:@(fd)];
return 1;
}
-
-#endif
diff --git a/common/devices/socketphonet.c b/common/devices/socketphonet.c
index 12bed8b2..1e119939 100644
--- a/common/devices/socketphonet.c
+++ b/common/devices/socketphonet.c
@@ -15,49 +15,17 @@
*/
-#include "config.h"
-#include "compat.h" /* for __ptr_t definition */
-#include "gnokii.h"
-
-#ifndef HAVE_SOCKETPHONET
-
-int socketphonet_close(struct gn_statemachine *state)
-{
- return -1;
-}
-
-int socketphonet_open(const char *iface, int with_async, struct
gn_statemachine *state)
-{
- return -1;
-}
-
-size_t socketphonet_read(int fd, __ptr_t buf, size_t nbytes, struct
gn_statemachine *state)
-{
- return -1;
-}
-
-size_t socketphonet_write(int fd, const __ptr_t buf, size_t n, struct
gn_statemachine *state)
-{
- return -1;
-}
-
-int socketphonet_select(int fd, struct timeval *timeout, struct
gn_statemachine *state)
-{
- return -1;
-}
-
-#else
-
/* System header files */
#include <sys/socket.h>
#include <linux/phonet.h>
/* Various header files */
+#include "config.h"
#include "compat.h"
#include "links/fbus-common.h"
#include "links/fbus-phonet.h"
-#include "device.h"
#include "devices/serial.h"
+#include "devices/socketphonet.h"
#include "gnokii-internal.h"
static struct sockaddr_pn addr = { .spn_family = AF_PHONET, .spn_dev =
FBUS_DEVICE_PHONE };
@@ -159,5 +127,3 @@ int socketphonet_select(int fd, struct timeval *timeout,
struct gn_statemachine
{
return serial_select(fd, timeout, state);
}
-
-#endif /* HAVE_SOCKETPHONET */
diff --git a/common/devices/tcp.c b/common/devices/tcp.c
index 619737aa..8a48d4e1 100644
--- a/common/devices/tcp.c
+++ b/common/devices/tcp.c
@@ -12,13 +12,6 @@
*/
-#include "config.h"
-#include "misc.h"
-#include "devices/tcp.h"
-#include "devices/serial.h"
-
-#ifndef WIN32
-
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
@@ -34,6 +27,12 @@
#include <netdb.h>
#include <termios.h>
+#include "config.h"
+#include "misc.h"
+#include "devices/tcp.h"
+#include "devices/serial.h"
+
+
#ifdef HAVE_SYS_FILE_H
# include <sys/file.h>
#endif
@@ -50,8 +49,6 @@
# define O_NONBLOCK 0
#endif
-/* Open the serial port and store the settings. */
-
static int tcp_open(const char *file)
{
int fd;
@@ -148,16 +145,12 @@ int tcp_close(int fd, struct gn_statemachine *state)
return close(fd);
}
-/* Open a device with standard options.
- * Use value (-1) for "with_hw_handshake" if its specification is required
from the user
- */
int tcp_opendevice(const char *file, int with_async, struct gn_statemachine
*state)
{
int fd;
int retcode;
/* Open device */
-
fd = tcp_open(file);
if (fd < 0)
@@ -203,46 +196,12 @@ int tcp_select(int fd, struct timeval *timeout, struct
gn_statemachine *state)
return serial_select(fd, timeout, state);
}
-
-/* Read from serial device. */
-
size_t tcp_read(int fd, __ptr_t buf, size_t nbytes, struct gn_statemachine
*state)
{
return read(fd, buf, nbytes);
}
-/* Write to serial device. */
-
size_t tcp_write(int fd, const __ptr_t buf, size_t n, struct gn_statemachine
*state)
{
return write(fd, buf, n);
}
-
-#else /* WIN32 */
-
-int tcp_close(int fd, struct gn_statemachine *state)
-{
- return -1;
-}
-
-int tcp_opendevice(const char *file, int with_async, struct gn_statemachine
*state)
-{
- return -1;
-}
-
-size_t tcp_read(int fd, __ptr_t buf, size_t nbytes, struct gn_statemachine
*state)
-{
- return -1;
-}
-
-size_t tcp_write(int fd, const __ptr_t buf, size_t n, struct gn_statemachine
*state)
-{
- return -1;
-}
-
-int tcp_select(int fd, struct timeval *timeout, struct gn_statemachine *state)
-{
- return -1;
-}
-
-#endif /* WIN32 */
diff --git a/common/devices/tekram.c b/common/devices/tekram.c
index 51e5e8fb..bfb887ff 100644
--- a/common/devices/tekram.c
+++ b/common/devices/tekram.c
@@ -13,7 +13,6 @@
*/
#include "config.h"
-
#include "misc.h"
#include "gnokii.h"
diff --git a/common/devices/unixbluetooth.c b/common/devices/unixbluetooth.c
index c9be96f9..2c195940 100644
--- a/common/devices/unixbluetooth.c
+++ b/common/devices/unixbluetooth.c
@@ -16,14 +16,6 @@
*/
-#include "config.h"
-#include "compat.h"
-#include "misc.h"
-#include "gnokii.h"
-#include "devices/unixbluetooth.h"
-
-#if defined(HAVE_BLUETOOTH_BLUEZ) || defined(HAVE_BLUETOOTH_NETGRAPH) ||
defined(HAVE_BLUETOOTH_NETBT)
-
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
@@ -32,6 +24,9 @@
#include <sys/time.h>
#include <sys/socket.h>
+#include "config.h"
+#include "devices/bluetooth.h"
+
#ifdef HAVE_BLUETOOTH_NETGRAPH /* FreeBSD / netgraph */
#include <bluetooth.h>
@@ -265,7 +260,7 @@ static int find_service_channel(bdaddr_t *adapter, bdaddr_t
*device, int only_gn
case SDP_ATTR_PRIMARY_LANGUAGE_BASE_ID +
SDP_ATTR_SERVICE_NAME_OFFSET:
if (channel == -1)
break;
-
+
SDP_GET8(type, start);
switch (type) {
case SDP_DATA_STR8:
@@ -303,7 +298,7 @@ static int find_service_channel(bdaddr_t *adapter, bdaddr_t
*device, int only_gn
break;
}
}
-
+
if (strstr(name, "Nokia PC Suite") != NULL) {
channel = -1;
break;
@@ -509,7 +504,7 @@ int bluetooth_open(const char *addr, uint8_t channel,
struct gn_statemachine *st
dprintf("Using channel: %d\n", channel);
raddr.rc_channel = channel;
-
+
if (connect(fd, (struct sockaddr *)&raddr, sizeof(raddr)) < 0) {
perror(_("Can't connect"));
close(fd);
@@ -549,5 +544,3 @@ int bluetooth_select(int fd, struct timeval *timeout,
struct gn_statemachine *st
return select(fd + 1, &readfds, NULL, NULL, timeout);
}
-
-#endif /* HAVE_BLUETOOTH_BLUEZ || HAVE_BLUETOOTH_NETGRAPH ||
HAVE_BLUETOOTH_NETBT */
diff --git a/common/devices/unixirda.c b/common/devices/unixirda.c
index 96b9a58a..5292d203 100644
--- a/common/devices/unixirda.c
+++ b/common/devices/unixirda.c
@@ -13,12 +13,6 @@
*
*/
-#include "config.h"
-#include "misc.h"
-#include "gnokii.h"
-#include "compat.h"
-
-#ifdef HAVE_IRDA
#include <stdlib.h>
#include <stdio.h>
@@ -30,6 +24,9 @@
#include <linux/types.h>
#include <linux/irda.h>
+#include "config.h"
+#include "compat.h"
+#include "misc.h"
#include "devices/irda.h"
#ifndef AF_IRDA
@@ -178,5 +175,3 @@ int irda_select(int fd, struct timeval *timeout, struct
gn_statemachine *state)
return select(fd + 1, &readfds, NULL, NULL, timeout);
}
-
-#endif /* HAVE_IRDA */
diff --git a/common/devices/winbluetooth.c b/common/devices/winbluetooth.c
index a898e2e6..7be40127 100644
--- a/common/devices/winbluetooth.c
+++ b/common/devices/winbluetooth.c
@@ -8,18 +8,14 @@
*
*/
-#include "config.h"
-
-#ifdef HAVE_BLUETOOTH
-
#include <winsock2.h>
#include <mmsystem.h>
#include <ws2bth.h>
#include <bluetoothapis.h>
+#include "config.h"
#include "compat.h"
-#include "gnokii.h"
-#include "misc.h"
+#include "devices/bluetooth.h"
/* QTTY by Davide Libenzi ( Terminal interface to Symbian QConsole )
* Copyright (C) 2004 Davide Libenzi
@@ -109,5 +105,3 @@ int bluetooth_select(int fd, struct timeval *timeout,
struct gn_statemachine *st
return select(0 /* ignored on Win32 */, &readfds, NULL, NULL, timeout);
}
-
-#endif /* HAVE_BLUETOOTH */
diff --git a/common/devices/winirda.c b/common/devices/winirda.c
index 4bfed742..71018842 100644
--- a/common/devices/winirda.c
+++ b/common/devices/winirda.c
@@ -8,14 +8,11 @@
*
*/
-#include "config.h"
-
-#ifdef HAVE_IRDA
-
#define WIN32_LEAN_AND_MEAN
#include <winsock.h>
#include <mmsystem.h>
+#include "config.h"
#include "compat.h"
#include "misc.h"
#include "devices/irda.h"
@@ -160,5 +157,3 @@ int irda_select(int fd, struct timeval *timeout, struct
gn_statemachine *state)
return select(0 /* ignored on Win32 */, &readfds, NULL, NULL, timeout);
}
-
-#endif /* HAVE_IRDA */
diff --git a/configure.ac b/configure.ac
index af2ce675..b0736f6f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -88,15 +88,9 @@ case x"$host_os" in
LDFLAGS="$LDFLAGS -L/usr/local/lib"
;;
xnetbsd*)
- CPPFLAGS="$CFLAGS -I/usr/pkg/include/"
- LDFLAGS="$LDFLAGS -L/usr/pkg/lib/"
- ;;
- xcygwin32|xcygwin|xmingw32|xmingw32msvc)
- WIN32=1
- ;;
- xdarwin*)
- FOR_MAC=1
- ;;
+ CPPFLAGS="$CFLAGS -I/usr/pkg/include/"
+ LDFLAGS="$LDFLAGS -L/usr/pkg/lib/"
+ ;;
esac
dnl ======================== Libtool versioning
@@ -362,6 +356,17 @@ AC_ARG_WITH(readline,
AC_SUBST(TERMLIBS)
AC_SUBST(TERMLDFLAGS)
+dnl ======================== Defines location for gettext
+AC_ARG_WITH(gettext,
+ [ --with-gettext=DIR specifies the base gettext],
+ [ if test x$withval = xyes; then
+ AC_MSG_WARN(Usage is: --with-gettext=DIR)
+ else
+ CFLAGS="$CFLAGS -I$withval"
+ fi
+ ]
+)
+
dnl ======================== Check for libical
AC_ARG_WITH(libical,
[ --with-libical=DIR specifies the base libical],
@@ -421,6 +426,15 @@ if test "$enable_libical" = "yes"; then
CFLAGS="$OLD_CFLAGS"
fi
+dnl ======================== Checks for gethostbyname support
+AC_CHECK_FUNC(gethostbyname, ,
+ AC_CHECK_LIB(nsl, gethostbyname, TCP_LIBS="-lnsl"
+ AC_SUBST(TCP_LIBS)))
+dnl Haiku requires -lnetwork for socket functions
+AC_CHECK_FUNC(gethostbyname, ,
+ AC_CHECK_LIB(network, gethostbyname, TCP_LIBS="-lnetwork"
+ AC_SUBST(TCP_LIBS)))
+
dnl ======================== Check for libusb
USE_LIBUSB="no"
AC_ARG_ENABLE(libusb,
@@ -444,59 +458,25 @@ if test "$enable_libusb" = "yes"; then
]
)
fi
+AM_CONDITIONAL([LIBUSB], [test $USE_LIBUSB = yes])
-dnl ======================== Checks for Linux Phonet support
+dnl ======================== Phonet switch
USE_SOCKETPHONET="no"
AC_ARG_ENABLE(phonet,
AC_HELP_STRING([--disable-phonet],
[disable phonet support (default is autodetected)]
),,
[enable_phonet=yes])
-if test "$enable_phonet" = "yes"; then
- AC_CHECK_HEADER(linux/phonet.h,
- [AC_DEFINE(HAVE_SOCKETPHONET, 1, [Whether Phonet is available])
- USE_SOCKETPHONET="yes"],,
- [#include <sys/socket.h>
- #include <linux/phonet.h>])
-fi
-
-dnl ======================== Checks for gethostbyname support
-AC_CHECK_FUNC(gethostbyname, ,
- AC_CHECK_LIB(nsl, gethostbyname, TCP_LIBS="-lnsl"
- AC_SUBST(TCP_LIBS)))
-dnl Haiku requires -lnetwork for socket functions
-AC_CHECK_FUNC(gethostbyname, ,
- AC_CHECK_LIB(network, gethostbyname, TCP_LIBS="-lnetwork"
- AC_SUBST(TCP_LIBS)))
-dnl ======================== Checks for Linux IrDA support
+dnl ======================== IrDA switch
USE_IRDA="no"
AC_ARG_ENABLE(irda,
AC_HELP_STRING([--disable-irda],
[disable irda support (default is autodetected)]
),,
[enable_irda=yes])
-if test "$enable_irda" = "yes"; then
- AC_CHECK_HEADER(linux/irda.h,
- [AC_DEFINE(HAVE_IRDA, 1, [Whether IrDA is available])
- USE_IRDA="yes"],,
- [#include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <linux/types.h>])
-fi
-dnl ======================== Defines location for gettext
-AC_ARG_WITH(gettext,
- [ --with-gettext=DIR specifies the base gettext],
- [ if test x$withval = xyes; then
- AC_MSG_WARN(Usage is: --with-gettext=DIR)
- else
- CFLAGS="$CFLAGS -I$withval"
- fi
- ]
-)
-
-dnl ======================== Checks for Bluetooth support
+dnl ======================== Bluetooth switch
USE_BLUETOOTH="no"
AC_ARG_WITH(bluetooth,
[ --with-bluetooth=DIR specifies the base libbluetooth],
@@ -516,8 +496,8 @@ AC_ARG_ENABLE(bluetooth,
case "$host_os" in
linux*)
-dnl ======================== Checks for Linux Bluetooth support
- if test "$enable_bluetooth" = "yes" -a "$USE_BLUETOOTH" = "no"; then
+dnl ======================== Checks for Linux devices
+ if test "$enable_bluetooth" = "yes"; then
AC_MSG_NOTICE([checking for the Linux Bluetooth support])
AC_CACHE_CHECK(for the struct sockaddr_rc in
<bluetooth/rfcomm.h>, ac_cv_have_sockaddr_rc,
[AC_TRY_COMPILE([#include <sys/socket.h>
@@ -530,14 +510,31 @@ dnl ======================== Checks for Linux Bluetooth
support
AC_DEFINE(HAVE_BLUETOOTH, 1, [Whether Bluetooth is
available])
AC_DEFINE(HAVE_BLUETOOTH_BLUEZ,[],[Compile on Linux])
USE_BLUETOOTH="yes"
+ UNIX_BLUETOOTH="true"
BLUETOOTH_LIBS="-lbluetooth"
AC_SUBST(BLUETOOTH_LIBS)
fi
fi
+ if test "$enable_irda" = "yes"; then
+ AC_CHECK_HEADER(linux/irda.h,
+ [AC_DEFINE(HAVE_IRDA, 1, [Whether IrDA is available])
+ [USE_IRDA="yes" UNIX_IRDA="true"]],,
+ [#include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <linux/types.h>])
+ fi
+ if test "$enable_phonet" = "yes"; then
+ AC_CHECK_HEADER(linux/phonet.h,
+ [AC_DEFINE(HAVE_SOCKETPHONET, 1, [Whether Phonet is
available])
+ USE_SOCKETPHONET="yes"],,
+ [#include <sys/socket.h>
+ #include <linux/phonet.h>])
+ fi
;;
+
darwin*)
dnl ======================== Checks for MacOSX Bluetooth support
- if test "$enable_bluetooth" = "yes" -a "$USE_BLUETOOTH" = "no"; then
+ if test "$enable_bluetooth" = "yes"; then
AC_LANG_PUSH([Objective C])
AC_CHECK_HEADERS(IOBluetooth/objc/IOBluetoothRFCOMMChannel.h)
AC_CHECK_HEADERS(IOBluetooth/objc/IOBluetoothDevice.h)
@@ -557,6 +554,7 @@ dnl ======================== Checks for MacOSX Bluetooth
support
AC_DEFINE(HAVE_BLUETOOTH, 1, [Whether Bluetooth is
available])
AC_DEFINE(HAVE_BLUETOOTH_MACOSX,[],[Compile on Darwin /
Mac OSX])
USE_BLUETOOTH="yes"
+ OSX_BLUETOOTH="true"
BLUETOOTH_LIBS="$PTHREAD_LIBS
-Wl,-framework,CoreFoundation -Wl,-framework,IOBluetooth
-Wl,-framework,Foundation"
AC_SUBST(BLUETOOTH_LIBS)
fi
@@ -565,7 +563,7 @@ dnl ======================== Checks for MacOSX Bluetooth
support
dnl ======================== Checks for FreeBSD/netgraph Bluetooth support
freebsd)
- if test "$enable_bluetooth" = "yes" -a "$USE_BLUETOOTH" = "no"; then
+ if test "$enable_bluetooth" = "yes"; then
AC_MSG_NOTICE([checking for the FreeBSD/netgraph Bluetooth
support])
AC_CACHE_CHECK(for the struct sockaddr_rfcomm from
<bluetooth.h>, ac_cv_have_sockaddr_rfcomm,
[AC_TRY_COMPILE([#include <bluetooth.h>],
@@ -577,6 +575,7 @@ freebsd)
AC_DEFINE(HAVE_BLUETOOTH, 1, [Whether Bluetooth is
available])
AC_DEFINE(HAVE_BLUETOOTH_NETGRAPH, [], [Compile on
FreeBSD])
USE_BLUETOOTH="yes"
+ UNIX_BLUETOOTH="true"
AC_CHECK_LIB(bluetooth, bt_aton,
[BLUETOOTH_LIBS="-lbluetooth"
ac_cv_have_bt_lib=yes],
ac_cv_have_bt_lib=no)
@@ -591,7 +590,7 @@ freebsd)
dnl ======================== Checks for NetBSD/netbt Bluetooth support
netbsd*)
- if test "$enable_bluetooth" = "yes" -a "$USE_BLUETOOTH" = "no"; then
+ if test "$enable_bluetooth" = "yes"; then
AC_MSG_NOTICE([checking for the NetBSD/netbt Bluetooth support])
AC_CACHE_CHECK(for the struct sockaddr_bt from <bluetooth.h>,
ac_cv_have_sockaddr_bt,
[AC_TRY_COMPILE([#include <bluetooth.h>],
@@ -603,6 +602,7 @@ netbsd*)
AC_DEFINE(HAVE_BLUETOOTH, 1, [Whether Bluetooth is
available])
AC_DEFINE(HAVE_BLUETOOTH_NETBT, [], [Compile on NetBSD])
USE_BLUETOOTH="yes"
+ UNIX_BLUETOOTH="true"
CFLAGS="$CFLAGS -DCOMPAT_BLUEZ"
AC_CHECK_LIB(bluetooth, bt_aton,
[BLUETOOTH_LIBS="-lbluetooth"
ac_cv_have_bt_lib=yes],
@@ -615,8 +615,39 @@ netbsd*)
fi
fi
;;
+
+dnl ======================== Checks for Windows devices
+cygwin32|cygwin|mingw32|mingw32msvc)
+ if test "$enable_bluetooth" = "yes"; then
+ AC_CHECK_HEADER(ws2bth.h,
+ [AC_DEFINE(HAVE_BLUETOOTH, 1, [Whether
Bluetooth is available]) USE_BLUETOOTH="yes" WIN32_BLUETOOTH="true"],,
+ [#include <windows.h>])
+ fi
+ if test "$enable_irda" = "yes"; then
+ AC_CHECK_HEADER(af_irda.h,
+ [AC_DEFINE(HAVE_IRDA, 1, [Whether IrDA is
available]) USE_IRDA="yes" WIN32_IRDA="true"],,
+ [#include <windows.h>])
+ fi
+ BLUETOOTH_LIBS=""
+ if test x"$USE_IRDA" = "xyes" -o x"$USE_BLUETOOTH" = "xyes"; then
+ BLUETOOTH_LIBS="-lws2_32"
+ fi
+ if test x"$USE_IRDA" = "xyes"; then
+ BLUETOOTH_LIBS="$BLUETOOTH_LIBS -lwinmm"
+ fi
+ AC_SUBST(BLUETOOTH_LIBS)
+ WIN32=1
+ ;;
esac
+AM_CONDITIONAL([WIN32], test "x$WIN32" = "x1")
+AM_CONDITIONAL([SOCKETPHONET], [test "x$USE_SOCKETPHONET" = "xyes"])
+AM_CONDITIONAL([OSXBLUETOOTH], [test "x$OSX_BLUETOOTH" = "xtrue"])
+AM_CONDITIONAL([UNIXBLUETOOTH], [test "x$UNIX_BLUETOOTH" = "xtrue"])
+AM_CONDITIONAL([UNIXIRDA], [test "x$UNIX_IRDA" = "xtrue"])
+AM_CONDITIONAL([WINBLUETOOTH], [test "x$WIN32_BLUETOOTH" = "xtrue"])
+AM_CONDITIONAL([WINIRDA], [test "x$WIN32_IRDA" = "xtrue"])
+
dnl ======================== Checks for X base support
PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.0, found_gtk=yes, found_gtk=no)
@@ -789,18 +820,6 @@ if test "$enable_libpcsclite" = "yes"; then
fi
fi
-if test x"$host_os" = "xcygwin32" -o x"$host_os" = "xcygwin" -o x"$host_os" =
"xmingw32" -o x"$host_os" = "xmingw32msvc"; then
- AC_CHECK_HEADER(af_irda.h, [AC_DEFINE(HAVE_IRDA, 1, [Whether IrDA is
available]) USE_IRDA="yes" LIBS="$LIBS -lwinmm"],, [#include <windows.h>])
- AC_CHECK_HEADER(ws2bth.h, [AC_DEFINE(HAVE_BLUETOOTH, 1, [Whether
Bluetooth is available]) USE_BLUETOOTH="yes"],, [#include <windows.h>])
- if test x"$USE_IRDA" = "xyes" -o x"$USE_BLUETOOTH" = "xyes"; then
- LIBS="$LIBS -lws2_32"
- fi
- WIN32=1
-fi
-
-AM_CONDITIONAL(WIN32, test "x$WIN32" = "x1")
-AM_CONDITIONAL([FOR_MAC], [test "x$FOR_MAC" = "x1"])
-
AC_ARG_ENABLE(unix98test,
[ --enable-unix98test if you want to disable UNIX98 test and assume to
use it; default is enabled],
diff --git a/gnokii/Makefile.am b/gnokii/Makefile.am
index e3d4d759..2acbed42 100644
--- a/gnokii/Makefile.am
+++ b/gnokii/Makefile.am
@@ -13,13 +13,3 @@ gnokii_CFLAGS = -I$(top_srcdir)/include
# Compile getopt1.c and getopt.c unconditionally on all platforms, it
# has its own magic for the platforms that already have it.
gnokii_LDADD += $(top_builddir)/getopt/libgetopt.a
-
-#FIXME cross compiling
-#if WIN32_CROSS
-#PRGNAME=gnokii.exe
-#TARGET=-mconsole
-#AM_CFLAGS=-DGNOKIIDLL_IMPORTS
-#else
-PRGNAME=gnokii
-#endif
-
diff --git a/include/devices/unixbluetooth.h b/include/devices/bluetooth.h
similarity index 52%
rename from include/devices/unixbluetooth.h
rename to include/devices/bluetooth.h
index 81cad19b..1b0e9b3e 100644
--- a/include/devices/unixbluetooth.h
+++ b/include/devices/bluetooth.h
@@ -11,17 +11,49 @@
*/
-#ifndef _gnokii_unix_bluetooth_h
-#define _gnokii_unix_bluetooth_h
+#ifndef _gnokii_bluetooth_h
+#define _gnokii_bluetooth_h
#include "compat.h"
+#include "config.h"
#include "misc.h"
#include "gnokii.h"
+#ifdef HAVE_BLUETOOTH
+
int bluetooth_open(const char *addr, uint8_t channel, struct gn_statemachine
*state);
int bluetooth_close(int fd, struct gn_statemachine *state);
int bluetooth_write(int fd, const __ptr_t bytes, int size, struct
gn_statemachine *state);
int bluetooth_read(int fd, __ptr_t bytes, int size, struct gn_statemachine
*state);
int bluetooth_select(int fd, struct timeval *timeout, struct gn_statemachine
*state);
-#endif /* _gnokii_unix_bluetooth_h */
+#else
+
+int bluetooth_open(const char *addr, uint8_t channel, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+int bluetooth_close(int fd, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int bluetooth_write(int fd, const __ptr_t bytes, int size, struct
gn_statemachine *state)
+{
+ return -1;
+}
+
+int bluetooth_read(int fd, __ptr_t bytes, int size, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+int bluetooth_select(int fd, struct timeval *timeout, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+#endif
+
+#endif /* _gnokii_bluetooth_h */
diff --git a/include/devices/dku2libusb.h b/include/devices/dku2libusb.h
index be4d4ba4..0987657e 100644
--- a/include/devices/dku2libusb.h
+++ b/include/devices/dku2libusb.h
@@ -16,16 +16,15 @@
#ifndef _gnokii_dku2libusb_h
#define _gnokii_dku2libusb_h
-#ifdef HAVE_LIBUSB
-# include <usb.h>
-#endif
-
+#include "config.h"
#include "compat.h"
#include "misc.h"
#include "gnokii.h"
#ifdef HAVE_LIBUSB
+#include <usb.h>
+
/* Information about a USB DKU2 FBUS interface present on the system */
struct fbus_usb_interface_transport {
struct fbus_usb_interface_transport *prev, *next; /* Next and
previous interfaces in the list */
@@ -102,12 +101,39 @@ struct cdc_union_desc {
#define USB_MAX_STRING_SIZE 256
#define USB_FBUS_TIMEOUT 10000 /* 10 seconds */
-#endif
-
int fbusdku2usb_open(struct gn_statemachine *state);
int fbusdku2usb_close(struct gn_statemachine *state);
int fbusdku2usb_write(const __ptr_t bytes, int size, struct gn_statemachine
*state);
int fbusdku2usb_read(__ptr_t bytes, int size, struct gn_statemachine *state);
int fbusdku2usb_select(struct timeval *timeout, struct gn_statemachine *state);
+#else
+
+int fbusdku2usb_open(struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int fbusdku2usb_close(struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int fbusdku2usb_write(const __ptr_t bytes, int size, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+int fbusdku2usb_read(__ptr_t bytes, int size, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int fbusdku2usb_select(struct timeval *timeout, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+#endif
+
#endif /* _gnokii_dku2libusb_h */
diff --git a/include/devices/irda.h b/include/devices/irda.h
index 819dd257..82191b1f 100644
--- a/include/devices/irda.h
+++ b/include/devices/irda.h
@@ -12,12 +12,44 @@
#ifndef __gnokii_irda_h_
#define __gnokii_irda_h_
+#include "config.h"
#include "gnokii.h"
+#ifdef HAVE_IRDA
+
int irda_open(struct gn_statemachine *state);
int irda_close(int fd, struct gn_statemachine *state);
int irda_write(int fd, const __ptr_t bytes, int size, struct gn_statemachine
*state);
int irda_read(int fd, __ptr_t bytes, int size, struct gn_statemachine *state);
int irda_select(int fd, struct timeval *timeout, struct gn_statemachine
*state);
+#else
+
+int irda_open(struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int irda_close(int fd, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int irda_write(int fd, const __ptr_t bytes, int size, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+int irda_read(int fd, __ptr_t bytes, int size, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int irda_select(int fd, struct timeval *timeout, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+#endif
+
#endif /* __gnokii_irda_h_ */
diff --git a/include/devices/socketphonet.h b/include/devices/socketphonet.h
index 77550c6f..05a06f56 100644
--- a/include/devices/socketphonet.h
+++ b/include/devices/socketphonet.h
@@ -18,12 +18,44 @@
#ifndef _gnokii_devices_linuxphonet_h
#define _gnokii_devices_linuxphonet_h
+#include "config.h"
#include "gnokii.h"
+#ifdef HAVE_SOCKETPHONET
+
int socketphonet_close(struct gn_statemachine *state);
int socketphonet_open(const char *iface, int with_async, struct
gn_statemachine *state);
size_t socketphonet_read(int fd, __ptr_t buf, size_t nbytes, struct
gn_statemachine *state);
size_t socketphonet_write(int fd, const __ptr_t buf, size_t n, struct
gn_statemachine *state);
int socketphonet_select(int fd, struct timeval *timeout, struct
gn_statemachine *state);
+#else
+
+int socketphonet_close(struct gn_statemachine *state)
+{
+ return -1;
+}
+
+int socketphonet_open(const char *iface, int with_async, struct
gn_statemachine *state)
+{
+ return -1;
+}
+
+size_t socketphonet_read(int fd, __ptr_t buf, size_t nbytes, struct
gn_statemachine *state)
+{
+ return -1;
+}
+
+size_t socketphonet_write(int fd, const __ptr_t buf, size_t n, struct
gn_statemachine *state)
+{
+ return -1;
+}
+
+int socketphonet_select(int fd, struct timeval *timeout, struct
gn_statemachine *state)
+{
+ return -1;
+}
+
+#endif
+
#endif /* _gnokii_devices_linuxphonet_h */
diff --git a/include/devices/tcp.h b/include/devices/tcp.h
index 0e3786e7..0ecf1d87 100644
--- a/include/devices/tcp.h
+++ b/include/devices/tcp.h
@@ -13,10 +13,13 @@
#ifndef __devices_tcp_h
#define __devices_tcp_h
+#include "config.h"
#include "compat.h"
#include "misc.h"
#include "gnokii.h"
+#ifndef WIN32
+
int tcp_opendevice(const char *file, int with_async, struct gn_statemachine
*state);
int tcp_close(int fd, struct gn_statemachine *state);
@@ -25,4 +28,34 @@ size_t tcp_write(int fd, const __ptr_t buf, size_t n, struct
gn_statemachine *st
int tcp_select(int fd, struct timeval *timeout, struct gn_statemachine *state);
+#else
+
+int tcp_opendevice(const char *file, int with_async, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+int tcp_close(int fd, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+
+size_t tcp_read(int fd, __ptr_t buf, size_t nbytes, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+size_t tcp_write(int fd, const __ptr_t buf, size_t n, struct gn_statemachine
*state)
+{
+ return -1;
+}
+
+int tcp_select(int fd, struct timeval *timeout, struct gn_statemachine *state)
+{
+ return -1;
+}
+
+#endif
+
#endif /* __devices_tcp_h */
diff --git a/include/devices/unixirda.h b/include/devices/unixirda.h
deleted file mode 100644
index 19b07ef4..00000000
--- a/include/devices/unixirda.h
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
- *
- * G N O K I I
- *
- * A Linux/Unix toolset and driver for the mobile phones.
- *
- * Copyright (C) 1999, 2000 Hugh Blemings & Pavel Janík ml.
- * Copyright (C) 2000-2001 Marcel Holtmann <address@hidden>
- *
- */
-
-#ifndef __unix_irda_h_
-#define __unix_irda_h_
-
-#endif
--
2.20.0.rc1
[PATCH 6/8] Fix compat.c compilation with mingw32, Ladislav Michl, 2018/12/03
[PATCH 8/8] Refactor devices build,
Ladislav Michl <=