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

Reply via email to