From: Tor Lillqvist Date: Fri, 9 Mar 2001 21:23:33 +0000 (+0000) Subject: Cygwin support contributed by Stefan Ondrejicka . X-Git-Url: http://git.openbox.org/?a=commitdiff_plain;h=31c5b1899ddd9eecea5065f5b9004413b72a0f2c;p=dana%2Fcg-glib.git Cygwin support contributed by Stefan Ondrejicka . 2001-02-21 Tor Lillqvist Cygwin support contributed by Stefan Ondrejicka . Hopefully I got it all in while simultaneously adding support for auto*/libtool for mingw. * Makefile.am: Changes for auto* support on Cygwin and Win32. Do still distribute the hand-written makefiles and *.win32.in files, though. Use GIO, GSPAWN and PLATFORMDEP macros set by configure. Use -no-undefined. Pass -export-symbols glib.def to libtool. * configure.in: Define G_PLATFORM_WIN32 on both pure Win32 (mingw) and Cygwin. Add AC_CYGWIN, AC_EXEEXT and AC_LIBTOOL_WIN32_DLL calls for Cygwin and mingw support. Check for %I64u guint64 format (in MS C library). Set G_MODULE_IMPL on mingw and Cygwin. Use ac_object and ac_exeext. Set GIO, GSPAWN, PLATFORMDEP and G_LIBS_EXTRA. Compile timeloop only on Unix. Define OS_WIN32 automake conditional on Win32. * glib.h: Include gwin32.h also on Cygwin. * gfileutils.c (get_contents_posix): Use O_BINARY (defined as 0 on Unix) for Cygwin's sake. * gtimer.c (GETTIME): Reduce #ifdefs, use a macro GETTIME(). * gconvert.c * gthread.c * gutf8.c * gutils.c: For code needed both on Cygwin and native Win32, test for G_PLATFORM_WIN32. * gmarkup.h: Use G_BEGIN_DECLS and G_END_DECLS. * gtypes.h: Refine GLIB_VAR definition. Also check for DLL_EXPORT in case compiling a static library on Win32 or Cygwin. * gwin32.c: No on Cygwin. No need for ftruncate() or dirent emulation on Cygwin. (get_package_directory_from_module) Convert return value from GetModuleFileName() to POSIX path on Cygwin. * tests/Makefile.am (progs_LDADD): Link with libglib, libgthread and libgmodule as appropriate. Use -no-undefined. * gbacktrace.c: Move #ifdefs around a bit on Win32. * gshell.c (unquote_string_inplace): Make static. --- diff --git a/glib.def b/glib.def index a184f3c5..62012cdb 100644 --- a/glib.def +++ b/glib.def @@ -233,6 +233,7 @@ EXPORTS g_locale_to_utf8 g_log g_log_default_handler + g_log_domain_glib g_log_remove_handler g_log_set_always_fatal g_log_set_fatal_mask diff --git a/glib.h b/glib.h index 689f2e86..937e3191 100644 --- a/glib.h +++ b/glib.h @@ -68,7 +68,7 @@ #include #include #include -#ifdef G_OS_WIN32 +#ifdef G_PLATFORM_WIN32 #include #endif diff --git a/glib/glib.def b/glib/glib.def index a184f3c5..62012cdb 100644 --- a/glib/glib.def +++ b/glib/glib.def @@ -233,6 +233,7 @@ EXPORTS g_locale_to_utf8 g_log g_log_default_handler + g_log_domain_glib g_log_remove_handler g_log_set_always_fatal g_log_set_fatal_mask diff --git a/glib/glib.h b/glib/glib.h index 689f2e86..937e3191 100644 --- a/glib/glib.h +++ b/glib/glib.h @@ -68,7 +68,7 @@ #include #include #include -#ifdef G_OS_WIN32 +#ifdef G_PLATFORM_WIN32 #include #endif diff --git a/glib/gmarkup.h b/glib/gmarkup.h index 57a7c1e3..396e158a 100644 --- a/glib/gmarkup.h +++ b/glib/gmarkup.h @@ -23,10 +23,7 @@ #include -#ifdef __cplusplus -extern "C" -{ -#endif +G_BEGIN_DECLS typedef enum { @@ -120,10 +117,7 @@ void g_markup_parse_context_get_position (GMarkupParseContext *c gchar* g_markup_escape_text (const gchar *text, gint length); - -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __G_MARKUP_H__ */ diff --git a/glib/gmessages.c b/glib/gmessages.c index 93122e52..c8ec37bd 100644 --- a/glib/gmessages.c +++ b/glib/gmessages.c @@ -91,6 +91,7 @@ static GPrivate* g_log_depth = NULL; #ifdef G_OS_WIN32 # define STRICT # include +# undef STRICT # include /* For _getpid() */ static gboolean alloc_console_called = FALSE; diff --git a/glib/gmessages.h b/glib/gmessages.h index a33657f0..aa10eaf3 100644 --- a/glib/gmessages.h +++ b/glib/gmessages.h @@ -71,7 +71,7 @@ typedef void (*GLogFunc) (const gchar *log_domain, /* Logging mechanism */ -extern const gchar *g_log_domain_glib; +GLIB_VAR const gchar *g_log_domain_glib; guint g_log_set_handler (const gchar *log_domain, GLogLevelFlags log_levels, GLogFunc log_func, diff --git a/glib/gshell.c b/glib/gshell.c index 0fe2fcdf..79db9d36 100644 --- a/glib/gshell.c +++ b/glib/gshell.c @@ -46,7 +46,7 @@ g_shell_error_quark (void) * Otherwise double quotes preserve things literally. */ -gboolean +static gboolean unquote_string_inplace (gchar* str, gchar** end, GError** err) { gchar* dest; diff --git a/glib/gspawn-win32-helper.c b/glib/gspawn-win32-helper.c index 08aeb448..6eebba51 100644 --- a/glib/gspawn-win32-helper.c +++ b/glib/gspawn-win32-helper.c @@ -19,6 +19,8 @@ * Boston, MA 02111-1307, USA. */ +#undef G_LOG_DOMAIN +#include "glib.h" #define GSPAWN_HELPER #include "gspawn-win32.c" /* For shared definitions */ diff --git a/glib/gstrfuncs.c b/glib/gstrfuncs.c index cf9defb7..0efc262e 100644 --- a/glib/gstrfuncs.c +++ b/glib/gstrfuncs.c @@ -677,11 +677,11 @@ g_strsignal (gint signum) #ifdef HAVE_STRSIGNAL #if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -extern const char * strsignal(int); -#else /* !G_OS_BEOS */ +extern const char *strsignal(int); +#else /* this is declared differently (const) in string.h on BeOS */ extern char *strsignal (int sig); -#endif /* !G_OS_BEOS */ +#endif /* !G_OS_BEOS && !G_WITH_CYGWIN */ return strsignal (signum); #elif NO_SYS_SIGLIST switch (signum) diff --git a/glib/gthread.c b/glib/gthread.c index 4393e8dd..ef0f3c8e 100644 --- a/glib/gthread.c +++ b/glib/gthread.c @@ -111,7 +111,7 @@ static GSystemThread zero_thread; /* This is initialized to all zero */ gboolean g_thread_use_default_impl = TRUE; gboolean g_threads_got_initialized = FALSE; -#if defined(G_OS_WIN32) && defined(__GNUC__) +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) __declspec(dllexport) #endif GThreadFunctions g_thread_functions_for_glib_use = { diff --git a/gmarkup.h b/gmarkup.h index 57a7c1e3..396e158a 100644 --- a/gmarkup.h +++ b/gmarkup.h @@ -23,10 +23,7 @@ #include -#ifdef __cplusplus -extern "C" -{ -#endif +G_BEGIN_DECLS typedef enum { @@ -120,10 +117,7 @@ void g_markup_parse_context_get_position (GMarkupParseContext *c gchar* g_markup_escape_text (const gchar *text, gint length); - -#ifdef __cplusplus -} -#endif +G_END_DECLS #endif /* __G_MARKUP_H__ */ diff --git a/gmessages.c b/gmessages.c index 93122e52..c8ec37bd 100644 --- a/gmessages.c +++ b/gmessages.c @@ -91,6 +91,7 @@ static GPrivate* g_log_depth = NULL; #ifdef G_OS_WIN32 # define STRICT # include +# undef STRICT # include /* For _getpid() */ static gboolean alloc_console_called = FALSE; diff --git a/gmessages.h b/gmessages.h index a33657f0..aa10eaf3 100644 --- a/gmessages.h +++ b/gmessages.h @@ -71,7 +71,7 @@ typedef void (*GLogFunc) (const gchar *log_domain, /* Logging mechanism */ -extern const gchar *g_log_domain_glib; +GLIB_VAR const gchar *g_log_domain_glib; guint g_log_set_handler (const gchar *log_domain, GLogLevelFlags log_levels, GLogFunc log_func, diff --git a/gshell.c b/gshell.c index 0fe2fcdf..79db9d36 100644 --- a/gshell.c +++ b/gshell.c @@ -46,7 +46,7 @@ g_shell_error_quark (void) * Otherwise double quotes preserve things literally. */ -gboolean +static gboolean unquote_string_inplace (gchar* str, gchar** end, GError** err) { gchar* dest; diff --git a/gspawn-win32-helper.c b/gspawn-win32-helper.c index 08aeb448..6eebba51 100644 --- a/gspawn-win32-helper.c +++ b/gspawn-win32-helper.c @@ -19,6 +19,8 @@ * Boston, MA 02111-1307, USA. */ +#undef G_LOG_DOMAIN +#include "glib.h" #define GSPAWN_HELPER #include "gspawn-win32.c" /* For shared definitions */ diff --git a/gstrfuncs.c b/gstrfuncs.c index cf9defb7..0efc262e 100644 --- a/gstrfuncs.c +++ b/gstrfuncs.c @@ -677,11 +677,11 @@ g_strsignal (gint signum) #ifdef HAVE_STRSIGNAL #if defined(G_OS_BEOS) || defined(G_WITH_CYGWIN) -extern const char * strsignal(int); -#else /* !G_OS_BEOS */ +extern const char *strsignal(int); +#else /* this is declared differently (const) in string.h on BeOS */ extern char *strsignal (int sig); -#endif /* !G_OS_BEOS */ +#endif /* !G_OS_BEOS && !G_WITH_CYGWIN */ return strsignal (signum); #elif NO_SYS_SIGLIST switch (signum) diff --git a/gthread.c b/gthread.c index 4393e8dd..ef0f3c8e 100644 --- a/gthread.c +++ b/gthread.c @@ -111,7 +111,7 @@ static GSystemThread zero_thread; /* This is initialized to all zero */ gboolean g_thread_use_default_impl = TRUE; gboolean g_threads_got_initialized = FALSE; -#if defined(G_OS_WIN32) && defined(__GNUC__) +#if defined(G_PLATFORM_WIN32) && defined(__GNUC__) __declspec(dllexport) #endif GThreadFunctions g_thread_functions_for_glib_use = {