From 06b4ef65174e56e766e4bde06e08e34c08788272 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Mon, 29 Oct 2001 07:06:37 +0000 Subject: [PATCH] Updates. 2001-10-29 Tor Lillqvist * README.win32: Updates. * gtk-zip.sh.in: New file, used to build distribution package for Windows. * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when applicable with GDKVAR. * gtk/gtk.def: Update. * gtk/gtkfilesel.c: Include (if available) for gethostname(). * gtk/gtkmain.c * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call g_win32_get_package_installation_subdirectory() with the actual DLL name saved above. Redefine above directory name macros to call these functions. Remove some ifdefs. * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks variable for export on Win32) also to the _vars file. Changes for autoconfiscated build on Win32, and addition of Win32 backend to the related files: * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use when forming DLL name in some files. Set MS_LIB_AVAILABLE is lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add win32 target, using pangowin32. Don't use the -export-symbols-regex option on Win32, we use .def files to list exported symbols. Check (for gethostname() in gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to prevent premature m4 expansion. * acconfig.h: Add HAVE_WINTAB. * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated macros and rules. Use -no-undefined on Win32. Use gdk.def file. If MS_LIB_AVAILABLE, build MS import library. Install the import libraries. If HAVE_WINTAB, link with the Wintab library. * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated macros and rules. Use -no-undefined on Win32. Use gtk-win32.def file. Install import libraries. --- ChangeLog | 86 ++++++++++++++++++++++++ ChangeLog.pre-2-0 | 86 ++++++++++++++++++++++++ ChangeLog.pre-2-10 | 86 ++++++++++++++++++++++++ ChangeLog.pre-2-2 | 86 ++++++++++++++++++++++++ ChangeLog.pre-2-4 | 86 ++++++++++++++++++++++++ ChangeLog.pre-2-6 | 86 ++++++++++++++++++++++++ ChangeLog.pre-2-8 | 86 ++++++++++++++++++++++++ Makefile.am | 1 + README.win32 | 78 +++++++++++++--------- acconfig.h | 1 + configure.in | 151 +++++++++++++++++++++++++++++++++--------- gdk/Makefile.am | 57 +++++++++++++++- gdk/gdkglobals.c | 2 +- gdk/makefile.mingw.in | 4 ++ gtk-zip.sh.in | 30 +++++++++ gtk/Makefile.am | 55 ++++++++++++++- gtk/gtk-win32.rc.in | 8 +-- gtk/gtk.def | 32 +++++---- gtk/gtkfilesel.c | 3 + gtk/gtkmain.c | 73 +++++++++++++++----- gtk/gtkprivate.h | 19 +++++- gtk/gtkrc.c | 39 ----------- gtk/makefile.mingw.in | 16 ++--- gtk/maketypes.awk | 2 +- 24 files changed, 1019 insertions(+), 154 deletions(-) create mode 100755 gtk-zip.sh.in diff --git a/ChangeLog b/ChangeLog index 681980af3..9a4d3894f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index 681980af3..9a4d3894f 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 681980af3..9a4d3894f 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index 681980af3..9a4d3894f 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 681980af3..9a4d3894f 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 681980af3..9a4d3894f 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 681980af3..9a4d3894f 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,89 @@ +2001-10-29 Tor Lillqvist + + * README.win32: Updates. + + * gtk-zip.sh.in: New file, used to build distribution package for + Windows. + + * gdk/gdkglobals.c: Mark gdk_threads_mutex for DLL export when + applicable with GDKVAR. + + * gdk/win32/libwntab32x.la: New file, hand-written wrapper for the + Wintab library. + + * gdk/win32/gdkwin32.h + * gdk/win32/gdkprivate-win32.h: Reorganise to match corresponding + X11 headers better, and to enable gdkwin32.h to be installed and + included from applications, but not the *-win32.h headers. + + * gdk/win32/*.c: Corresponding small changes, simplifications of + #includes. + + * gdk/win32/gdkregion-win32.c: Remove. + + * gdk/win32/gdkevents-win32.c (print_event): Add GDK_SETTING. + + * gdk/win32/gdkfont-win32.c + * gdk/win32/gdkgeometry-win32.c: Remove unused variables. + + * gdk/win32/gdkproperty-win32.c (gdk_atom_intern): Don't insert + GDK_NONE values into hash table. + + * gtk/gtk.def: Update. + + * gtk/gtkfilesel.c: Include (if available) for + gethostname(). + + * gtk/gtkmain.c + * gtk/gtkrc.c: (Win32) Save actual DLL name for later use in DLL + entry function. Avoid hardcoded paths GTK_LIBDIR, GTK_SYSCONFDIR, + GTK_DATA_PREFIX and GTK_LOCALEDIR, instead add functions that call + g_win32_get_package_installation_subdirectory() with the actual + DLL name saved above. Redefine above directory name macros to call + these functions. Remove some ifdefs. + + * gtk/maketypes.awk: Output GTKTYPEBUILTINS_VAR (that marks + variable for export on Win32) also to the _vars file. + + Changes for autoconfiscated build on Win32, and addition of Win32 + backend to the related files: + + * configure.in: Like in GLib, set LT_CURRENT_MINUS_AGE for use + when forming DLL name in some files. Set MS_LIB_AVAILABLE is + lib.exe is available. Call AC_LIBTOOL_WIN32_DLL. Set + PLATFORM_WIN32, OS_WIN32 and USE_WIN32 automake conditionals. Add + win32 target, using pangowin32. Don't use the + -export-symbols-regex option on Win32, we use .def files to list + exported symbols. Check (for gethostname() in + gtkfilesel.c). Enclose nested AC_CHECK_* macros in brackets to + prevent premature m4 expansion. + + * acconfig.h: Add HAVE_WINTAB. + + * gdk/Makefile.am: Add libgdk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gdk.def file. If + MS_LIB_AVAILABLE, build MS import library. Install the import + libraries. If HAVE_WINTAB, link with the Wintab library. + + * gdk/win32/Makefile.am: Actually enable building the win32 + objects here, not just list all files in EXTRA_DIST. Link in the + compiled resource file from rc/gdk-win32res.lo. If HAVE_WINTAB, + copy the Wintab library into the .libs directory. + + * gdk/win32/gdkwindow-win32.c (RegisterGdkClass): Don't assume the + name of the GDK DLL when fetching the icon. Use the HMODULE saved + in gdk_dll_hinstance by DllMain. + + * gdk/win32/rc/Makefile.am: Build gdk-win32res.lo using the + build/win32/lt-compile-resource script. + + * gdk/win32/rc/gdk.rc.in + * gtk/gtk-win32.rc.in: Use the DLL name that libtool would use. + + * gtk/Makefile.am: Add libgtk-win32-1.3.la target and associated + macros and rules. Use -no-undefined on Win32. Use gtk-win32.def + file. Install import libraries. + 2001-10-29 Anders Carlsson * gtk/gtkiconfactory.c (get_default_icons): Fix build. diff --git a/Makefile.am b/Makefile.am index adbb7c912..4dac8bafe 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,7 @@ EXTRA_DIST = \ README.win32 \ README.nanox \ config.h.win32 \ + gtk-zip.sh \ po/README.tools \ po/README.translators \ po/desk.pl \ diff --git a/README.win32 b/README.win32 index 63803e3d2..0c527f01a 100644 --- a/README.win32 +++ b/README.win32 @@ -1,7 +1,6 @@ -The Win32 port of GTk+ is a work in progress, and not as stable or +The Win32 port of GTK+ is a work in progress, and not as stable or correct as the Unix/X11 version. For more information about the Win32 -port, see http://www.gimp.org/win32/ or -http://www.iki.fi/tml/gimp/win32/ . +port, see http://www.gimp.org/win32/ . This (CVS HEAD) version of the Win32 backend does *not* necessarily even compile properly. There is a gtk-1-3-win32-production branch that @@ -11,38 +10,53 @@ until the CVS HEAD version is useable. (But note, the Win32 backend has never been claimed to be "production quality", although it works surprisingly well for the GIMP.) -To build GTk+ on Win32, you need either gcc-2.95 or later, or the -Microsoft compiler and tools. The mingw setup of gcc is preferred, but -you can run gcc also under cygwin-b20.1 or later. Compile in -gdk\win32, gdk and gtk with `make -f makefile.mingw` (gcc) or `nmake --f makefile.msc` (MSVC). The name makefile.mingw needs an explanation: -It refers to the target, not the build environment. As build -envíronment, only cygwin is tested. GNU Make is definitely needed. +There are two ways to build GTK+ for win32: -See the README.win32 file in the GLib distribution for instructions -how to build with gcc. +1) Use the autoconf-generated configure script, and the resulting +Makefiles (which use libtool and gcc to do the compilation). I use +this myself, but it might be hell to setup correctly. -To use GTk+ on Win32, you also need either one of the above mentioned -compilers. Other compilers might work, but don't count on it. The -same instructions on how to set up a correct version of gcc should -also be followed if you want to build applications that use GTk+ with -gcc. +2) Use the Microsoft compiler, cl and Make, nmake. Say nmake -f +makefile.msc in gdk and gtk. + +Alternative 1 also generates Microsoft import libraries (.lib), if you +have lib.exe available. It should also work for cross-compilation from +Unix. + +There are hand-written makefiles for mingw (look for makefile.mingw in +various directories), but those haven't been kept up-to-date, and +probably won't work without editing. Sorry. If you make them work +again, by all means do submit patches. + +Note that I use mainly gcc myself, and thus the build setup for +Microsoft's nmake and cl might be a bit rusty. Hans Breuer has been +taking care of those makefiles. At times, we disagree a bit, and the +msc makefiles might not produce compatible or identically named DLLs +and import libraries as the autoconfiscated makefiles and libtool do. + +To use GTK+ on Win32, you also need either one of the above mentioned +compilers. Other compilers might work, but don't count on it. The same +instructions on how to set up a correct version of gcc should also be +followed if you want to build applications that use GTk+ with gcc. For +prebuilt developer packages (DLLs, import libraries, headers), see the +above website. The tablet support uses the Wintab API. The Wintab development kit can -be downloaded from http://www.pointing.com. If you don't care for -that, undefine HAVE_WINTAB in config.h.win32 and remove references to -the wntab32x library from the makefile before building. +be downloaded from http://www.pointing.com. Pass the --with-wintab +flag to configure if you use that. If you use nmake and you don't care +for Wintab, undefine HAVE_WINTAB in config.h.win32 and remove +references to the wntab32x library from the makefile before building. -GTk+ wants to be built with the GNU "intl" library for +GTK wants to be built with the GNU "intl" library for internationalisation (i18n). Get the version ported to Win32 (not a -very big deal) from tml's web site mentioned above. We build the -"intl" library as a DLL called gnu-intl.dll (the "gnu" prefix is used -to reduce name clash risks). If you don't want any i18n stuff, -undefine ENABLE_NLS, HAVE_GETTEXT and HAVE_LIBINTL in the -config.h.win32 file, and remove references to the gnu-intl library -from the makefiles. - -Note that while the GNU gettext package is under the GPL license, the -"intl" part of it is also distributed as part of the GNU C library -(glibc) where it is under the LGPL license (as is GTk+ or GLib). We -want the LGPL licensed version. The code is more or less the same. +very big deal) from the web site mentioned above. The "intl" library +as gets built as a DLL called libintl-1.dll. If you don't want any +i18n stuff, undefine ENABLE_NLS, HAVE_GETTEXT and HAVE_LIBINTL in the +config.h.win32 file, and remove references to the intl library from +the makefiles. + +Note that while the GNU gettext package is under the GPL, the "intl" +part of it is under the LGPL (like GTK or GLib), as of +gettext-0.10.40. + +--Tor Lillqvist diff --git a/acconfig.h b/acconfig.h index 37cd31587..17b47293d 100644 --- a/acconfig.h +++ b/acconfig.h @@ -31,6 +31,7 @@ #undef HAVE_SHAPE_EXT #undef HAVE_SYS_SELECT_H #undef HAVE_SYS_TIME_H +#undef HAVE_WINTAB #undef HAVE_XCONVERTCASE #undef HAVE_XFT diff --git a/configure.in b/configure.in index 59370a7ae..051877e2a 100644 --- a/configure.in +++ b/configure.in @@ -53,10 +53,12 @@ LT_RELEASE=$GTK_MAJOR_VERSION.$GTK_MINOR_VERSION LT_CURRENT=`expr $GTK_MICRO_VERSION - $GTK_INTERFACE_AGE` LT_REVISION=$GTK_INTERFACE_AGE LT_AGE=`expr $GTK_BINARY_AGE - $GTK_INTERFACE_AGE` +LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` AC_SUBST(LT_RELEASE) AC_SUBST(LT_CURRENT) AC_SUBST(LT_REVISION) AC_SUBST(LT_AGE) +AC_SUBST(LT_CURRENT_MINUS_AGE) # Define a string for the earliest version that this release has # binary compatibility with. This is used for module locations. @@ -100,6 +102,7 @@ AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define) AM_CONFIG_HEADER(config.h) dnl Initialize libtool +AC_LIBTOOL_WIN32_DLL AM_PROG_LIBTOOL dnl Set AS and ASFLAGS so that automake 1.5 will be happy @@ -113,6 +116,35 @@ AM_MAINTAINER_MODE AC_CANONICAL_HOST +AC_MSG_CHECKING([for some Win32 platform]) +case "$host" in + *-*-mingw*|*-*-cygwin*) + platform_win32=yes + ;; + *) + platform_win32=no + ;; +esac +AC_MSG_RESULT([$platform_win32]) +AM_CONDITIONAL(PLATFORM_WIN32, test "$platform_win32" = "yes") + +AC_MSG_CHECKING([for native Win32]) +case "$host" in + *-*-mingw*) + os_win32=yes + ;; + *) + os_win32=no + ;; +esac +AC_MSG_RESULT([$os_win32]) +AM_CONDITIONAL(OS_WIN32, test "$os_win32" = "yes") + +if test "$os_win32" = "yes"; then + AC_CHECK_PROG(ms_librarian, lib.exe, yes, no) +fi +AM_CONDITIONAL(MS_LIB_AVAILABLE, test x$ms_librarian = xyes) + dnl figure debugging default, prior to $ac_help setup dnl GLIB_AC_DIVERT_BEFORE_HELP([ @@ -139,18 +171,29 @@ AC_ARG_ENABLE(rebuilds, [ --disable-rebuilds disable all source autogenera AC_ARG_WITH(xinput, [ --with-xinput=[no/gxi/xfree] support XInput ]) -gdktarget=x11 -gdktargetlib=libgdk-x11-1.3.la -gtktargetlib=libgtk-x11-1.3.la -AC_ARG_WITH(gdktarget, [ --with-gdktarget=[x11/linux-fb] select GDK target [default=x11] ], +AC_ARG_WITH(wintab, [ --with-wintab=DIRECTORY use Wintab API with win32 backend]) + +if test "$platform_win32" = yes; then + gdktarget=win32 +else + gdktarget=x11 +fi + +AC_ARG_WITH(gdktarget, [ --with-gdktarget=[x11/linux-fb/win32] select GDK target [default=$gdktarget]], gdktarget=$with_gdktarget) AC_SUBST(gdktarget) case $gdktarget in - x11|linux-fb) ;; - *) AC_MSG_ERROR([Invalid target for GDK: use x11 or linux-fb.]);; + x11|linux-fb|win32) ;; + *) AC_MSG_ERROR([Invalid target for GDK: use x11, linux-fb or win32.]);; esac +gdktargetlib=libgdk-$gdktarget-1.3.la +gtktargetlib=libgtk-$gdktarget-1.3.la + +AC_SUBST(gdktargetlib) +AC_SUBST(gtktargetlib) + AC_ARG_ENABLE(shadowfb, [ --disable-shadowfb disable shadowfb support for linux-fb],,enable_shadowfb=yes) AC_ARG_ENABLE(fbmanager, [ --enable-fbmanager enable framebuffer manager support (GtkFB)],enable_fbmanager=yes,enable_fbmanager=no) @@ -197,6 +240,13 @@ if test "x$GCC" = "xyes"; then *) CFLAGS="$CFLAGS -pedantic" ;; esac fi + + if test "$os_win32" = "yes"; then + case "$CC $CFLAGS " in + *[[\ \ ]]-fnative-struct[[\ \ ]]*) ;; + *) CFLAGS="$CFLAGS -fnative-struct" ;; + esac + fi fi changequote([,])dnl @@ -211,9 +261,14 @@ ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS" ## annoying to construct PKG_CHECK_MODULES(BASE_DEPENDENCIES, glib-2.0 >= $GLIB_REQUIRED_VERSION atk >= $ATK_REQUIRED_VERSION pango >= $PANGO_REQUIRED_VERSION) -# libtool option to control which symbols are exported -# right now, symbols starting with _ are not exported -LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' +if test "$os_win32" != yes; then + # libtool option to control which symbols are exported + # right now, symbols starting with _ are not exported + LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^_]].*"' +else + # We currently use .def files on Windows (for gdk-pixbuf, gdk and gtk) + LIBTOOL_EXPORT_OPTIONS= +fi AC_SUBST(LIBTOOL_EXPORT_OPTIONS) # define a MAINT-like variable REBUILD which is set if Perl @@ -325,6 +380,29 @@ AC_CHECK_HEADERS(dirent.h, AC_DEFINE(HAVE_DIRENT_H)) AC_CHECK_HEADERS(pwd.h, AC_DEFINE(HAVE_PWD_H)) AC_CHECK_HEADERS(sys/time.h, AC_DEFINE(HAVE_SYS_TIME_H)) AC_CHECK_HEADERS(unistd.h, AC_DEFINE(HAVE_UNISTD_H)) +AC_CHECK_HEADERS(winsock.h, AC_DEFINE(HAVE_WINSOCK_H)) +AC_CHECK_HEADERS(dimm.h, AC_DEFINE(HAVE_DIMM_H)) + +if test ${with_wintab+set} = set && test $with_wintab != no; then + AC_MSG_CHECKING([for wintab.h]) + saved_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -I$with_wintab/include" + AC_TRY_COMPILE([#include +#include ], + [], + [AC_MSG_RESULT(yes) + AC_CHECK_FILE([$with_wintab/lib/i386/wntab32x.lib], + [have_wintab=yes + AC_DEFINE(HAVE_WINTAB) + WINTAB_LIB="$with_wintab/lib/i386/wntab32x.lib" + AC_SUBST(WINTAB_LIB)], + [have_wintab=no]) + ], + [AC_MSG_RESULT(no) + have_wintab=no]) + CFLAGS="$saved_cflags" +fi +AM_CONDITIONAL(HAVE_WINTAB, test x$have_wintab = xyes) saved_cflags="$CFLAGS" saved_ldflags="$LDFLAGS" @@ -461,18 +539,18 @@ fi dnl Test for libtiff if test -z "$LIBTIFF"; then AC_CHECK_LIB(tiff, TIFFReadScanline, - AC_CHECK_HEADER(tiffio.h, + [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff', - AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)), - AC_CHECK_LIB(tiff, TIFFWriteScanline, - AC_CHECK_HEADER(tiffio.h, + AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))], + [AC_CHECK_LIB(tiff, TIFFWriteScanline, + [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff -ljpeg -lz', - AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)), - AC_CHECK_LIB(tiff34, TIFFFlushData, - AC_CHECK_HEADER(tiffio.h, + AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))], + [AC_CHECK_LIB(tiff34, TIFFFlushData, + [AC_CHECK_HEADER(tiffio.h, TIFF='tiff'; LIBTIFF='-ltiff34 -ljpeg -lz', - AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***)), - AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm), -ljpeg -lz -lm), -lm) + AC_MSG_WARN(*** TIFF loader will not be built (TIFF header files not found) ***))], + AC_MSG_WARN(*** TIFF plug-in will not be built (TIFF library not found) ***), -ljpeg -lz -lm)], -ljpeg -lz -lm)], -lm) fi dnl Test for libjpeg @@ -505,9 +583,9 @@ dnl Test for libjpeg dnl Test for libpng if test -z "$LIBPNG"; then AC_CHECK_LIB(png, png_read_info, - AC_CHECK_HEADER(png.h, + [AC_CHECK_HEADER(png.h, png_ok=yes, - png_ok=no), + png_ok=no)], AC_MSG_WARN(*** PNG loader will not be built (PNG library not found) ***), -lz -lm) if test "$png_ok" = yes; then AC_MSG_CHECKING([for png_structp in png.h]) @@ -828,15 +906,28 @@ if test "x$gdktarget" = "xx11"; then GDK_EXTRA_CFLAGS= GDK_EXTRA_LIBS="$x_extra_libs" - # these are already defined above - #gdktargetlib = "libgdk-x11-1.3.la" - #gtktargetlib = "libgtk-x11-1.3.la" - AM_CONDITIONAL(USE_X11, true) else AM_CONDITIONAL(USE_X11, false) fi +if test "x$gdktarget" = "xwin32"; then + # We start off with the libraries from Pango + + ## be sure we also have Pango built with win32 support + PANGO_PACKAGES="pangowin32" + + if test x$have_wintab = xyes; then + GDK_WIN32_EXTRA_CFLAGS="-I $with_wintab/include" + AC_SUBST(GDK_WIN32_EXTRA_CFLAGS) + fi + + GDK_EXTRA_LIBS="$GDK_EXTRA_LIBS -lgdi32 -user32 -limm32 -lshell32 -lole32 -luuid" + AM_CONDITIONAL(USE_WIN32, true) +else + AM_CONDITIONAL(USE_WIN32, false) +fi + AC_SUBST(xinput_progs) GDK_PIXBUF_XLIB_PACKAGES= @@ -850,9 +941,6 @@ AC_SUBST(GDK_PIXBUF_XLIB_DEP_LIBS) AC_SUBST(GDK_PIXBUF_XLIB_DEP_CFLAGS) if test "x$gdktarget" = "xlinux-fb"; then - gdktargetlib="libgdk-linux-fb-1.3.la" - gtktargetlib="libgtk-linux-fb-1.3.la" - AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) if test x$FREETYPE_CONFIG = xno ; then AC_MSG_ERROR([*** freetype-config not found]) @@ -882,9 +970,6 @@ else AM_CONDITIONAL(ENABLE_FB_MANAGER, false) fi -AC_SUBST(gdktargetlib) -AC_SUBST(gtktargetlib) - # # Pick correct Pango packages to use # @@ -895,6 +980,8 @@ if test "x$gdktarget" = "xx11"; then else PANGO_PACKAGES=pangox fi +elif test "x$gdktarget" = "xwin32"; then + PANGO_PACKAGES=pangowin32 elif test "x$gdktarget" = "xlinux-fb"; then PANGO_PACKAGES=pangoft2 else @@ -1099,6 +1186,9 @@ esac if test "x$gdktarget" = "xx11" ; then gdk_windowing=' #define GDK_WINDOWING_X11' +elif test "x$gdktarget" = "xwin32" ; then + gdk_windowing=' +#define GDK_WINDOWING_WIN32' elif test "x$gdktarget" = "xlinux-fb" ; then gdk_windowing=' #define GDK_WINDOWING_FB @@ -1126,6 +1216,7 @@ AM_CONDITIONAL(HAVE_SGML2HTML, ! test x$SGML2HTML = xno) AC_OUTPUT([ config.h.win32 +gtk-zip.sh gtk+.spec Makefile gdk-pixbuf-2.0.pc diff --git a/gdk/Makefile.am b/gdk/Makefile.am index a36f36afc..debc9860e 100644 --- a/gdk/Makefile.am +++ b/gdk/Makefile.am @@ -18,11 +18,48 @@ common_includes = @STRIP_BEGIN@ \ -I$(top_srcdir)/gdk-pixbuf \ @GTK_DEBUG_FLAGS@ \ @GDK_DEP_CFLAGS@ \ + -DGDK_COMPILATION \ @STRIP_END@ INCLUDES = $(common_includes) gtarget=@gdktarget@ +if PLATFORM_WIN32 +no_undefined = -no-undefined + +if HAVE_WINTAB +wintab_lib = -Lwin32 -lwntab32x +endif +endif + +if OS_WIN32 +gdk_win32_symbols = -export-symbols gdk.def + +install-libtool-import-lib: + $(INSTALL) .libs/libgdk-win32-1.3.dll.a $(DESTDIR)$(libdir) +uninstall-libtool-import-lib: + -rm $(DESTDIR)$(libdir)/libdk-win32-1.3.dll.a +else +install-libtool-import-lib: +uninstall-libtool-import-lib: +endif + +if MS_LIB_AVAILABLE +noinst_DATA = gdk-win32-1.3.lib + +gdk-win32-1.3.lib: libgdk-win32-1.3.la gdk.def + lib -name:libgdk-win32-1.3-@LT_CURRENT_MINUS_AGE@.dll -def:gdk.def -out:$@ + +install-ms-lib: + $(INSTALL) gdk-win32-1.3.lib $(DESTDIR)$(libdir) + +uninstall-ms-lib: + -rm $(DESTDIR)$(libdir)/gdk-win32-1.3.lib +else +install-ms-lib: +uninstall-ms-lib: +endif + # libtool stuff: set version and export symbols for resolving # since automake doesn't support conditionalized libsomething_la_LDFLAGS # we use the general approach here @@ -30,6 +67,7 @@ LDFLAGS = @STRIP_BEGIN@ \ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \ -export-dynamic \ -rpath @prefix@/lib \ + $(no_undefined) \ @LIBTOOL_EXPORT_OPTIONS@ \ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la \ @GDK_DEP_LIBS@ \ @@ -127,10 +165,23 @@ libgdk_linux_fb_include_HEADERS = $(gdk_headers) libgdk_linux_fb_1_3_la_SOURCES = $(gdk_c_sources) gdkenumtypes.c endif +if USE_WIN32 +libgdk_win32_includedir = $(includedir)/gtk-2.0/gdk + +libgdk_win32_1_3_la_LIBADD = \ + $(gtarget)/libgdk-$(gtarget).la $(wintab_lib) + +libgdk_win32_include_HEADERS = $(gdk_headers) +libgdk_win32_1_3_la_SOURCES = $(gdk_c_sources) gdkenumtypes.c + +libgdk_win32_1_3_la_LDFLAGS = $(gdk_win32_symbols) + +endif + # now define the real one to workaround automake's mishandling lib_LTLIBRARIES = $(extra) -EXTRA_LTLIBRARIES = libgdk-x11-1.3.la libgdk-linux-fb-1.3.la +EXTRA_LTLIBRARIES = libgdk-x11-1.3.la libgdk-linux-fb-1.3.la libgdk-win32-1.3.la MAINTAINERCLEANFILES = EXTRA_HEADERS = @@ -177,6 +228,10 @@ stamp-gc-h: ../config.status cd .. && CONFIG_FILES= CONFIG_HEADERS= CONFIG_OTHER=gdk/gdkconfig.h ./config.status echo timestamp > stamp-gc-h +install-data-local: install-ms-lib install-libtool-import-lib + +uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib + .PHONY: files files: diff --git a/gdk/gdkglobals.c b/gdk/gdkglobals.c index e30d17197..563d626e8 100644 --- a/gdk/gdkglobals.c +++ b/gdk/gdkglobals.c @@ -38,5 +38,5 @@ GList *_gdk_default_filters = NULL; GList *_gdk_queued_events = NULL; GList *_gdk_queued_tail = NULL; -GMutex *gdk_threads_mutex = NULL; /* Global GDK lock */ +GDKVAR GMutex *gdk_threads_mutex = NULL; /* Global GDK lock */ diff --git a/gdk/makefile.mingw.in b/gdk/makefile.mingw.in index 020d44fef..8bb2daf98 100644 --- a/gdk/makefile.mingw.in +++ b/gdk/makefile.mingw.in @@ -1,3 +1,7 @@ +#### +#### Out of order! Use autoconfiscation. +#### + ## Makefile for building the GDK DLL with gcc on Win32 ## Use: make -f makefile.mingw diff --git a/gtk-zip.sh.in b/gtk-zip.sh.in new file mode 100755 index 000000000..97935b3f3 --- /dev/null +++ b/gtk-zip.sh.in @@ -0,0 +1,30 @@ +#!/bin/sh + +# Build zipfile for GTK on Win32: both runtime and developer stuff + +# These two directory paths are obviously system-dependent. +# These are what tml@iki.fi uses, change as appropriate. +ZIP=/g/tmp/gtk+-@GTK_VERSION@-`date +%Y%m%d`.zip +cd /target + +rm $ZIP +zip -r $ZIP -@ < $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc rm -f $(DESTDIR)$(datadir)/themes/Default/gtk-2.0/gtkrc +uninstall-local: uninstall-ms-lib uninstall-libtool-import-lib + DEPS = @gtktargetlib@ $(top_builddir)/gdk-pixbuf/libgdk_pixbuf-1.3.la $(top_builddir)/gdk/@gdktargetlib@ TEST_DEPS = $(DEPS) gtk.immodules diff --git a/gtk/gtk-win32.rc.in b/gtk/gtk-win32.rc.in index 871fe05a5..fda5c6842 100644 --- a/gtk/gtk-win32.rc.in +++ b/gtk/gtk-win32.rc.in @@ -13,13 +13,13 @@ VS_VERSION_INFO VERSIONINFO BEGIN BLOCK "040904B0" BEGIN - VALUE "CompanyName", "The GTK+ developer community" + VALUE "CompanyName", "The GTK developer community" VALUE "FileDescription", "GIMP Toolkit" VALUE "FileVersion", "@GTK_VERSION@.BUILDNUMBER" - VALUE "InternalName", "gtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@" + VALUE "InternalName", "libgtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@" VALUE "LegalCopyright", "Copyright © 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald. Modified by the GTK+ Team and others 1997-2000." - VALUE "OriginalFilename", "gtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@.dll" - VALUE "ProductName", "GTK+" + VALUE "OriginalFilename", "libgtk-win32-@GTK_MAJOR_VERSION@.@GTK_MINOR_VERSION@-@LT_CURRENT_MINUS_AGE@.dll" + VALUE "ProductName", "GTK" VALUE "ProductVersion", "@GTK_VERSION@" END END diff --git a/gtk/gtk.def b/gtk/gtk.def index 13202007a..259e0e17a 100755 --- a/gtk/gtk.def +++ b/gtk/gtk.def @@ -4,10 +4,12 @@ EXPORTS GTK_TYPE_ARG_FLAGS GTK_TYPE_ARROW_TYPE GTK_TYPE_ATTACH_OPTIONS + GTK_TYPE_BORDER GTK_TYPE_BUTTONS_TYPE GTK_TYPE_BUTTON_ACTION GTK_TYPE_BUTTON_BOX_STYLE GTK_TYPE_CALENDAR_DISPLAY_OPTIONS + GTK_TYPE_CELL_RENDERER_MODE GTK_TYPE_CELL_RENDERER_STATE GTK_TYPE_CELL_TYPE GTK_TYPE_CLIST_DRAG_POS @@ -22,7 +24,8 @@ EXPORTS GTK_TYPE_DEST_DEFAULTS GTK_TYPE_DIALOG_FLAGS GTK_TYPE_DIRECTION_TYPE - GTK_TYPE_FUNDAMENTAL_TYPE + GTK_TYPE_EXPANDER_STYLE + GTK_TYPE_ICON_SET GTK_TYPE_ICON_SIZE GTK_TYPE_IMAGE_TYPE GTK_TYPE_JUSTIFICATION @@ -31,6 +34,7 @@ EXPORTS GTK_TYPE_MESSAGE_TYPE GTK_TYPE_METRIC_TYPE GTK_TYPE_MOVEMENT_STEP + GTK_TYPE_NOTEBOOK_TAB GTK_TYPE_OBJECT_FLAGS GTK_TYPE_ORIENTATION GTK_TYPE_PACK_TYPE @@ -45,6 +49,7 @@ EXPORTS GTK_TYPE_RC_FLAGS GTK_TYPE_RC_TOKEN_TYPE GTK_TYPE_RELIEF_STYLE + GTK_TYPE_REQUISITION GTK_TYPE_RESIZE_MODE GTK_TYPE_RESPONSE_TYPE GTK_TYPE_SCROLL_TYPE @@ -53,6 +58,7 @@ EXPORTS GTK_TYPE_SHADOW_TYPE GTK_TYPE_SIDE_TYPE GTK_TYPE_SIGNAL_RUN_TYPE + GTK_TYPE_SIZE_GROUP_MODE GTK_TYPE_SORT_TYPE GTK_TYPE_SPIN_BUTTON_UPDATE_POLICY GTK_TYPE_SPIN_TYPE @@ -76,6 +82,7 @@ EXPORTS GTK_TYPE_UPDATE_TYPE GTK_TYPE_VISIBILITY GTK_TYPE_WIDGET_FLAGS + GTK_TYPE_WIDGET_HELP_TYPE GTK_TYPE_WINDOW_POSITION GTK_TYPE_WINDOW_TYPE GTK_TYPE_WRAP_MODE @@ -214,7 +221,6 @@ EXPORTS gtk_cell_renderer_text_get_type gtk_cell_renderer_text_new gtk_cell_renderer_text_set_fixed_height_from_font - gtk_cell_renderer_toggle_get_active gtk_cell_renderer_toggle_get_radio gtk_cell_renderer_toggle_get_type gtk_cell_renderer_toggle_new @@ -1095,10 +1101,10 @@ EXPORTS gtk_pixmap_new gtk_pixmap_set gtk_pixmap_set_build_insensitive - gtk_plug_construct - gtk_plug_get_id - gtk_plug_get_type - gtk_plug_new +; gtk_plug_construct +; gtk_plug_get_id +; gtk_plug_get_type +; gtk_plug_new gtk_preview_draw_row gtk_preview_get_cmap gtk_preview_get_info @@ -1290,11 +1296,11 @@ EXPORTS gtk_size_group_new gtk_size_group_remove_widget gtk_size_group_set_mode - gtk_socket_add_id - gtk_socket_get_id - gtk_socket_get_type - gtk_socket_new - gtk_socket_steal +; gtk_socket_add_id +; gtk_socket_get_id +; gtk_socket_get_type +; gtk_socket_new +; gtk_socket_steal gtk_spin_button_configure gtk_spin_button_get_adjustment gtk_spin_button_get_digits @@ -1859,6 +1865,7 @@ EXPORTS gtk_tree_view_column_get_min_width gtk_tree_view_column_get_reorderable gtk_tree_view_column_get_sizing + gtk_tree_view_column_get_sizing gtk_tree_view_column_get_sort_column_id gtk_tree_view_column_get_sort_indicator gtk_tree_view_column_get_sort_order @@ -2168,6 +2175,3 @@ EXPORTS gtk_window_stick gtk_window_unmaximize gtk_window_unstick - - - diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index fa330d0cc..902272b14 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -44,6 +44,9 @@ #ifdef HAVE_PWD_H #include #endif +#ifdef HAVE_WINSOCK_H +#include /* For gethostname */ +#endif #include "fnmatch.h" diff --git a/gtk/gtkmain.c b/gtk/gtkmain.c index 450f3741a..2b46a4027 100644 --- a/gtk/gtkmain.c +++ b/gtk/gtkmain.c @@ -39,6 +39,11 @@ #ifdef G_OS_UNIX #include #endif +#ifdef G_OS_WIN32 +#define STRICT +#include +#undef STRICT +#endif #include /* For pango_split_file_list */ @@ -224,6 +229,56 @@ check_setugid (void) return TRUE; } +#ifdef G_OS_WIN32 + +G_WIN32_DLLMAIN_FOR_DLL_NAME(static, dll_name) + +const gchar * +_gtk_get_libdir (void) +{ + static char *gtk_libdir = NULL; + if (gtk_libdir == NULL) + gtk_libdir = g_win32_get_package_installation_subdirectory + (GETTEXT_PACKAGE, dll_name, "lib"); + + return gtk_libdir; +} + +const gchar * +_gtk_get_localedir (void) +{ + static char *gtk_localedir = NULL; + if (gtk_localedir == NULL) + gtk_localedir = g_win32_get_package_installation_subdirectory + (GETTEXT_PACKAGE, dll_name, "lib\\locale"); + + return gtk_localedir; +} + +const gchar * +_gtk_get_sysconfdir (void) +{ + static char *gtk_sysconfdir = NULL; + if (gtk_sysconfdir == NULL) + gtk_sysconfdir = g_win32_get_package_installation_subdirectory + (GETTEXT_PACKAGE, dll_name, "etc"); + + return gtk_sysconfdir; +} + +const gchar * +_gtk_get_data_prefix (void) +{ + static char *gtk_data_prefix = NULL; + if (gtk_data_prefix == NULL) + gtk_data_prefix = g_win32_get_package_installation_directory + (GETTEXT_PACKAGE, dll_name); + + return gtk_data_prefix; +} + +#endif /* G_OS_WIN32 */ + static gchar ** get_module_path (void) { @@ -236,13 +291,8 @@ get_module_path (void) if (exe_prefix) default_dir = g_build_filename (exe_prefix, "lib", "gtk-2.0", "modules", NULL); else - { -#ifndef G_OS_WIN32 - default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", "modules", NULL); -#else - default_dir = g_build_filename (get_gtk_win32_directory (""), "modules", NULL); -#endif - } + default_dir = g_build_filename (GTK_LIBDIR, "gtk-2.0", "modules", NULL); + module_path = g_strconcat (module_path_env ? module_path_env : "", module_path_env ? G_SEARCHPATH_SEPARATOR_S : "", default_dir, NULL); @@ -548,19 +598,10 @@ gtk_init_check (int *argc, } #ifdef ENABLE_NLS -# ifndef G_OS_WIN32 bindtextdomain (GETTEXT_PACKAGE, GTK_LOCALEDIR); # ifdef HAVE_BIND_TEXTDOMAIN_CODESET bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); # endif -# else /* !G_OS_WIN32 */ - { - bindtextdomain (GETTEXT_PACKAGE, - g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE, - g_strdup_printf ("gtk-win32-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION), - "locale")); - } -#endif #endif { diff --git a/gtk/gtkprivate.h b/gtk/gtkprivate.h index 66943590c..0de6707cf 100644 --- a/gtk/gtkprivate.h +++ b/gtk/gtkprivate.h @@ -74,9 +74,26 @@ typedef enum #define GTK_PRIVATE_SET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) |= (PRIVATE_ ## flag)); }G_STMT_END #define GTK_PRIVATE_UNSET_FLAG(wid,flag) G_STMT_START{ (GTK_PRIVATE_FLAGS (wid) &= ~(PRIVATE_ ## flag)); }G_STMT_END +#ifdef G_OS_WIN32 + +const gchar *_gtk_get_libdir (); +const gchar *_gtk_get_sysconfdir (); +const gchar *_gtk_get_localedir (); +const gchar *_gtk_get_data_prefix (); + +#undef GTK_LIBDIR +#define GTK_LIBDIR _gtk_get_libdir () +#undef GTK_LOCALEDIR +#define GTK_LOCALEDIR _gtk_get_localedir () +#undef GTK_SYSCONFDIR +#define GTK_SYSCONFDIR _gtk_get_sysconfdir () +#undef GTK_DATA_PREFIX +#define GTK_DATA_PREFIX _gtk_get_data_prefix () + +#endif /* G_OS_WIN32 */ + #ifdef __cplusplus } #endif /* __cplusplus */ - #endif /* __GTK_PRIVATE_H__ */ diff --git a/gtk/gtkrc.c b/gtk/gtkrc.c index b8d27f29f..204eb8214 100644 --- a/gtk/gtkrc.c +++ b/gtk/gtkrc.c @@ -295,39 +295,16 @@ static GSList *rc_dir_stack = NULL; /* RC file handling */ -#ifdef G_OS_WIN32 -gchar * -get_gtk_win32_directory (gchar *subdir) -{ - static gchar *gtk_dll = NULL; - - if (!gtk_dll) - gtk_dll = g_strdup_printf ("gtk-win32-%d.%d.dll", GTK_MAJOR_VERSION, GTK_MINOR_VERSION); - - if (subdir && strlen(subdir) > 0) - return g_win32_get_package_installation_subdirectory (GETTEXT_PACKAGE, - gtk_dll, - subdir); - else - return g_win32_get_package_installation_directory (GETTEXT_PACKAGE, - gtk_dll); -} -#endif /* G_OS_WIN32 */ - static gchar * gtk_rc_make_default_dir (const gchar *type) { gchar *var, *path; -#ifndef G_OS_WIN32 var = getenv("GTK_EXE_PREFIX"); if (var) path = g_build_filename (var, "lib", "gtk-2.0", type, GTK_BINARY_VERSION, NULL); else path = g_build_filename (GTK_LIBDIR, "gtk-2.0,", type, GTK_BINARY_VERSION, NULL); -#else - path = g_build_filename (get_gtk_win32_directory (""), type, NULL); -#endif return path; } @@ -358,11 +335,7 @@ gtk_rc_get_im_module_file (void) if (im_module_file) result = g_strdup (im_module_file); else -#ifndef G_OS_WIN32 result = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtk.immodules", NULL); -#else - result = g_build_filename (get_gtk_win32_directory ("gtk-2.0"), "gtk.immodules", NULL); -#endif } return result; @@ -373,15 +346,11 @@ gtk_rc_get_theme_dir(void) { gchar *var, *path; -#ifndef G_OS_WIN32 var = getenv("GTK_DATA_PREFIX"); if (var) path = g_build_filename (var, "share", "themes", NULL); else path = g_build_filename (GTK_DATA_PREFIX, "share", "themes", NULL); -#else - path = g_build_filename (get_gtk_win32_directory (""), "themes", NULL); -#endif return path; } @@ -403,15 +372,11 @@ gtk_rc_append_default_module_path(void) if (n >= GTK_RC_MAX_MODULE_PATHS - 1) return; -#ifndef G_OS_WIN32 var = getenv("GTK_EXE_PREFIX"); if (var) path = g_build_filename (var, "lib", "gtk-2.0", GTK_VERSION, "engines", NULL); else path = g_build_filename (GTK_LIBDIR, "gtk-2.0", GTK_VERSION, "engines", NULL); -#else - path = g_build_filename (get_gtk_win32_directory ("gtk-2.0"), GTK_VERSION, "engines", NULL); -#endif module_path[n++] = path; var = g_get_home_dir (); @@ -452,11 +417,7 @@ gtk_rc_add_initial_default_files (void) } else { -#ifndef G_OS_WIN32 str = g_build_filename (GTK_SYSCONFDIR, "gtk-2.0", "gtkrc", NULL); -#else - str = g_build_filename (get_gtk_win32_directory (""), "gtkrc", NULL); -#endif gtk_rc_add_default_file (str); g_free (str); diff --git a/gtk/makefile.mingw.in b/gtk/makefile.mingw.in index 6501bee21..c2770cdd8 100644 --- a/gtk/makefile.mingw.in +++ b/gtk/makefile.mingw.in @@ -1,15 +1,13 @@ +#### +#### Out of order! Use autoconfiscation. +#### + ## Makefile for building the GTK DLL with gcc on Win32 ## Use: make -f makefile.mingw ## There is no install target, you have to decide where and ## how to install for yourself. -# This is the location of pthreads for Win32, -# see http://sourceware.cygnus.com/pthreads-win32/ -PTHREADS = ../../pthreads-snap-1999-05-30 -PTHREAD_LIB = -L $(PTHREADS) -lpthread -PTHREAD_INC = -I $(PTHREADS) - OPTIMIZE = -g TOP = ../.. @@ -459,12 +457,6 @@ testtextbuffer.exe : testtextbuffer.o testtextbuffer.o : testtextbuffer.c $(CC) $(CFLAGS) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testtextbuffer\" testtextbuffer.c -testthreads.exe : testthreads.o - $(CC) $(CFLAGS) -o $@ testthreads.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(PTHREAD_LIB) $(LDFLAGS) - -testthreads.o : testthreads.c - $(CC) $(CFLAGS) -I$(PTHREAD_INC) -UGTK_COMPILATION -c -DG_LOG_DOMAIN=\"testthreads\" -DUSE_PTHREADS=1 testthreads.c - simple.exe : simple.o $(CC) $(CFLAGS) -o $@ simple.o $(GTK_LIBS) $(GDK_LIBS) $(GLIB_LIBS) $(LDFLAGS) diff --git a/gtk/maketypes.awk b/gtk/maketypes.awk index 8826c40ae..2a88f4549 100644 --- a/gtk/maketypes.awk +++ b/gtk/maketypes.awk @@ -83,7 +83,7 @@ function generate (generate_what) } if (gen_vars) { - printf ("GtkType %s = 0;\n", type_macro); + printf ("GTKTYPEBUILTINS_VAR GtkType %s = 0;\n", type_macro); } } -- 2.43.2