* convert.c: include <string.h> for convert_i.c.
[bpt/guile.git] / libguile / guile.c
index b41318c..ae17a96 100644 (file)
@@ -1,4 +1,4 @@
-/*     Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996,1997,2000,2001 Free Software Foundation, Inc.
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
    based on the list of installed, statically linked libraries on the
    system.  For now, please don't put interesting code in here.  */
 
+#ifdef __MINGW32__
+# define SCM_IMPORT 1
+#endif
 #include <libguile.h>
 
+#ifdef HAVE_CONFIG_H
+#include <libguile/scmconfig.h>
+#endif
+#ifdef DYNAMIC_LINKING
+#include <libltdl/ltdl.h>
+#endif
+
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#endif
+
 /* Debugger interface (don't change the order of the following lines) */
 #define GDB_TYPE SCM
 #include <libguile/gdb_interface.h>
 GDB_INTERFACE;
 
 static void
-inner_main (void *closure, int argc, char **argv)
+inner_main (void *closure SCM_UNUSED, int argc, char **argv)
 {
+#ifdef __MINGW32__
+  /* This is necessary to startup the Winsock API under Win32. */
+  WSADATA WSAData;
+  WSAStartup (0x0202, &WSAData);
+  GDB_INTERFACE_INIT;
+#endif /* __MINGW32__ */
+
   /* module initializations would go here */
   scm_shell (argc, argv);
+
+#ifdef __MINGW32__
+  WSACleanup ();
+#endif /* __MINGW32__ */
 }
 
 int
 main (int argc, char **argv)
 {
+#if defined (DYNAMIC_LINKING) && !defined (__MINGW32__)
+  LTDL_SET_PRELOADED_SYMBOLS ();
+#endif
   scm_boot_guile (argc, argv, inner_main, 0);
   return 0; /* never reached */
 }
+
+/*
+  Local Variables:
+  c-file-style: "gnu"
+  End:
+*/