summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfcolin2011-11-02 16:53:03 +0000
committerfcolin2011-11-02 16:53:03 +0000
commit3dc2483a30234be5b3fb4cd5f1f2c515089d3e24 (patch)
tree1531fdeb7ac47b02f6a5a98f9eb06b09b4f292e7
parentcbc77d2b7cbf19c2eb80bfe0b6100a0b9b8c1f06 (diff)
downloadivy-c-3dc2483a30234be5b3fb4cd5f1f2c515089d3e24.zip
ivy-c-3dc2483a30234be5b3fb4cd5f1f2c515089d3e24.tar.gz
ivy-c-3dc2483a30234be5b3fb4cd5f1f2c515089d3e24.tar.bz2
ivy-c-3dc2483a30234be5b3fb4cd5f1f2c515089d3e24.tar.xz
Update to compile under MinGW
-rw-r--r--src/Makefile.mingw54
-rw-r--r--src/Makefile.win322
-rw-r--r--src/ivy.c7
-rw-r--r--src/ivysocket.c4
4 files changed, 46 insertions, 21 deletions
diff --git a/src/Makefile.mingw b/src/Makefile.mingw
index 40ae777..3080ba7 100644
--- a/src/Makefile.mingw
+++ b/src/Makefile.mingw
@@ -18,8 +18,8 @@
MAJOR=3
MINOR=11
-RM=del
-#RM=rm -f
+#RM=del
+RM=rm -f
XTINC =
XTLIB =
GTKINC = `gtk-config --cflags`
@@ -28,27 +28,44 @@ GLUTINC = -I/usr/include -I.
GLUTLIB = -L.
TCLINCL = -I/usr/include/tcl8.4
TCLLIB = -ltcl84
-
-REGCOMP_OPT=REG_ICASE
+PCREINC = $(shell pcre-config --cflags)
+PCRELIB = $(shell pcre-config --libs)
+#PCREINSTALLDIR = c:\temp\GnuWin32
+#PCREINC = -I$(PCREINSTALLDIR)\include
+#PCRELIB = -L$(PCREINSTALLDIR)\lib -lpcre
+CASESENSITIVE = "yes"
+ifeq ($(CASESENSITIVE), "no")
+ PCRE_OPT=PCRE_CASELESS
+ REGCOMP_OPT=REG_ICASE
+else
+ PCRE_OPT=0
+ REGCOMP_OPT=REG_EXTENDED
+endif
+
+
+#REGEXP = -DGNU_REGEXP -DREGCOMP_OPT=$(REGCOMP_OPT) # deprecated !
+REGEXP= -DUSE_PCRE_REGEX -DPCRE_OPT=$(PCRE_OPT)
TOOLS_DIR = ../tools
CC=gcc
-CFLAGS = -g -DREGCOMP_OPT=$(REGCOMP_OPT)
+CFLAGS = -DWIN32 -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 $(REGEXP) $(PCREINC)
# IVY full debug
-#CFLAGS = -g -DDEBUG
-OBJ = ivyloop.o timer.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
-GOBJ = ivyloop.o timer.o ivysocket.o givy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
-XTOBJ = ivyxtloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
-GLIBOBJ = ivyglibloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
-GLUTOBJ = ivyglutloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
-TCLOBJ = ivytcl.o timer.o ivysocket.o givy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o
+#CFLAGS = -g -DDEBUG -DWIN32 -DWINVER=0x0601 -D_WIN32_WINNT=0x0601 $(REGEXP) $(PCREINC)
+OBJ = ivyloop.o timer.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+GOBJ = ivyloop.o timer.o ivysocket.o givy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+XTOBJ = ivyxtloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+GLIBOBJ = ivyglibloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+GLUTOBJ = ivyglutloop.o ivysocket.o ivy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
+TCLOBJ = ivytcl.o timer.o ivysocket.o givy.o ivybuffer.o ivyfifo.o ivybind.o intervalRegexp.o param.o
# not yiet ivygtkprobe ivyxtprobe need Modified Glut ivyglutprobe
+# Export all variables (Petr Mejzlik)
+export
.c.o:
$(CC) $(CFLAGS) -c $*.c
-all: static-libs shared-libs
+all: static-libs shared-libs tools
static-libs: libivy.a libgivy.a
#static-libs: libivy.a libgivy.a libtclivy.a
@@ -71,7 +88,7 @@ ivygtkloop.o: ivygtkloop.c ivygtkloop.h
$(CC) -c $(CFLAGS) $(GTKINC) -o ivygtkloop.o ivygtkloop.c
ivyprobe: ivyprobe.o libivy.a
- $(CC) $(CFLAGS) -o ivyprobe ivyprobe.o -L. -livy -lwsock32 -lregex
+ $(CC) $(CFLAGS) -o ivyprobe ivyprobe.o -L. -livy -lwsock32 $(PCRELIB)
ivyxtprobe.o : ivyprobe.c
$(CC) $(CFLAGS) -c ivyprobe.c -o ivyxtprobe.o $(XTINC) -DXTMAINLOOP
@@ -116,10 +133,10 @@ libtclivy.a: $(TCLOBJ)
ar cq $@ $(TCLOBJ)
libivy.so.$(MAJOR).$(MINOR): $(OBJ)
- $(CC) -shared -Wl,-soname,libivy.so.$(MAJOR) -o $@ $(OBJ) -lwsock32 -lregex
+ $(CC) -shared -Wl,-soname,libivy.so.$(MAJOR) -o $@ $(OBJ) -lws2_32 $(PCRELIB)
libgivy.so.$(MAJOR).$(MINOR): $(GOBJ)
- $(CC) -shared -Wl,-soname,libgivy.so.$(MAJOR) -o $@ $(GOBJ) -lwsock32 -lregex
+ $(CC) -shared -Wl,-soname,libgivy.so.$(MAJOR) -o $@ $(GOBJ) -lws2_32 $(PCRELIB)
libxtivy.so.$(MAJOR).$(MINOR): $(XTOBJ)
$(CC) -shared -Wl,-soname,libxtivy.so.$(MAJOR) -o $@ \
@@ -135,7 +152,7 @@ libglutivy.so.$(MAJOR).$(MINOR): $(GTKOBJ)
libtclivy.so.$(MAJOR).$(MINOR): $(TCLOBJ)
$(CC) -shared -Wl,-soname,libtclivy.so.$(MAJOR) -o $@ \
- $(TCLOBJ) $(TCLLIB) -lwsock32 -lregex
+ $(TCLOBJ) $(TCLLIB) -lws2_32 $(PCRELIB)
clean:
-$(RM) *.o *.a *.so *.so.* *~
@@ -187,7 +204,8 @@ installdocs:
done
install: installlibs installbins installliblinks installdocs
-tools: static-libs libomp
+
+tools: static-libs
@(cd $(TOOLS_DIR) && $(MAKE) -f Makefile.mingw)
rpm::
diff --git a/src/Makefile.win32 b/src/Makefile.win32
index 865c461..eba91cc 100644
--- a/src/Makefile.win32
+++ b/src/Makefile.win32
@@ -49,7 +49,7 @@ REGEXP= /DUSE_PCRE_REGEX /DPCRE_OPT=$(PCRE_OPT)
# see below
CHANNEL = -DTCL_CHANNEL_INTEGRATION
-OBJ = intervalRegexp.obj ivyloop.obj timer.obj ivysocket.obj ivy.obj \
+OBJ = intervalRegexp.obj ivyloop.obj timer.obj ivysocket.obj ivy.obj param.obj\
ivybuffer.obj ivyfifo.obj ivybind.obj
# WINDOWS add ivyloop.obj if TCL_CHANNEL_INTEGRATION is not set
diff --git a/src/ivy.c b/src/ivy.c
index d784f50..a87d24e 100644
--- a/src/ivy.c
+++ b/src/ivy.c
@@ -28,6 +28,13 @@
#include <Ws2tcpip.h>
#include <windows.h>
#define snprintf _snprintf
+#ifdef __MINGW32__
+// should be removed in when defined in MinGW include of ws2tcpip.h
+extern const char * WSAAPI inet_ntop(int af, const void *src,
+ char *dst, socklen_t size);
+extern int WSAAPI inet_pton(int af, const char *src, void *dst);
+
+#endif
#else
#include <sys/time.h>
#include <arpa/inet.h>
diff --git a/src/ivysocket.c b/src/ivysocket.c
index ba1becc..a717660 100644
--- a/src/ivysocket.c
+++ b/src/ivysocket.c
@@ -245,7 +245,7 @@ static void HandleServer(Channel channel, IVY_HANDLE fd, void *data)
#else
long socketFlag;
#endif
- TRACE( "Accepting Connection...\n");
+ TRACE( "Accepting Connection...\n", );
addrlen = sizeof (remote );
if ((ns = accept (fd, (struct sockaddr*)&remote, &addrlen)) <0)
{
@@ -253,7 +253,7 @@ static void HandleServer(Channel channel, IVY_HANDLE fd, void *data)
return;
};
- TRACE( "Accepting Connection ret\n");
+ TRACE( "Accepting Connection ret\n", );
IVY_LIST_ADD_START (clients_list, client );