mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-25 21:46:14 +01:00
Edits.
2002-02-24 Tor Lillqvist <tml@iki.fi> * README.win32: Edits. * config.h.win32.in: Add (as undefined) HAVE_UNSETENV, _FILE_OFFSET_BITS and _LARGE_FILES, just for completeness. * glibconfig.h.win32.in: Add the gcc-2.95.x undef of G_HAVE_ISO_VARARGS.
This commit is contained in:
parent
cca5009912
commit
657d78b87e
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
@ -1,3 +1,13 @@
|
|||||||
|
2002-02-24 Tor Lillqvist <tml@iki.fi>
|
||||||
|
|
||||||
|
* README.win32: Edits.
|
||||||
|
|
||||||
|
* config.h.win32.in: Add (as undefined) HAVE_UNSETENV,
|
||||||
|
_FILE_OFFSET_BITS and _LARGE_FILES, just for completeness.
|
||||||
|
|
||||||
|
* glibconfig.h.win32.in: Add the gcc-2.95.x undef of
|
||||||
|
G_HAVE_ISO_VARARGS.
|
||||||
|
|
||||||
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
Sat Feb 23 21:36:51 2002 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
* configure.in: 1.3.15, binary, interface age 0.
|
* configure.in: 1.3.15, binary, interface age 0.
|
||||||
|
120
README.win32
120
README.win32
@ -1,24 +1,29 @@
|
|||||||
General
|
General
|
||||||
=======
|
=======
|
||||||
|
|
||||||
For more information about the port or GLib, GTK+ and the GIMP to
|
For prebuilt binaries (DLLs and EXEs) and developer packages (headers,
|
||||||
native Windows, and pre-built binaries (DLLs), surf to
|
import libraries) of GLib, GTK+, GIMP etc for Windows, surf to
|
||||||
http://www.gimp.org/win32/ . "Native" means that we use the Win32 API
|
http://www.gimp.org/win32/ . They are for "native" Windows meaning
|
||||||
only, and no POSIX (Unix) emulation layer except that provided by the
|
they use the Win32 API and Microsoft C runtime library only, no POSIX
|
||||||
Microsoft runtime C library.
|
(Unix) emulation layer (like Cygwin).
|
||||||
|
|
||||||
To build GLib on Win32, you can use either gcc or the Microsoft
|
To build GLib on Win32, you can use either gcc or the Microsoft
|
||||||
compiler and tools. Both the compiler from MSVC 5.0 and from MSVC 6.0
|
compiler and tools. Both the compiler from MSVC 5.0 and from MSVC 6.0
|
||||||
have been used successfully.
|
have been used successfully.
|
||||||
|
|
||||||
But note that to just *use* GLib on Windows, there is no need to build
|
But note that to just *use* GLib on Windows, there is no need to build
|
||||||
it, prebuilt DLLs are available from the webiste above.
|
it yourself. Prepackaged runtime and developer packages are available
|
||||||
|
from the webiste above. On Unix, it is quite normal that system admins
|
||||||
|
build and install libraries like GLib themselves. But on Windows
|
||||||
|
setting up a correct build environment can be quite a task, especially
|
||||||
|
if you are used to on Unix just type ./configure; make, and expect
|
||||||
|
things to work as smoothly on Windows.
|
||||||
|
|
||||||
The following preprocessor macros are used for conditional compilation
|
The following preprocessor macros can be used for conditional
|
||||||
related to Win32:
|
compilation related to Win32 in GLib-using code:
|
||||||
|
|
||||||
- G_OS_WIN32 is defined when compiling for Win32, *and* without
|
- G_OS_WIN32 is defined when compiling for native Win32, without
|
||||||
any POSIX emulation, other that to the extent provided by the
|
any POSIX emulation, other than to the extent provided by the
|
||||||
bundled Microsoft C library (msvcrt.dll).
|
bundled Microsoft C library (msvcrt.dll).
|
||||||
|
|
||||||
- G_WITH_CYGWIN is defined if compiling for the Cygwin
|
- G_WITH_CYGWIN is defined if compiling for the Cygwin
|
||||||
@ -29,27 +34,36 @@ related to Win32:
|
|||||||
- G_PLATFORM_WIN32 is defined when either G_OS_WIN32 or G_WITH_CYGWIN
|
- G_PLATFORM_WIN32 is defined when either G_OS_WIN32 or G_WITH_CYGWIN
|
||||||
is defined.
|
is defined.
|
||||||
|
|
||||||
The Win32 port of GLib and related software uses only G_OS_WIN32. As
|
These macros are defined in glibconfig.h, and are thus (indirectly)
|
||||||
G_OS_WIN32 is defined in glibconfig.h, it is available to all source
|
available in all source files that include <glib.h> or GTK+ headers.
|
||||||
files that use GLib (or GTK+, which uses GLib).
|
|
||||||
|
|
||||||
Additionally, there are the compiler-specific macros:
|
Additionally, there are the compiler-specific macros:
|
||||||
- __GNUC__ is defined when using GCC
|
- __GNUC__ is defined when using gcc
|
||||||
- _MSC_VER is defined when using the Microsoft compiler
|
- _MSC_VER is defined when using the Microsoft compiler
|
||||||
|
|
||||||
G_OS_WIN32 implies using the Microsoft C runtime MSVCRT.DLL. GLib is
|
G_OS_WIN32 implies using the Microsoft C runtime MSVCRT.DLL. GLib is
|
||||||
not known to work with the older CRTDLL.DLL runtime, or the static
|
not known to work with the older CRTDLL.DLL runtime, or the static
|
||||||
Microsoft C runtime libraries LIBC.LIB and LIBCMT.LIB.
|
Microsoft C runtime libraries LIBC.LIB and LIBCMT.LIB. It apparently
|
||||||
|
does work with the debugging version of MSVCRT.DLL, MSVCRTD.DLL.
|
||||||
|
|
||||||
Building software that use GLib or GTK+
|
Building software that use GLib or GTK+
|
||||||
=======================================
|
=======================================
|
||||||
|
|
||||||
Even building software that just *use* GLib or GTK+ also require to
|
Even building software that just *uses* GLib or GTK+ also require to
|
||||||
have the right compiler set up the right way, so if you intend to use
|
have the right compiler set up the right way, so if you intend to use
|
||||||
gcc, follow the relevant instructions below in that case, too.
|
gcc, follow the relevant instructions below in that case, too.
|
||||||
|
|
||||||
Dependent libraries
|
I use gcc with the -fnative-struct flag, which means that in order to
|
||||||
===================
|
use the prebuilt DLLs (especially of GTK+), you *must* also use that
|
||||||
|
flag. (This flag means that the struct layout rules are identical to
|
||||||
|
those used by MSVC. This is essential if the same DLLs are to be
|
||||||
|
usable both from gcc- and MSVC-compiled code. This definitely is
|
||||||
|
something one wants.)
|
||||||
|
|
||||||
|
Building GLib
|
||||||
|
=============
|
||||||
|
|
||||||
|
Again, first decide whether you really want to do this.
|
||||||
|
|
||||||
Before building GLib you must also have the libiconv library, either
|
Before building GLib you must also have the libiconv library, either
|
||||||
from the same website mentioned above, or from it's homepage at
|
from the same website mentioned above, or from it's homepage at
|
||||||
@ -67,12 +81,14 @@ Where are the makefiles?
|
|||||||
========================
|
========================
|
||||||
|
|
||||||
If you are building from a CVS snapshot, you will not have any
|
If you are building from a CVS snapshot, you will not have any
|
||||||
makefile.mingw or makefile.msc file. You should copy the corresponding
|
makefile.mingw or makefile.msc files. You should copy the
|
||||||
makefile.mingw.in or makefile.msc.in file to that name, and replace
|
corresponding makefile.mingw.in or makefile.msc.in file to that name,
|
||||||
any @...@ strings with the correct value.
|
and replace any @...@ strings with the correct value.
|
||||||
|
|
||||||
This is done automatically when an official GLib source distribution
|
This is done automatically when an official GLib source distribution
|
||||||
package is built.
|
package is built, so if you get GLib from a source distribution
|
||||||
|
package, there should be makefile.mingw and makefile.msc files ready
|
||||||
|
to use (after some editing).
|
||||||
|
|
||||||
Building GLib with gcc
|
Building GLib with gcc
|
||||||
======================
|
======================
|
||||||
@ -93,19 +109,16 @@ gcc, you still want to have Cygwin to run make in.
|
|||||||
Then run make -f makefile.mingw. Install the resulting DLLs somewhere
|
Then run make -f makefile.mingw. Install the resulting DLLs somewhere
|
||||||
in your PATH. You can either keep the headers and import libraries
|
in your PATH. You can either keep the headers and import libraries
|
||||||
where they are, or install them somewhere else. There are no rules in
|
where they are, or install them somewhere else. There are no rules in
|
||||||
the makefile.mingws for installing, it is up to you where to put
|
the makefile.mingws for installing, it is up to you where to put them.
|
||||||
stuff.
|
|
||||||
|
|
||||||
I use the -fnative-struct flag, which means that in order to use the
|
Autoconfiscated build
|
||||||
prebuilt DLLs (especially of GTK+), you *must* also use that flag.
|
=====================
|
||||||
(This flag means that the struct layout is identical to that used by
|
|
||||||
MSVC. This is essential if the same DLLs are to be usable both from
|
|
||||||
gcc- and MSVC-compiled code, which definitely is a good thing.)
|
|
||||||
|
|
||||||
It is also possible to use the auto*, ./configure and libtool
|
It is also possible to use the auto*, ./configure and libtool
|
||||||
mechanism when building for mingw. You should be running Cygwin, or
|
mechanism when building with gcc. You should be running Cygwin, or
|
||||||
maybe cross-compiling from real Unix, for the configure script to
|
maybe cross-compiling from real Unix, for the configure script to
|
||||||
work, obviously. You most probably should have very new auto* and
|
work, obviously. (It might also be possible to use "MSYS", but I
|
||||||
|
haven't checked.) You most probably should have very new auto* and
|
||||||
libtool. Personally, I invoke configure using:
|
libtool. Personally, I invoke configure using:
|
||||||
|
|
||||||
CC='gcc -mpentium -fnative-struct'
|
CC='gcc -mpentium -fnative-struct'
|
||||||
@ -117,38 +130,35 @@ CC='gcc -mpentium -fnative-struct'
|
|||||||
(on a single line)
|
(on a single line)
|
||||||
|
|
||||||
But please note that the ./configure mechanism should not blindly be
|
But please note that the ./configure mechanism should not blindly be
|
||||||
used to build a GLib to be distributed to potential developers because
|
used to build a GLib to be distributed to other developers because it
|
||||||
it produces a compiler-dependent glibconfig.h (and config.h, but that
|
produces a compiler-dependent glibconfig.h (and config.h, but that
|
||||||
shouldn't matter, as it isn't seen by GLib-using applications). For
|
shouldn't matter, as it isn't seen by GLib-using applications). For
|
||||||
instance, the typedef for gint64 is long long with gcc, but __int64
|
instance, the typedef for gint64 is long long with gcc, but __int64
|
||||||
with MSVC.
|
with MSVC.
|
||||||
|
|
||||||
Except for this and a few other minor issues, there really shouldn't
|
Except for this and a few other minor issues, there really shouldn't
|
||||||
be any reason to distribute separate GLib DLLs for gcc and MSVC users,
|
be any reason to distribute separate GLib headers and DLLs for gcc and
|
||||||
as both compiler+tools generate code that uses the same C runtime
|
MSVC users, as both compilers generate code that uses the same C
|
||||||
library. Thus one either has to manually edit glibconfig.h afterwards,
|
runtime library. Thus one either has to manually edit glibconfig.h
|
||||||
or use the supplied config.h.win32 and glibconfig.h.win32. These have
|
afterwards, or use the supplied config.h.win32 and
|
||||||
been produced by running configure twice, once using gcc and once
|
glibconfig.h.win32. These have been produced by running configure
|
||||||
using MSVC, and merging the resulting files with diff -D.
|
twice, once using gcc and once using MSVC, and merging the resulting
|
||||||
|
files with diff -D.
|
||||||
|
|
||||||
There are probably also other hickups when using auto* and configure
|
There might be other hickups when using auto* and configure to build
|
||||||
to build for mingw, sigh. Every now and then I try to get rid of the
|
with gcc. Lately I have used auto*/configure/libtool exclusively when
|
||||||
hand-written makefiles and configuration headers for Win32, and start
|
building GLib, GTK+, GIMP etc on Win32, and it seems to work well
|
||||||
fooling around with auto* etc, but after a while give up and fall
|
(with some patches applied to the current CVS libtool...).
|
||||||
back. At least, it used to be like that. Lately I have again been
|
|
||||||
working on using auto*/configure/libtool on Win32, and it now seems to
|
|
||||||
work well enough (with some patches applied to the current CVS
|
|
||||||
libtool...).
|
|
||||||
|
|
||||||
The hand-written makefile.{mingw,msc} files, and the stuff in the
|
The hand-written makefile.{mingw,msc} files, and the stuff in the
|
||||||
"build" subdirectory, has been updated to produce DLLs and import
|
"build" subdirectory, produce DLLs and import libraries that match
|
||||||
libraries that match what Makefile.am and libtool produces. For GLib,
|
what Makefile.am and libtool produces. For GLib, the DLL is called
|
||||||
the DLL is called libglib-1.3-10.dll (at GLib 1.3.10), and the import
|
libglib-1.3-15.dll (at GLib 1.3.15), and the import libraries
|
||||||
libraries libglib-1.3.a and glib-1.3.lib. Note that the "1.3" is part
|
libglib-1.3.dll.a and glib-1.3.lib. Note that the "1.3" is part of the
|
||||||
of the "basename" of the library, it is not something that libtool
|
"basename" of the library, it is not something that libtool have
|
||||||
would tuck on. The -10 suffix is the value of "LT_CURRENT -
|
tucked on. The -15 suffix is the value of "LT_CURRENT - LT_AGE". The
|
||||||
LT_AGE". The 10 is *not* the micro version number of GLib, although,
|
15 is *not* simply the micro version number of GLib, although, for
|
||||||
for GLib 1.3.10, it happens to be the same. For the gory details, see
|
GLib 1.3.15, it happens to be the same. For the gory details, see
|
||||||
configure.in and libtool documentation.
|
configure.in and libtool documentation.
|
||||||
|
|
||||||
If you want to run the Cygwin-hosted gcc, and still want to produce
|
If you want to run the Cygwin-hosted gcc, and still want to produce
|
||||||
|
@ -348,6 +348,9 @@
|
|||||||
/* #undef HAVE_UNISTD_H */
|
/* #undef HAVE_UNISTD_H */
|
||||||
#endif /* _MSC_VER */
|
#endif /* _MSC_VER */
|
||||||
|
|
||||||
|
/* Define if you have the `unsetenv' function. */
|
||||||
|
/* #undef HAVE_UNSETENV */
|
||||||
|
|
||||||
/* Define if you have the <values.h> header file. */
|
/* Define if you have the <values.h> header file. */
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
#define HAVE_VALUES_H 1
|
#define HAVE_VALUES_H 1
|
||||||
@ -440,6 +443,12 @@
|
|||||||
(like Motorola and SPARC, unlike Intel and VAX). */
|
(like Motorola and SPARC, unlike Intel and VAX). */
|
||||||
/* #undef WORDS_BIGENDIAN */
|
/* #undef WORDS_BIGENDIAN */
|
||||||
|
|
||||||
|
/* Number of bits in a file offset, on hosts where this is settable. */
|
||||||
|
/* #undef _FILE_OFFSET_BITS */
|
||||||
|
|
||||||
|
/* Define for large files, on AIX-style hosts. */
|
||||||
|
/* #undef _LARGE_FILES */
|
||||||
|
|
||||||
/* Define to empty if `const' does not conform to ANSI C. */
|
/* Define to empty if `const' does not conform to ANSI C. */
|
||||||
/* #undef const */
|
/* #undef const */
|
||||||
|
|
||||||
|
@ -109,6 +109,14 @@ typedef guint32 gsize;
|
|||||||
# define G_HAVE_ISO_VARARGS 1
|
# define G_HAVE_ISO_VARARGS 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* gcc-2.95.x supports both gnu style and ISO varargs, but if -ansi
|
||||||
|
* is passed ISO vararg support is turned off, and there is no work
|
||||||
|
* around to turn it on, so we unconditionally turn it off.
|
||||||
|
*/
|
||||||
|
#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
|
||||||
|
# undef G_HAVE_ISO_VARARGS
|
||||||
|
#endif
|
||||||
|
|
||||||
#define G_HAVE_GNUC_VARARGS 1
|
#define G_HAVE_GNUC_VARARGS 1
|
||||||
#endif /* not _MSC_VER */
|
#endif /* not _MSC_VER */
|
||||||
#define G_HAVE_GROWING_STACK 0
|
#define G_HAVE_GROWING_STACK 0
|
||||||
|
Loading…
Reference in New Issue
Block a user