Commit 2e3a8c06 authored by Jean-Baptiste Kempf's avatar Jean-Baptiste Kempf

Contribs: port libupnp to mingw and make it compile

This is untested for the VLC module
parent fa0a0d80
......@@ -2407,9 +2407,18 @@ libupnp-$(UPNP_VERSION).tar.bz2:
libupnp: libupnp-$(UPNP_VERSION).tar.bz2
$(EXTRACT_BZ2)
patch -p0 < Patches/libupnp-mingw.patch
ifdef HAVE_WIN32
patch -p0 < Patches/libupnp-configure.patch
cd $@; libtoolize&& autoreconf
endif
ifdef HAVE_WIN32
LIBUPNP_ECFLAGS=-DPTW32_STATIC_LIB
endif
.libupnp: libupnp
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-samples --without-documentation --disable-webserver CFLAGS="$(CFLAGS) -O3" && make && make install)
(cd $<; $(HOSTCC) ./configure $(HOSTCONF) --prefix=$(PREFIX) --disable-samples --without-documentation --enable-static --disable-webserver CFLAGS="$(CFLAGS) -O3 -DUPNP_STATIC_LIB $(LIBUPNP_ECFLAGS)" && make && make install)
touch $@
CLEAN_FILE += .libupnp
......
--- libupnp.old/configure.ac 2008-04-25 13:41:16.000000000 +0200
+++ libupnp/configure.ac 2010-08-11 00:41:04.000000000 +0200
@@ -332,19 +332,13 @@
# so just abort if a header file is not found.
AC_CHECK_HEADERS(
[ \
- arpa/inet.h \
fcntl.h \
inttypes.h \
limits.h \
- netdb.h \
- netinet/in.h \
stdlib.h \
string.h \
- sys/ioctl.h \
- sys/socket.h \
sys/time.h \
sys/timeb.h \
- syslog.h \
unistd.h \
],
[],
@@ -370,39 +364,39 @@
# Checks for POSIX Threads
#
echo "--------------------------- pthread stuff -------------------------------------"
-ACX_PTHREAD(
- [],
- [AC_MSG_ERROR([POSIX threads are required to build this program])])
+#ACX_PTHREAD(
+# [],
+# [AC_MSG_ERROR([POSIX threads are required to build this program])])
#
# Update environment variables for pthreads
#
-CC="$PTHREAD_CC"
-CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
-LIBS="$PTHREAD_LIBS $LIBS"
+#CC="$PTHREAD_CC"
+#CFLAGS="$PTHREAD_CFLAGS $CFLAGS"
+#LIBS="$PTHREAD_LIBS $LIBS"
#
# Determine if pthread_rwlock_t is available
#
-echo "----------------------- pthread_rwlock_t stuff --------------------------------"
-AC_MSG_CHECKING([if pthread_rwlock_t is available])
-AC_LANG([C])
-AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [#include <pthread.h>],
- [pthread_rwlock_t *x;])],
- [AC_DEFINE([UPNP_USE_RWLOCK], [1], [Use pthread_rwlock_t])
- AC_MSG_RESULT([yes, supported without any options])],
- [AC_COMPILE_IFELSE(
- [AC_LANG_PROGRAM(
- [#define _GNU_SOURCE
- #include <pthread.h>],
- [pthread_rwlock_t *x;])],
- [AC_DEFINE([UPNP_USE_RWLOCK], [1], [Use pthread_rwlock_t])
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- AC_MSG_RESULT([yes, definition of _GNU_SOURCE required])],
- [AC_DEFINE([UPNP_USE_RWLOCK], [0], [Do not use pthread_rwlock_t])
- AC_MSG_RESULT([no, needs to fallback to pthread_mutex])
- AC_MSG_ERROR([pthread_rwlock_t not available])])])
-echo "-------------------------------------------------------------------------------"
+#echo "----------------------- pthread_rwlock_t stuff --------------------------------"
+#AC_MSG_CHECKING([if pthread_rwlock_t is available])
+#AC_LANG([C])
+#AC_COMPILE_IFELSE(
+# [AC_LANG_PROGRAM(
+# [#include <pthread.h>],
+# [pthread_rwlock_t *x;])],
+# [AC_DEFINE([UPNP_USE_RWLOCK], [1], [Use pthread_rwlock_t])
+# AC_MSG_RESULT([yes, supported without any options])],
+# [AC_COMPILE_IFELSE(
+# [AC_LANG_PROGRAM(
+# [#define _GNU_SOURCE
+# #include <pthread.h>],
+# [pthread_rwlock_t *x;])],
+# [AC_DEFINE([UPNP_USE_RWLOCK], [1], [Use pthread_rwlock_t])
+# CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+# AC_MSG_RESULT([yes, definition of _GNU_SOURCE required])],
+# [AC_DEFINE([UPNP_USE_RWLOCK], [0], [Do not use pthread_rwlock_t])
+# AC_MSG_RESULT([no, needs to fallback to pthread_mutex])
+# AC_MSG_ERROR([pthread_rwlock_t not available])])])
+#echo "-------------------------------------------------------------------------------"
AC_CONFIG_FILES([
--- libupnp.old/configure.ac 2010-08-11 00:41:04.000000000 +0200
+++ libupnp/configure.ac 2010-08-11 12:32:48.000000000 +0200
@@ -349,7 +349,7 @@
# Checks for typedefs, structures, and compiler characteristics
#
AC_C_CONST
-TYPE_SOCKLEN_T
+#TYPE_SOCKLEN_T
#
--- libupnp.old/upnp/inc/upnp.h 2008-03-09 01:54:58.000000000 +0100
+++ libupnp/upnp/inc/upnp.h 2010-08-11 12:40:37.000000000 +0200
@@ -74,14 +74,16 @@
typedef __int64 int64_t;
#define PRId64 "I64d"
#define PRIzu "lu"
- #endif
- #ifdef UPNP_USE_BCBPP
+ #elif defined UPNP_USE_BCBPP
/* define some things Borland Builder doesn't know */
#define UPNP_INLINE inline
typedef __int64 int64_t;
#warning The Borland C compiler is probably broken on PRId64, please someone provide a proper fix here
#define PRId64 "I64d"
#define PRIzu "zu"
+ #else
+ #define UPNP_INLINE inline
+ #define PRIzu "zu"
#endif
#else
#define EXPORT_SPEC
--- libupnp.old/upnp/src/inc/unixutil.h 2008-02-10 02:55:34.000000000 +0100
+++ libupnp/upnp/src/inc/unixutil.h 2010-08-11 12:48:37.000000000 +0200
@@ -38,7 +38,15 @@
#ifndef WIN32
#include <sys/socket.h>
#else
- typedef int socklen_t;
+ //typedef int socklen_t;
+ #if !defined(UNDER_CE)
+ # define _NO_OLDNAMES 1
+ # include <io.h>
+ #endif
+ #include <winsock2.h>
+ #include <ws2tcpip.h>
+ #define ENETUNREACH WSAENETUNREACH
+ #define net_errno (WSAGetLastError())
#define EAFNOSUPPORT 97
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment