Hi,
as a reminder, here are some patches that are certainly needed and mostly
generic. It would be nice to include them into the CVS code. The order to
apply them is implied by the name but also follows:
ipv6_v6only:
needed for TcpOBEX for IP-dual-stack systems that disable ipv4-mapped ipv6
addresses by default
dll:
enables a correct DLL build for win32 and, since it's easy then, uses the gcc
visibility feature on non-win32 systems
(hint: it changes less than it looks like in the diff)
include-build:
do a copy instead of linking in case you have filesystems that do not support
symlinks
autoupdate:
not important but updates the automake and autoconf stuff to current autotools
standards (even Debian Etch 4.0 compatible ;)
Have fun...
HS
PS: if you want to apply the win32 patches to CVS, I still have them...
Index: openobex-anoncvs/lib/inobex.c
===================================================================
--- openobex-anoncvs.orig/lib/inobex.c 2007-01-26 20:03:20.589735695 +0100
+++ openobex-anoncvs/lib/inobex.c 2007-01-28 09:32:16.335094648 +0100
@@ -164,6 +165,17 @@
DEBUG(0, "Cannot create server-socket\n");
return -1;
}
+#ifdef IPV6_V6ONLY
+ else {
+ /* Needed for some system that set this IPv6 socket option to
+ * 1 by default (Windows Vista, maybe some BSDs).
+ * Do not check the return code as it may not matter.
+ * You will certainly notice later if it failed.
+ */
+ int v6only = 0;
+ (void)setsockopt(self->serverfd,IPPROTO_IPV6,IPV6_V6ONLY,&v6only,sizeof(v6only));
+ }
+#endif
//printf("TCP/IP listen %d %X\n", self->trans.self.inet.sin_port,
// self->trans.self.inet.sin_addr.s_addr);
Index: openobex-anoncvs/include/obex.h
===================================================================
--- openobex-anoncvs.orig/include/obex.h 2007-01-25 23:50:27.782382862 +0100
+++ openobex-anoncvs/include/obex.h 2007-01-25 23:57:59.790631612 +0100
@@ -35,10 +35,18 @@
#ifdef _WIN32
#include <winsock2.h>
+#ifndef OBEX_STATIC_LIB
+#define LIB_SYMBOL __declspec(dllimport)
+#endif
+
#else
#include <sys/socket.h>
#endif
+#ifndef LIB_SYMBOL
+#define LIB_SYMBOL
+#endif
+
/* Hum... This would need to be autogenerated from configure,
* I hate hardcoding version numbers. Jean II */
#define OPENOBEX_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
@@ -61,51 +69,52 @@
/*
* OBEX API
*/
-obex_t *OBEX_Init(int transport, obex_event_t eventcb, unsigned int flags);
-void OBEX_Cleanup(obex_t *self);
-void OBEX_SetUserData(obex_t *self, void * data);
-void * OBEX_GetUserData(obex_t *self);
-void OBEX_SetUserCallBack(obex_t *self, obex_event_t eventcb, void * data);
-int OBEX_SetTransportMTU(obex_t *self, uint16_t mtu_rx, uint16_t mtu_tx_max);
-int OBEX_GetFD(obex_t *self);
-
-int OBEX_RegisterCTransport(obex_t *self, obex_ctrans_t *ctrans);
-void OBEX_SetCustomData(obex_t *self, void * data);
-void * OBEX_GetCustomData(obex_t *self);
-
-int OBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addlen);
-int OBEX_TransportDisconnect(obex_t *self);
-int OBEX_CustomDataFeed(obex_t *self, uint8_t *inputbuf, int actual);
-int OBEX_HandleInput(obex_t *self, int timeout);
-
-int OBEX_ServerRegister(obex_t *self, struct sockaddr *saddr, int addrlen);
-obex_t *OBEX_ServerAccept(obex_t *server, obex_event_t eventcb, void * data);
-int OBEX_Request(obex_t *self, obex_object_t *object);
-int OBEX_CancelRequest(obex_t *self, int nice);
-int OBEX_SuspendRequest(obex_t *self, obex_object_t *object);
-int OBEX_ResumeRequest(obex_t *self);
-
-obex_object_t *OBEX_ObjectNew(obex_t *self, uint8_t cmd);
-int OBEX_ObjectDelete(obex_t *self, obex_object_t *object);
-
-int OBEX_ObjectAddHeader(obex_t *self, obex_object_t *object, uint8_t hi,
- obex_headerdata_t hv, uint32_t hv_size, unsigned int flags);
-int OBEX_ObjectGetNextHeader(obex_t *self, obex_object_t *object, uint8_t *hi,
- obex_headerdata_t *hv,
- uint32_t *hv_size);
-int OBEX_ObjectReParseHeaders(obex_t *self, obex_object_t *object);
-int OBEX_ObjectSetRsp(obex_object_t *object, uint8_t rsp, uint8_t lastrsp);
-
-int OBEX_ObjectGetNonHdrData(obex_object_t *object, uint8_t **buffer);
-int OBEX_ObjectSetNonHdrData(obex_object_t *object, const uint8_t *buffer, unsigned int len);
-int OBEX_ObjectSetHdrOffset(obex_object_t *object, unsigned int offset);
-int OBEX_ObjectReadStream(obex_t *self, obex_object_t *object, const uint8_t **buf);
-int OBEX_ObjectGetCommand(obex_t *self, obex_object_t *object);
+LIB_SYMBOL obex_t * OBEX_Init(int transport, obex_event_t eventcb, unsigned int flags);
+LIB_SYMBOL void OBEX_Cleanup(obex_t *self);
+LIB_SYMBOL void OBEX_SetUserData(obex_t *self, void * data);
+LIB_SYMBOL void * OBEX_GetUserData(obex_t *self);
+LIB_SYMBOL void OBEX_SetUserCallBack(obex_t *self, obex_event_t eventcb, void * data);
+LIB_SYMBOL int OBEX_SetTransportMTU(obex_t *self, uint16_t mtu_rx, uint16_t mtu_tx_max);
+LIB_SYMBOL int OBEX_GetFD(obex_t *self);
+
+LIB_SYMBOL int OBEX_RegisterCTransport(obex_t *self, obex_ctrans_t *ctrans);
+LIB_SYMBOL void OBEX_SetCustomData(obex_t *self, void * data);
+LIB_SYMBOL void * OBEX_GetCustomData(obex_t *self);
+
+LIB_SYMBOL int OBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addlen);
+LIB_SYMBOL int OBEX_TransportDisconnect(obex_t *self);
+LIB_SYMBOL int OBEX_CustomDataFeed(obex_t *self, uint8_t *inputbuf, int actual);
+LIB_SYMBOL int OBEX_HandleInput(obex_t *self, int timeout);
+
+LIB_SYMBOL int OBEX_ServerRegister(obex_t *self, struct sockaddr *saddr, int addrlen);
+LIB_SYMBOL obex_t * OBEX_ServerAccept(obex_t *server, obex_event_t eventcb, void * data);
+
+LIB_SYMBOL int OBEX_Request(obex_t *self, obex_object_t *object);
+LIB_SYMBOL int OBEX_CancelRequest(obex_t *self, int nice);
+LIB_SYMBOL int OBEX_SuspendRequest(obex_t *self, obex_object_t *object);
+LIB_SYMBOL int OBEX_ResumeRequest(obex_t *self);
+
+LIB_SYMBOL obex_object_t * OBEX_ObjectNew(obex_t *self, uint8_t cmd);
+LIB_SYMBOL int OBEX_ObjectDelete(obex_t *self, obex_object_t *object);
+
+LIB_SYMBOL int OBEX_ObjectAddHeader(obex_t *self, obex_object_t *object,
+ uint8_t hi, obex_headerdata_t hv, uint32_t hv_size,
+ unsigned int flags);
+LIB_SYMBOL int OBEX_ObjectGetNextHeader(obex_t *self, obex_object_t *object,
+ uint8_t *hi, obex_headerdata_t *hv, uint32_t *hv_size);
+LIB_SYMBOL int OBEX_ObjectReParseHeaders(obex_t *self, obex_object_t *object);
+LIB_SYMBOL int OBEX_ObjectSetRsp(obex_object_t *object, uint8_t rsp, uint8_t lastrsp);
+
+LIB_SYMBOL int OBEX_ObjectGetNonHdrData(obex_object_t *object, uint8_t **buffer);
+LIB_SYMBOL int OBEX_ObjectSetNonHdrData(obex_object_t *object, const uint8_t *buffer, unsigned int len);
+LIB_SYMBOL int OBEX_ObjectSetHdrOffset(obex_object_t *object, unsigned int offset);
+LIB_SYMBOL int OBEX_ObjectReadStream(obex_t *self, obex_object_t *object, const uint8_t **buf);
+LIB_SYMBOL int OBEX_ObjectGetCommand(obex_t *self, obex_object_t *object);
-int OBEX_UnicodeToChar(uint8_t *c, const uint8_t *uc, int size);
-int OBEX_CharToUnicode(uint8_t *uc, const uint8_t *c, int size);
+LIB_SYMBOL int OBEX_UnicodeToChar(uint8_t *c, const uint8_t *uc, int size);
+LIB_SYMBOL int OBEX_CharToUnicode(uint8_t *uc, const uint8_t *c, int size);
-char *OBEX_ResponseToString(int rsp);
+LIB_SYMBOL char *OBEX_ResponseToString(int rsp);
/*
* This function is deprecated and will be removed in OpenOBEX 1.1.0
@@ -113,43 +122,43 @@
* Please use the OBEX_ResponseToString instead.
*
*/
-char* OBEX_GetResponseMessage(obex_t *self, int rsp);
+LIB_SYMBOL char* OBEX_GetResponseMessage(obex_t *self, int rsp);
/*
* TcpOBEX API (IPv4/IPv6)
*/
- int TcpOBEX_ServerRegister(obex_t *self, struct sockaddr *addr, int addrlen);
- int TcpOBEX_TransportConnect(obex_t *self, struct sockaddr *addr, int addrlen);
+LIB_SYMBOL int TcpOBEX_ServerRegister(obex_t *self, struct sockaddr *addr, int addrlen);
+LIB_SYMBOL int TcpOBEX_TransportConnect(obex_t *self, struct sockaddr *addr, int addrlen);
/*
* InOBEX API (deprecated)
*/
- int InOBEX_ServerRegister(obex_t *self);
- int InOBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addrlen);
+LIB_SYMBOL int InOBEX_ServerRegister(obex_t *self);
+LIB_SYMBOL int InOBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addrlen);
/*
* IrOBEX API
*/
- int IrOBEX_ServerRegister(obex_t *self, const char *service);
- int IrOBEX_TransportConnect(obex_t *self, const char *service);
+LIB_SYMBOL int IrOBEX_ServerRegister(obex_t *self, const char *service);
+LIB_SYMBOL int IrOBEX_TransportConnect(obex_t *self, const char *service);
/*
* Bluetooth OBEX API
*/
- int BtOBEX_ServerRegister(obex_t *self, bdaddr_t *src, uint8_t channel);
- int BtOBEX_TransportConnect(obex_t *self, bdaddr_t *src, bdaddr_t *dst, uint8_t channel);
+LIB_SYMBOL int BtOBEX_ServerRegister(obex_t *self, bdaddr_t *src, uint8_t channel);
+LIB_SYMBOL int BtOBEX_TransportConnect(obex_t *self, bdaddr_t *src, bdaddr_t *dst, uint8_t channel);
/*
* OBEX File API
*/
-int FdOBEX_TransportSetup(obex_t *self, int rfd, int wfd, int mtu);
+LIB_SYMBOL int FdOBEX_TransportSetup(obex_t *self, int rfd, int wfd, int mtu);
/*
* OBEX interface discovery API
*/
- int OBEX_FindInterfaces(obex_t *self, obex_interface_t **intf);
- int OBEX_InterfaceConnect(obex_t *self, obex_interface_t *intf);
- void OBEX_FreeInterfaces(obex_t *self);
+LIB_SYMBOL int OBEX_FindInterfaces(obex_t *self, obex_interface_t **intf);
+LIB_SYMBOL int OBEX_InterfaceConnect(obex_t *self, obex_interface_t *intf);
+LIB_SYMBOL void OBEX_FreeInterfaces(obex_t *self);
#ifdef __cplusplus
}
Index: openobex-anoncvs/lib/obex.c
===================================================================
--- openobex-anoncvs.orig/lib/obex.c 2007-01-25 23:50:28.258412612 +0100
+++ openobex-anoncvs/lib/obex.c 2007-01-25 23:57:59.798632112 +0100
@@ -40,11 +40,21 @@
#ifdef _WIN32
#include <winsock2.h>
#define ESOCKTNOSUPPORT 1
-#else /* _WIN32 */
+#ifdef DLL_EXPORT
+#define LIB_SYMBOL __declspec(dllexport)
+#endif
+#else /* _WIN32 */
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
+#ifdef HAVE_VISIBILITY
+#define LIB_SYMBOL __attribute__ ((visibility("default")))
+#endif
+#endif
+
+#ifndef LIB_SYMBOL
+#define LIB_SYMBOL
#endif
#include "obex_main.h"
@@ -90,6 +100,7 @@
*
* Returns an OBEX handle or %NULL on error.
*/
+LIB_SYMBOL
obex_t *OBEX_Init(int transport, obex_event_t eventcb, unsigned int flags)
{
obex_t *self;
@@ -182,6 +193,7 @@
* Call this function directly after OBEX_Init if you are using
* a custom transport.
*/
+LIB_SYMBOL
int OBEX_RegisterCTransport(obex_t *self, obex_ctrans_t *ctrans)
{
obex_return_val_if_fail(self != NULL, -1);
@@ -197,6 +209,7 @@
*
* Close down an OBEX instance.
*/
+LIB_SYMBOL
void OBEX_Cleanup(obex_t *self)
{
obex_return_if_fail(self != NULL);
@@ -220,6 +233,7 @@
* @self: OBEX handle
* @data: It's all up to you!
*/
+LIB_SYMBOL
void OBEX_SetUserData(obex_t *self, void * data)
{
obex_return_if_fail(self != NULL);
@@ -232,6 +246,7 @@
*
* Returns userdata
*/
+LIB_SYMBOL
void * OBEX_GetUserData(obex_t *self)
{
obex_return_val_if_fail(self != NULL, 0);
@@ -244,6 +259,7 @@
* @eventcb: Function pointer to your new event callback.
* @data: Pointer to the new user data to pass to the new callback (optional)
*/
+LIB_SYMBOL
void OBEX_SetUserCallBack(obex_t *self, obex_event_t eventcb, void * data)
{
obex_return_if_fail(self != NULL);
@@ -269,6 +285,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int OBEX_SetTransportMTU(obex_t *self, uint16_t mtu_rx, uint16_t mtu_tx_max)
{
obex_return_val_if_fail(self != NULL, -EFAULT);
@@ -311,6 +328,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int OBEX_ServerRegister(obex_t *self, struct sockaddr *saddr, int addrlen)
{
DEBUG(3, "\n");
@@ -343,6 +361,7 @@
*
* Returns the client instance or %NULL for error.
*/
+LIB_SYMBOL
obex_t *OBEX_ServerAccept(obex_t *server, obex_event_t eventcb, void * data)
{
obex_t *self;
@@ -431,6 +450,7 @@
* Like select() this function returns -1 on error, 0 on timeout or
* positive on success.
*/
+LIB_SYMBOL
int OBEX_HandleInput(obex_t *self, int timeout)
{
DEBUG(4, "\n");
@@ -445,6 +465,7 @@
* @inputbuf: Pointer to custom data
* @actual: Length of buffer
*/
+LIB_SYMBOL
int OBEX_CustomDataFeed(obex_t *self, uint8_t *inputbuf, int actual)
{
DEBUG(3, "\n");
@@ -464,6 +485,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int OBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addrlen)
{
DEBUG(4, "\n");
@@ -481,6 +503,7 @@
* OBEX_TransportDisconnect - Disconnect transport
* @self: OBEX handle
*/
+LIB_SYMBOL
int OBEX_TransportDisconnect(obex_t *self)
{
DEBUG(4, "\n");
@@ -508,6 +531,7 @@
* This mean that after receiving an incomming connection, you need to
* call this function again.
*/
+LIB_SYMBOL
int OBEX_GetFD(obex_t *self)
{
obex_return_val_if_fail(self != NULL, -1);
@@ -523,6 +547,7 @@
*
* Returns negative on error.
*/
+LIB_SYMBOL
int OBEX_Request(obex_t *self, obex_object_t *object)
{
DEBUG(4, "\n");
@@ -551,6 +576,7 @@
*
*
*/
+LIB_SYMBOL
int OBEX_CancelRequest(obex_t *self, int nice)
{
obex_return_val_if_fail(self != NULL, -1);
@@ -562,6 +588,7 @@
* @self: OBEX handle
* @object: object to suspend (NULL to suspend currently transfered object)
*/
+LIB_SYMBOL
int OBEX_SuspendRequest(obex_t *self, obex_object_t *object)
{
obex_return_val_if_fail(object != NULL || self->object != NULL, -1);
@@ -572,6 +599,7 @@
* OBEX_ResumeRequest - Resume transfer of an object
* @self: OBEX handle
*/
+LIB_SYMBOL
int OBEX_ResumeRequest(obex_t *self)
{
obex_return_val_if_fail(self->object != NULL, -1);
@@ -585,6 +613,7 @@
*
* Returns a pointer to a new OBEX Object or %NULL on error.
*/
+LIB_SYMBOL
obex_object_t *OBEX_ObjectNew(obex_t *self, uint8_t cmd)
{
obex_object_t *object;
@@ -615,6 +644,7 @@
* Note that as soon as you have passed an object to the lib using
* OBEX_Request(), you shall not delete it yourself.
*/
+LIB_SYMBOL
int OBEX_ObjectDelete(obex_t *self, obex_object_t *object)
{
obex_return_val_if_fail(object != NULL, -1);
@@ -651,6 +681,7 @@
*
* The headers will be sent in the order you add them.
*/
+LIB_SYMBOL
int OBEX_ObjectAddHeader(obex_t *self, obex_object_t *object, uint8_t hi,
obex_headerdata_t hv, uint32_t hv_size,
unsigned int flags)
@@ -675,6 +706,7 @@
*
* You will get the headers in the received order.
*/
+LIB_SYMBOL
int OBEX_ObjectGetNextHeader(obex_t *self, obex_object_t *object, uint8_t *hi,
obex_headerdata_t *hv,
uint32_t *hv_size)
@@ -697,6 +729,7 @@
* Returns 1 on success
* Returns 0 if failed due previous parsing not completed.
*/
+LIB_SYMBOL
int OBEX_ObjectReParseHeaders(obex_t *self, obex_object_t *object)
{
obex_return_val_if_fail(self != NULL, -1);
@@ -722,6 +755,7 @@
*
* Returns the number of bytes in buffer, or 0 for end-of-stream.
*/
+LIB_SYMBOL
int OBEX_ObjectReadStream(obex_t *self, obex_object_t *object, const uint8_t **buf)
{
obex_return_val_if_fail(self != NULL, -1);
@@ -739,6 +773,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int OBEX_ObjectSetRsp(obex_object_t *object, uint8_t rsp, uint8_t lastrsp)
{
obex_return_val_if_fail(object != NULL, -1);
@@ -752,6 +787,7 @@
*
* Returns the size of the buffer or -1 for error.
*/
+LIB_SYMBOL
int OBEX_ObjectGetNonHdrData(obex_object_t *object, uint8_t **buffer)
{
obex_return_val_if_fail(object != NULL, -1);
@@ -771,6 +807,7 @@
* Some commands (notably SetPath) send data before headers. Use this
* function to set this data.
*/
+LIB_SYMBOL
int OBEX_ObjectSetNonHdrData(obex_object_t *object, const uint8_t *buffer, unsigned int len)
{
//TODO: Check that we actually can send len bytes without violating MTU
@@ -798,6 +835,7 @@
* command has data before the headers comes. You do NOT need to use this
* function on Connect and SetPath, they are handled automatically.
*/
+LIB_SYMBOL
int OBEX_ObjectSetHdrOffset(obex_object_t *object, unsigned int offset)
{
obex_return_val_if_fail(object != NULL, -1);
@@ -812,6 +850,7 @@
*
* Call this function to get the OBEX command of an object.
*/
+LIB_SYMBOL
int OBEX_ObjectGetCommand(obex_t *self, obex_object_t *object)
{
obex_return_val_if_fail(object != NULL || self->object != NULL, -1);
@@ -830,6 +869,7 @@
*
* Buffers may not overlap. Returns -1 on error.
*/
+LIB_SYMBOL
int OBEX_UnicodeToChar(uint8_t *c, const uint8_t *uc, int size)
{
int n;
@@ -857,6 +897,7 @@
*
* Buffers may not overlap. Returns -1 on error.
*/
+LIB_SYMBOL
int OBEX_CharToUnicode(uint8_t *uc, const uint8_t *c, int size)
{
int len, n;
@@ -885,6 +926,7 @@
*
* The returned char must not be freed. Returns %NULL on error.
*/
+LIB_SYMBOL
char *OBEX_ResponseToString(int rsp)
{
DEBUG(4, "\n");
@@ -899,6 +941,7 @@
*
* The returned char must not be freed. Returns %NULL on error.
*/
+LIB_SYMBOL
char* OBEX_GetResponseMessage(obex_t *self, int rsp)
{
DEBUG(4, "\n");
@@ -922,6 +965,7 @@
* multiple connections transparently (i.e. without a lookup table).
* - Jean II
*/
+LIB_SYMBOL
void OBEX_SetCustomData(obex_t *self, void * data)
{
obex_return_if_fail(self != NULL);
@@ -934,6 +978,7 @@
*
* Returns Custom Transport data
*/
+LIB_SYMBOL
void * OBEX_GetCustomData(obex_t *self)
{
obex_return_val_if_fail(self != NULL, 0);
@@ -953,6 +998,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int TcpOBEX_ServerRegister(obex_t *self, struct sockaddr *addr, int addrlen)
{
DEBUG(3, "\n");
@@ -975,6 +1021,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int TcpOBEX_TransportConnect(obex_t *self, struct sockaddr *addr, int addrlen)
{
DEBUG(4, "\n");
@@ -1001,6 +1048,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int InOBEX_ServerRegister(obex_t *self)
{
DEBUG(3, "\n");
@@ -1020,6 +1068,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int InOBEX_TransportConnect(obex_t *self, struct sockaddr *saddr, int addrlen)
{
DEBUG(4, "\n");
@@ -1048,6 +1097,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int IrOBEX_ServerRegister(obex_t *self, const char *service)
{
DEBUG(3, "\n");
@@ -1070,6 +1120,7 @@
*
* An easier connect function to use for IrDA (IrOBEX) only.
*/
+LIB_SYMBOL
int IrOBEX_TransportConnect(obex_t *self, const char *service)
{
DEBUG(4, "\n");
@@ -1099,6 +1150,7 @@
*
* Returns -1 on error.
*/
+LIB_SYMBOL
int BtOBEX_ServerRegister(obex_t *self, bdaddr_t *src, uint8_t channel)
{
DEBUG(3, "\n");
@@ -1122,6 +1174,7 @@
*
* An easier connect function to use for Bluetooth (Bluetooth OBEX) only.
*/
+LIB_SYMBOL
int BtOBEX_TransportConnect(obex_t *self, bdaddr_t *src, bdaddr_t *dst, uint8_t channel)
{
DEBUG(4, "\n");
@@ -1153,6 +1206,7 @@
* @wfd: descriptor to write
* @mtu: transport mtu: 0 - default
*/
+LIB_SYMBOL
int FdOBEX_TransportSetup(obex_t *self, int rfd, int wfd, int mtu)
{
DEBUG(4, "\n");
@@ -1177,6 +1231,7 @@
* An easier connect function to connect to a discovered interface (currently
* USB OBEX only).
*/
+LIB_SYMBOL
int OBEX_InterfaceConnect(obex_t *self, obex_interface_t *intf)
{
DEBUG(4, "\n");
@@ -1210,6 +1265,7 @@
*
* Gets a list of OBEX interfaces, or NULL if there are none.
*/
+LIB_SYMBOL
int OBEX_FindInterfaces(obex_t *self, obex_interface_t **interfaces)
{
DEBUG(4, "\n");
@@ -1238,6 +1294,7 @@
* Frees memory allocated to OBEX interface structures after it has been
* allocated by OBEX_FindInterfaces.
*/
+LIB_SYMBOL
void OBEX_FreeInterfaces(obex_t *self)
{
DEBUG(4, "\n");
Index: openobex-anoncvs/configure.in
===================================================================
--- openobex-anoncvs.orig/configure.in 2007-01-24 22:16:52.256889027 +0100
+++ openobex-anoncvs/configure.in 2007-01-25 23:57:59.838634612 +0100
@@ -21,6 +21,7 @@
AC_PROG_LIBTOOL
+AC_VISIBILITY
AC_CANONICAL_HOST
AC_PATH_WIN32
Index: openobex-anoncvs/lib/Makefile.am
===================================================================
--- openobex-anoncvs.orig/lib/Makefile.am 2007-01-24 23:45:58.142986027 +0100
+++ openobex-anoncvs/lib/Makefile.am 2007-01-25 23:57:59.858635862 +0100
@@ -17,6 +17,8 @@
irda.h irda_wrap.h \
usbobex.c usbobex.h
+libopenobex_la_CFLAGS = @CFLAG_VISIBILITY@
+
libopenobex_la_LDFLAGS = \
-no-undefined \
-version-info 4:0:3 \
Index: openobex-anoncvs/acinclude.m4
===================================================================
--- openobex-anoncvs.orig/acinclude.m4 2007-01-24 22:16:52.300891777 +0100
+++ openobex-anoncvs/acinclude.m4 2007-01-25 23:57:59.882637362 +0100
@@ -128,6 +128,21 @@
AC_SUBST(GLIB_GENMARSHAL)
])
+AC_DEFUN([AC_VISIBILITY], [
+ case $host in
+ *-*-mingw32*)
+ AC_SUBST(CFLAG_VISIBILITY)
+ if (test "${enable_shared}" = "no"); then
+ OPENOBEX_CFLAGS="-DOBEX_STATIC_LIB"
+ fi
+ AC_SUBST(OPENOBEX_CFLAGS)
+ ;;
+ *)
+ gl_VISIBILITY
+ ;;
+ esac
+])
+
AC_DEFUN([AC_ARG_OPENOBEX], [
fortify_enable=yes
irda_enable=yes
Index: openobex-anoncvs/openobex.pc.in
===================================================================
--- openobex-anoncvs.orig/openobex.pc.in 2007-01-24 22:16:52.352895027 +0100
+++ openobex-anoncvs/openobex.pc.in 2007-01-25 23:57:59.906638862 +0100
@@ -9,3 +9,4 @@
Requires.private: @REQUIRES@
Libs: -L${libdir} -lopenobex
Cflags: -I${includedir}
+Cflags.private: @OPENOBEX_CFLAGS@
Index: openobex-anoncvs/include/Makefile.am
===================================================================
--- openobex-anoncvs.orig/include/Makefile.am 2007-01-26 00:02:27.359353612 +0100
+++ openobex-anoncvs/include/Makefile.am 2007-01-26 00:29:50.410037862 +0100
@@ -5,8 +5,14 @@
MAINTAINERCLEANFILES = Makefile.in
-all-local:
- @if [ ! -e openobex ] ; then $(LN_S) $(top_srcdir)/include openobex ; fi
+openobex:
+ @mkdir $@
+
+openobex/%: openobex %
+ @cp $* $@
+
+all-local: $(patsubst %, openobex/%, $(include_HEADERS))
clean-local:
- @rm -f openobex
+ @rm -f $(patsubst %, openobex/%, $(include_HEADERS))
+ @-rmdir openobex
Index: openobex-anoncvs/configure.in
===================================================================
--- openobex-anoncvs.orig/configure.in 2007-01-28 10:11:18.413465398 +0100
+++ openobex-anoncvs/configure.in 2007-01-28 10:11:36.234579148 +0100
@@ -1,14 +1,14 @@
-AC_PREREQ(2.50)
-AC_INIT()
+AC_PREREQ(2.61)
+AC_INIT
AM_INIT_AUTOMAKE(openobex, 1.3)
-AM_CONFIG_HEADER(config.h)
+AC_CONFIG_HEADERS([config.h])
AM_MAINTAINER_MODE
AC_INIT_OPENOBEX
-AC_LANG_C
+AC_LANG([C])
AC_PROG_CC
AC_PROG_CC_PIE
@@ -32,4 +32,5 @@
AC_ARG_OPENOBEX
-AC_OUTPUT(Makefile include/Makefile lib/Makefile glib/Makefile apps/Makefile ircp/Makefile doc/Makefile openobex.pc openobex-glib.pc)
+AC_CONFIG_FILES([Makefile include/Makefile lib/Makefile glib/Makefile apps/Makefile ircp/Makefile doc/Makefile openobex.pc openobex-glib.pc])
+AC_OUTPUT
Index: openobex-anoncvs/apps/Makefile.am
===================================================================
--- openobex-anoncvs.orig/apps/Makefile.am 2007-01-28 10:11:35.966562398 +0100
+++ openobex-anoncvs/apps/Makefile.am 2007-01-28 10:11:36.242579648 +0100
@@ -20,7 +20,7 @@
LDADD = libmisc.a $(top_builddir)/lib/libopenobex.la
-INCLUDES = @BLUETOOTH_CFLAGS@ -I$(top_builddir)/include
+AM_CPPFLAGS = @BLUETOOTH_CFLAGS@ -I$(top_builddir)/include
endif
MAINTAINERCLEANFILES = Makefile.in
Index: openobex-anoncvs/doc/Makefile.am
===================================================================
--- openobex-anoncvs.orig/doc/Makefile.am 2007-01-28 10:11:18.517471898 +0100
+++ openobex-anoncvs/doc/Makefile.am 2007-01-28 10:11:36.266581148 +0100
@@ -1,17 +1,17 @@
-TOPDIR := ..
+TOPDIR=..
export TOPDIR
-pdf: openobex.pdf
-ps: openobex.ps
-html: openobex
+pdf-local: openobex.pdf
+ps-local: openobex.ps
+html-local: openobex
openobex.sgml: openobex.tmpl docproc ../lib/obex.c
$(top_srcdir)/doc/docproc <$< >$@
-clean:
+clean-local:
-$(RM) openobex.sgml openobex.dvi openobex.ps openobex.tex openobex.log openobex.aux openobex.pdf
-$(RM) -rf openobex
-
+
%.ps : %.sgml
@(which docbook2ps > /dev/null 2>&1) || \
(echo "*** You need to install DocBook stylesheets ***"; \
Index: openobex-anoncvs/glib/Makefile.am
===================================================================
--- openobex-anoncvs.orig/glib/Makefile.am 2007-01-28 10:11:36.094570398 +0100
+++ openobex-anoncvs/glib/Makefile.am 2007-01-28 10:11:36.298583148 +0100
@@ -27,7 +27,7 @@
AM_CFLAGS = @GLIB_CFLAGS@
-INCLUDES = -I$(top_builddir)/include
+AM_CPPFLAGS = -I$(top_builddir)/include
EXTRA_DIST = obex-marshal.list
Index: openobex-anoncvs/ircp/Makefile.am
===================================================================
--- openobex-anoncvs.orig/ircp/Makefile.am 2007-01-28 10:11:36.010565148 +0100
+++ openobex-anoncvs/ircp/Makefile.am 2007-01-28 10:11:36.322584648 +0100
@@ -15,7 +15,7 @@
LDADD = libircp.a $(top_builddir)/lib/libopenobex.la
-INCLUDES = -I$(top_builddir)/include
+AM_CPPFLAGS = -I$(top_builddir)/include
endif
MAINTAINERCLEANFILES = Makefile.in
Index: openobex-anoncvs/lib/Makefile.am
===================================================================
--- openobex-anoncvs.orig/lib/Makefile.am 2007-01-28 10:11:18.677481898 +0100
+++ openobex-anoncvs/lib/Makefile.am 2007-01-28 10:11:36.386588648 +0100
@@ -26,7 +26,7 @@
libopenobex_la_LIBADD = @USB_LIBS@ @EXTRA_LIBS@
-INCLUDES = -I$(top_builddir)/include
+AM_CPPFLAGS = -I$(top_builddir)/include
EXTRA_DIST = obex.sym win32compat.c
Index: openobex-anoncvs/acinclude.m4
===================================================================
--- openobex-anoncvs.orig/acinclude.m4 2007-01-28 10:11:35.494532898 +0100
+++ openobex-anoncvs/acinclude.m4 2007-01-28 10:11:36.406589898 +0100
@@ -55,12 +55,17 @@
AC_DEFUN([AC_PATH_IRDA_LINUX], [
AC_CACHE_CHECK([for IrDA support], irda_found, [
- AC_TRY_COMPILE([
- #include <sys/socket.h>
- #include "lib/irda.h"
- ], [
- struct irda_device_list l;
- ], irda_found=yes, irda_found=no)
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE(
+ [[
+ #include <sys/socket.h>
+ #include "lib/irda.h"
+ ]],
+ [[
+ struct irda_device_list l;
+ ]]),
+ [irda_found=yes],
+ [irda_found=no]
+ )
])
])
@@ -105,21 +110,31 @@
AC_DEFUN([AC_PATH_NETBSDBT], [
AC_CACHE_CHECK([for NetBSD Bluetooth support], netbsdbt_found, [
- AC_TRY_COMPILE([
- #include <bluetooth.h>
- ], [
- struct sockaddr_bt *bt;
- ], netbsdbt_found=yes, netbsdbt_found=no)
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE(
+ [[
+ #include <bluetooth.h>
+ ]],
+ [[
+ struct sockaddr_bt *bt;
+ ]]),
+ [netbsdbt_found=yes],
+ [netbsdbt_found=no]
+ )
])
])
AC_DEFUN([AC_PATH_FREEBSDBT], [
AC_CACHE_CHECK([for FreeBSD Bluetooth support], freebsdbt_found, [
- AC_TRY_COMPILE([
- #include <bluetooth.h>
- ], [
- struct sockaddr_rfcomm *rfcomm;
- ], freebsdbt_found=yes, freebsdbt_found=no)
+ AC_COMPILE_IFELSE(AC_LANG_SOURCE(
+ [[
+ #include <bluetooth.h>
+ ]],
+ [[
+ struct sockaddr_rfcomm *rfcomm;
+ ]]),
+ [freebsdbt_found=yes],
+ [freebsdbt_found=no]
+ )
])
])
@@ -208,39 +223,39 @@
syslog_enable=no
dump_enable=no
- AC_ARG_ENABLE(fortify, AC_HELP_STRING([--disable-fortify], [disable compile time buffer checks]), [
+ AC_ARG_ENABLE(fortify, AS_HELP_STRING([--disable-fortify], [disable compile time buffer checks]), [
fortify_enable=${enableval}
])
- AC_ARG_ENABLE(irda, AC_HELP_STRING([--disable-irda], [disable IrDA support]), [
+ AC_ARG_ENABLE(irda, AS_HELP_STRING([--disable-irda], [disable IrDA support]), [
irda_enable=${enableval}
])
- AC_ARG_ENABLE(bluetooth, AC_HELP_STRING([--disable-bluetooth], [disable Bluetooth support]), [
+ AC_ARG_ENABLE(bluetooth, AS_HELP_STRING([--disable-bluetooth], [disable Bluetooth support]), [
bluetooth_enable=${enableval}
])
- AC_ARG_ENABLE(usb, AC_HELP_STRING([--disable-usb], [disable USB support]), [
+ AC_ARG_ENABLE(usb, AS_HELP_STRING([--disable-usb], [disable USB support]), [
usb_enable=${enableval}
])
- AC_ARG_ENABLE(glib, AC_HELP_STRING([--enable-glib], [enable GLib bindings]), [
+ AC_ARG_ENABLE(glib, AS_HELP_STRING([--enable-glib], [enable GLib bindings]), [
glib_enable=${enableval}
])
- AC_ARG_ENABLE(apps, AC_HELP_STRING([--enable-apps], [enable test applications]), [
+ AC_ARG_ENABLE(apps, AS_HELP_STRING([--enable-apps], [enable test applications]), [
apps_enable=${enableval}
])
- AC_ARG_ENABLE(debug, AC_HELP_STRING([--enable-debug], [enable compiling with debugging information]), [
+ AC_ARG_ENABLE(debug, AS_HELP_STRING([--enable-debug], [enable compiling with debugging information]), [
debug_enable=${enableval}
])
- AC_ARG_ENABLE(syslog, AC_HELP_STRING([--enable-syslog], [enable debugging to the system logger]), [
+ AC_ARG_ENABLE(syslog, AS_HELP_STRING([--enable-syslog], [enable debugging to the system logger]), [
syslog_enable=${enableval}
])
- AC_ARG_ENABLE(dump, AC_HELP_STRING([--enable-dump], [enable protocol dumping for debugging]), [
+ AC_ARG_ENABLE(dump, AS_HELP_STRING([--enable-dump], [enable protocol dumping for debugging]), [
dump_enable=${enableval}
])
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Openobex-users mailing list
[email protected]
http://lists.sourceforge.net/lists/listinfo/openobex-users