mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-07 19:35:50 +01:00
Update.
2004-03-06 Tor Lillqvist <tml@iki.fi> * README.win32: Update. * configure.in * Makefile.am * */Makefile.am: Drop the hand-written makefile.mingw(.in) files. They haven't been maintained in a long time. As several people have managed to build GLib for Win32 using the autoconfiscation mechanism, there is no real reason to even try to maintain the hand-written mingw makefiles.
This commit is contained in:
parent
ab0031bf00
commit
fd64571b80
12
ChangeLog
12
ChangeLog
@ -1,3 +1,15 @@
|
||||
2004-03-06 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* README.win32: Update.
|
||||
|
||||
* configure.in
|
||||
* Makefile.am
|
||||
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
|
||||
files. They haven't been maintained in a long time. As several
|
||||
people have managed to build GLib for Win32 using the
|
||||
autoconfiscation mechanism, there is no real reason to even try to
|
||||
maintain the hand-written mingw makefiles.
|
||||
|
||||
2004-03-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gatomic.c: Fix infinite recursion for
|
||||
|
@ -1,3 +1,15 @@
|
||||
2004-03-06 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* README.win32: Update.
|
||||
|
||||
* configure.in
|
||||
* Makefile.am
|
||||
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
|
||||
files. They haven't been maintained in a long time. As several
|
||||
people have managed to build GLib for Win32 using the
|
||||
autoconfiscation mechanism, there is no real reason to even try to
|
||||
maintain the hand-written mingw makefiles.
|
||||
|
||||
2004-03-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gatomic.c: Fix infinite recursion for
|
||||
|
@ -1,3 +1,15 @@
|
||||
2004-03-06 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* README.win32: Update.
|
||||
|
||||
* configure.in
|
||||
* Makefile.am
|
||||
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
|
||||
files. They haven't been maintained in a long time. As several
|
||||
people have managed to build GLib for Win32 using the
|
||||
autoconfiscation mechanism, there is no real reason to even try to
|
||||
maintain the hand-written mingw makefiles.
|
||||
|
||||
2004-03-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gatomic.c: Fix infinite recursion for
|
||||
|
@ -1,3 +1,15 @@
|
||||
2004-03-06 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* README.win32: Update.
|
||||
|
||||
* configure.in
|
||||
* Makefile.am
|
||||
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
|
||||
files. They haven't been maintained in a long time. As several
|
||||
people have managed to build GLib for Win32 using the
|
||||
autoconfiscation mechanism, there is no real reason to even try to
|
||||
maintain the hand-written mingw makefiles.
|
||||
|
||||
2004-03-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gatomic.c: Fix infinite recursion for
|
||||
|
@ -1,3 +1,15 @@
|
||||
2004-03-06 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* README.win32: Update.
|
||||
|
||||
* configure.in
|
||||
* Makefile.am
|
||||
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
|
||||
files. They haven't been maintained in a long time. As several
|
||||
people have managed to build GLib for Win32 using the
|
||||
autoconfiscation mechanism, there is no real reason to even try to
|
||||
maintain the hand-written mingw makefiles.
|
||||
|
||||
2004-03-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gatomic.c: Fix infinite recursion for
|
||||
|
@ -1,3 +1,15 @@
|
||||
2004-03-06 Tor Lillqvist <tml@iki.fi>
|
||||
|
||||
* README.win32: Update.
|
||||
|
||||
* configure.in
|
||||
* Makefile.am
|
||||
* */Makefile.am: Drop the hand-written makefile.mingw(.in)
|
||||
files. They haven't been maintained in a long time. As several
|
||||
people have managed to build GLib for Win32 using the
|
||||
autoconfiscation mechanism, there is no real reason to even try to
|
||||
maintain the hand-written mingw makefiles.
|
||||
|
||||
2004-03-05 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
|
||||
|
||||
* glib/gatomic.c: Fix infinite recursion for
|
||||
|
@ -21,7 +21,6 @@ EXTRA_DIST = \
|
||||
INSTALL.in \
|
||||
README.win32 \
|
||||
makefile.msc \
|
||||
makefile.mingw \
|
||||
glibconfig.h.win32.in \
|
||||
msvc_recommended_pragmas.h \
|
||||
config.h.win32.in \
|
||||
|
123
README.win32
123
README.win32
@ -9,9 +9,9 @@ General
|
||||
|
||||
For prebuilt binaries (DLLs and EXEs) and developer packages (headers,
|
||||
import libraries) of GLib, GTK+, GIMP etc for Windows, surf to
|
||||
http://www.gimp.org/win32/ . They are for "native" Windows meaning
|
||||
they use the Win32 API and Microsoft C runtime library only, no POSIX
|
||||
(Unix) emulation layer (like Cygwin).
|
||||
http://www.gimp.org/win32/downloads.html . They are for "native"
|
||||
Windows meaning they use the Win32 API and Microsoft C runtime library
|
||||
only, no POSIX (Unix) emulation layer (like Cygwin).
|
||||
|
||||
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
|
||||
@ -20,12 +20,15 @@ have been used successfully.
|
||||
But note that to just *use* GLib on Windows, there is no need to build
|
||||
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 just type "./configure; make" on Unix, and expect
|
||||
things to work as smoothly on Windows.
|
||||
build and install libraries like GLib themselves without bothering to
|
||||
look for prebuilt packages, especially if prebuilt packages tend to
|
||||
use installation paths that don't conform to local customs.
|
||||
|
||||
The following preprocessor macros can be used for conditional
|
||||
On Windows setting up a correct build environment can be quite a task,
|
||||
especially if you are used to just type "./configure; make" on Unix,
|
||||
and expect things to work as smoothly on Windows.
|
||||
|
||||
The following preprocessor macros are to be used for conditional
|
||||
compilation related to Win32 in GLib-using code:
|
||||
|
||||
- G_OS_WIN32 is defined when compiling for native Win32, without
|
||||
@ -50,7 +53,12 @@ Additionally, there are the compiler-specific macros:
|
||||
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
|
||||
Microsoft C runtime libraries LIBC.LIB and LIBCMT.LIB. It apparently
|
||||
does work with the debugging version of MSVCRT.DLL, MSVCRTD.DLL.
|
||||
does work with the debugging version of MSVCRT.DLL,
|
||||
MSVCRTD.DLL. Presumably, if compiled with MSVC.NET, it also works with
|
||||
MSVCR70.DLL. Please note that it's dubious if you would be allowed by
|
||||
the license to distrubute a GLib linked to MSVCR70.DLL, as it is not
|
||||
part of the operating system, but of the MSVC product. MSVCRT.DLL is
|
||||
part of Windows.
|
||||
|
||||
Building software that use GLib or GTK+
|
||||
=======================================
|
||||
@ -62,10 +70,10 @@ gcc, follow the relevant instructions below in that case, too.
|
||||
Tor uses gcc with the -mms-bitfields flag (used to be called
|
||||
-fnative-struct in gcc 2.x), which means that in order to use the
|
||||
prebuilt DLLs (especially of GTK+), if you compile your code with gcc,
|
||||
you *must* also use that flag. (This flag means that the struct layout
|
||||
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.)
|
||||
definitely is something one wants.
|
||||
|
||||
Building GLib
|
||||
=============
|
||||
@ -74,72 +82,29 @@ Again, first decide whether you really want to do this.
|
||||
|
||||
Before building GLib you must also have the libiconv library and GNU
|
||||
gettext. Get prebuilt binaries of libiconv (1.9.1 or newer), and
|
||||
gettext-runtime (0.12.1 or newer) from your nearest GNU ftp mirror. If
|
||||
you use gcc, you will also have to edit the libintl.h file from
|
||||
gettext a tiny bit: Change the
|
||||
gettext-runtime (0.13.1 or newer) from www.gimp.org/win32/downloads.html.
|
||||
|
||||
# if __GNUC__ >= 2 && !defined __APPLE_CC__ && (defined __STDC__ || defined __cplusplus)
|
||||
|
||||
line to
|
||||
|
||||
# if __GNUC__ >= 2 && !defined __APPLE_CC__ && !defined __MINGW32__ && (defined __STDC__ || defined __cplusplus)
|
||||
|
||||
around line 102.
|
||||
|
||||
Where are the makefiles?
|
||||
========================
|
||||
|
||||
If you are building from a CVS snapshot, you will not have any
|
||||
makefile.mingw or makefile.msc files. You should copy the
|
||||
corresponding makefile.mingw.in or makefile.msc.in file to that name,
|
||||
and replace any @...@ strings with the correct value.
|
||||
|
||||
This is done automatically when an official GLib source distribution
|
||||
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
|
||||
======================
|
||||
Autoconfiscated build (with gcc)
|
||||
================================
|
||||
|
||||
Tor uses gcc 3.2. Version 2.95.3 also works.
|
||||
|
||||
You can either use gcc running on Cygwin, or the "pure" mingw
|
||||
gcc. Using the latter might work better, or at least did at some
|
||||
point.
|
||||
point. You should be running Cygwin, or maybe cross-compiling from
|
||||
real Unix, for the configure script to work, obviously. It is also
|
||||
possible to use MSYS.
|
||||
|
||||
Fetch the latest version of gcc for mingw and the msvcrt runtime, from
|
||||
www.mingw.org.
|
||||
|
||||
Set up your PATH so that the gcc from the bin directory that got
|
||||
created above is the one that gets used. Even if you run the mingw
|
||||
gcc, you still want to have Cygwin to run make in.
|
||||
|
||||
Then run make -f makefile.mingw. Install the resulting DLLs somewhere
|
||||
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
|
||||
the makefile.mingws for installing, it is up to you where to put them.
|
||||
|
||||
Autoconfiscated build
|
||||
=====================
|
||||
|
||||
It is also possible to use the auto*, ./configure and libtool
|
||||
mechanism when building with gcc. You should be running Cygwin, or
|
||||
maybe cross-compiling from real Unix, for the configure script to
|
||||
work, obviously. It is also possible to use MSYS.
|
||||
|
||||
When building from an official source distribution, to be able to
|
||||
build DLLs without problems, it might well be necessary to have a
|
||||
relatively new version of libtool installed. If so, replace the
|
||||
libtool parts included with GLib sources with newer versions by
|
||||
running libtoolize --force. After that you want to run aclocal-1.4 and
|
||||
autoconf before running configure.
|
||||
If you want to use mingw's gcc, install gcc, Win32 headers and
|
||||
binutils from www.mingw.org. Set up your PATH so that the mingw gcc is
|
||||
the one that gets used, and not Cygwin's gcc. Even if you run the
|
||||
mingw gcc, you still want to have Cygwin to run make in.
|
||||
|
||||
Tor invokes configure using:
|
||||
|
||||
CC='gcc -mcpu=pentium3' CPPFLAGS='-I/target/include'
|
||||
CFLAGS=-O3 LDFLAGS='-L/target/lib' ./configure --with-libiconv
|
||||
--disable-static --prefix=/target --host=i386-pc-mingw32
|
||||
--disable-gtk-doc --prefix=/target --host=i386-pc-mingw32
|
||||
|
||||
(on a single line). The /target/include mentioned contains the header
|
||||
files for libintl and libiconv, and the (import) libraries are in
|
||||
@ -156,15 +121,13 @@ with MSVC.
|
||||
Except for this and a few other minor issues, there really shouldn't
|
||||
be any reason to distribute separate GLib headers and DLLs for gcc and
|
||||
MSVC users, as the compilers generate code that uses the same C
|
||||
runtime library, and is mutually binary compatible. Thus one either
|
||||
has to manually edit glibconfig.h afterwards, or use the supplied
|
||||
glibconfig.h.win32. This has been produced by running configure twice,
|
||||
once using gcc and once using MSVC, and merging the resulting files
|
||||
with diff -D.
|
||||
runtime library. The DLL generated by either compiler is binary
|
||||
compatible with the other one. Thus one either has to manually edit
|
||||
glibconfig.h afterwards, or use the supplied glibconfig.h.win32 which
|
||||
has been produced by running configure twice, once using gcc and once
|
||||
using MSVC, and merging the resulting files with diff -D.
|
||||
|
||||
The hand-written makefile.{mingw,msc} files, and the stuff in the
|
||||
"build" subdirectory, produce DLLs and import libraries that match
|
||||
what Makefile.am and libtool produces. For GLib, the DLL is called
|
||||
For GLib, the DLL is called
|
||||
libglib-2.0-0.dll, and the import libraries libglib-2.0.dll.a and
|
||||
glib-2.0.lib. Note that the "2.0" is part of the "basename" of the
|
||||
library, it is not something that libtool has tucked on. The -0 suffix
|
||||
@ -189,6 +152,20 @@ and automake.) Tor hasn't tested this in a while, either.
|
||||
Building with MSVC
|
||||
==================
|
||||
|
||||
If you are building from a CVS snapshot, you will not have any
|
||||
makefile.msc files. You should copy the corresponding makefile.msc.in
|
||||
file to that name, and replace any @...@ strings with the correct
|
||||
value.
|
||||
|
||||
This is done automatically when an official GLib source distribution
|
||||
package is built, so if you get GLib from a source distribution
|
||||
package, there should be makefile.msc files ready to use (after some
|
||||
editing).
|
||||
|
||||
The hand-written makefile.msc files, and the stuff in the "build"
|
||||
subdirectory, produce DLLs and import libraries that match what the
|
||||
so-called autoconfiscated build produces.
|
||||
|
||||
All the MSVC makefiles are for the command line build with nmake. If
|
||||
you want to use the VC-UI you can simply create wrapper .dsp makefiles
|
||||
(read the VC docs how to do so).
|
||||
|
@ -2618,19 +2618,14 @@ if false; then
|
||||
README
|
||||
config.h.win32
|
||||
glibconfig.h.win32
|
||||
glib/makefile.mingw
|
||||
glib/makefile.msc
|
||||
glib/glib.rc
|
||||
gmodule/makefile.mingw
|
||||
gmodule/makefile.msc
|
||||
gmodule/gmodule.rc
|
||||
gobject/makefile.mingw
|
||||
gobject/makefile.msc
|
||||
gobject/gobject.rc
|
||||
gthread/makefile.mingw
|
||||
gthread/makefile.msc
|
||||
gthread/gthread.rc
|
||||
tests/makefile.mingw
|
||||
tests/makefile.msc
|
||||
])
|
||||
fi
|
||||
|
@ -14,7 +14,6 @@ INCLUDES = -I$(top_srcdir) -DG_LOG_DOMAIN=\"GLib\" \
|
||||
$(GLIB_DEBUG_FLAGS) -DG_DISABLE_DEPRECATED -DGLIB_COMPILATION
|
||||
|
||||
EXTRA_DIST = \
|
||||
makefile.mingw.in \
|
||||
makefile.msc.in \
|
||||
glib.rc.in \
|
||||
gen-unicode-tables.pl \
|
||||
@ -23,7 +22,6 @@ EXTRA_DIST = \
|
||||
# These may be in the builddir too
|
||||
BUILT_EXTRA_DIST = \
|
||||
makefile.msc \
|
||||
makefile.mingw \
|
||||
glib.rc
|
||||
|
||||
lib_LTLIBRARIES = libglib-2.0.la
|
||||
|
@ -4,7 +4,6 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/glib -I$(top_srcdir)/gmodule \
|
||||
-DG_LOG_DOMAIN=\"GModule\" @GLIB_DEBUG_FLAGS@ -DG_DISABLE_DEPRECATED
|
||||
|
||||
EXTRA_DIST = \
|
||||
makefile.mingw.in \
|
||||
makefile.msc.in \
|
||||
gmoduleconf.h.in \
|
||||
gmodule.def \
|
||||
@ -18,7 +17,6 @@ EXTRA_DIST = \
|
||||
gmodule.rc.in
|
||||
|
||||
BUILT_EXTRA_DIST = \
|
||||
makefile.mingw \
|
||||
makefile.msc \
|
||||
gmodule.rc
|
||||
|
||||
|
@ -192,7 +192,6 @@ testgobject_LDADD = $(progs_LDADD)
|
||||
# auxillary files
|
||||
#
|
||||
EXTRA_DIST += \
|
||||
makefile.mingw.in \
|
||||
makefile.msc.in \
|
||||
gobject.def \
|
||||
gobject.rc.in \
|
||||
@ -201,7 +200,6 @@ EXTRA_DIST += \
|
||||
glib-mkenums.1
|
||||
|
||||
BUILT_EXTRA_DIST = \
|
||||
makefile.mingw \
|
||||
makefile.msc \
|
||||
gobject.rc \
|
||||
gmarshal.h \
|
||||
|
@ -5,7 +5,6 @@ INCLUDES = -I$(top_srcdir) -I$(top_srcdir)/glib -I$(top_srcdir)/gthread \
|
||||
@GLIB_DEBUG_FLAGS@ -DG_DISABLE_DEPRECATED
|
||||
|
||||
EXTRA_DIST = \
|
||||
makefile.mingw.in \
|
||||
makefile.msc.in \
|
||||
gthread-posix.c \
|
||||
gthread-solaris.c \
|
||||
@ -15,7 +14,6 @@ EXTRA_DIST = \
|
||||
gthread.rc.in
|
||||
|
||||
BUILT_EXTRA_DIST = \
|
||||
makefile.mingw \
|
||||
makefile.msc \
|
||||
gthread.rc
|
||||
|
||||
|
@ -28,7 +28,6 @@ endif
|
||||
EXTRA_DIST = \
|
||||
$(test_scripts) \
|
||||
makefile.msc.in \
|
||||
makefile.mingw.in \
|
||||
casefold.txt \
|
||||
casemap.txt \
|
||||
gen-casefold-txt.pl \
|
||||
@ -37,7 +36,6 @@ EXTRA_DIST = \
|
||||
utf8.txt
|
||||
|
||||
BUILT_EXTRA_DIST = \
|
||||
makefile.mingw \
|
||||
makefile.msc
|
||||
|
||||
if HAVE_CXX
|
||||
|
Loading…
x
Reference in New Issue
Block a user