WIN32 fixes, still not working
authorAndreas Tonnesen <andreto@olsr.org>
Mon, 30 May 2005 14:32:00 +0000 (14:32 +0000)
committerAndreas Tonnesen <andreto@olsr.org>
Mon, 30 May 2005 14:32:00 +0000 (14:32 +0000)
src/olsr_switch/Makefile
src/olsr_switch/main.c

index 31d9928..027eaca 100644 (file)
@@ -2,16 +2,25 @@
 CC ?= gcc
 BINNAME = olsr_switch
 INCLUDES += -I./..
-CFLAGS = -g $(INCLUDES)
-LDFLAGS =
+CFLAGS += -O2 -g $(INCLUDES)
+LDFLAGS +=
 TOPDIR = ../../
 
 SRCS = $(wildcard *.c)
 HDRS = $(wildcard *.h)
 OBJS = $(patsubst %.c,%.o,$(SRCS))
 
+ifdef WIN32
+BINNAME = olsr_switch.exe
+CFLAGS += -DWIN32 -mno-cygwin
+INCLUDES += -I./../win32/
+SRCS +=        $(TOPDIR)src/win32/compat.c
+OBJS +=        $(TOPDIR)src/win32/compat.o
+LIBS += -mno-cygwin -lws2_32 -liphlpapi
+endif
+
 all:   $(OBJS)
-       $(CC) $(LDFLAGS) -o $(TOPDIR)$(BINNAME) $(OBJS)
+       $(CC) $(LDFLAGS) $(LIBS) -o $(TOPDIR)$(BINNAME) $(OBJS)
 
 clean:
        rm -f *.o
index 5fa8dbf..fa57e15 100644 (file)
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: main.c,v 1.1 2005/05/30 13:13:47 kattemat Exp $
+ * $Id: main.c,v 1.2 2005/05/30 14:32:00 kattemat Exp $
  */
 
 /* olsrd host-switch daemon */
 
+#ifdef WIN32
+#define close(x) closesocket(x)
+int __stdcall SignalHandler(unsigned long signal);
+#else
+static void
+olsr_shutdown(int);
+#endif
+
 #include "olsr_host_switch.h"
 #include "link_rules.h"
 #include <sys/types.h>
@@ -93,8 +101,13 @@ olsr_ip_to_string(union olsr_ip_addr *addr)
 }
 
 
+#ifdef WIN32
+int __stdcall
+SignalHandler(unsigned long signal)
+#else
 static void
 ohs_close(int signal)
+#endif
 {
   printf("OHS: exit\n");
 
@@ -357,9 +370,12 @@ main(int argc, char *argv[])
   ipsize = 4;
 
   ohs_init_connect_sockets();
-
+#ifdef WIN32
+  SetConsoleCtrlHandler(SignalHandler, OLSR_TRUE);
+#else
   signal(SIGINT, ohs_close);  
   signal(SIGTERM, ohs_close);  
+#endif
 
   ohs_configure();