summaryrefslogtreecommitdiff
path: root/README.win32
diff options
context:
space:
mode:
authorPhilip Withnall <withnall@endlessm.com>2017-07-03 11:30:08 +0100
committerPhilip Withnall <withnall@endlessm.com>2017-07-10 11:22:40 +0100
commita13113491855bf2803374bcfece824df0891c82a (patch)
treeff15b94ae4ac4ad60528b3e3da204e65e96987b3 /README.win32
parent1d3210a8abeed853a943fe1620ccd4f24b76eb05 (diff)
downloadglib-a13113491855bf2803374bcfece824df0891c82a.tar.gz
build: Drop nmake/MSC build system for GLib
It hasn’t been seriously maintained for the best part of 10 years and is very outdated. The recommended way to build GLib on Windows is now Visual Studio: https://wiki.gnome.org/Projects/GTK%2B/Win32/MSVCCompilationOfGTKStack#GLib Signed-off-by: Philip Withnall <withnall@endlessm.com> https://bugzilla.gnome.org/show_bug.cgi?id=722047
Diffstat (limited to 'README.win32')
-rw-r--r--README.win32183
1 files changed, 1 insertions, 182 deletions
diff --git a/README.win32 b/README.win32
index fa6a3a016..83f0c987a 100644
--- a/README.win32
+++ b/README.win32
@@ -6,8 +6,7 @@ fashion. Lots of information here might be misleading or outdated. You
have been warned.
The general parts, and the section about gcc and autoconfiscated
-build, and about a Visual Studio build are by Tor Lillqvist. The
-sections about MSVC build with NMAKE is by Hans Breuer.
+build, and about a Visual Studio build are by Tor Lillqvist.
General
=======
@@ -201,184 +200,4 @@ $python win32/setup.py --perl path_to_your_perl.exe
for more usage on this script, run
$python win32/setup.py -h/--help
-Building with MSVC and NMAKE
-============================
-
-If you are building from a GIT snapshot, you will not have all
-makefile.msc files. You should copy the corresponding makefile.msc.in
-file to that name, and replace any @...@ strings with the correct
-value (or use the python script de-in.py from http://hans.breuer.org/gtk/de-in.py).
-
-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 (possibly 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).
-
-Some modules may require Perl to auto-generate files. The goal (at
-least Hans's) is to not require any more tools. Of course you need
-the Microsoft Platform SDK in a recent enough - but not too recent - version.
-The last PSDK for Visual Studio 6 is:
- http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
-At least install the Core SDK, maybe also the "Tablet PC SDK".
-
-
-Build with:
-
-nmake -f makefile.msc
- or
-nmake -f makefile.msc DEBUG=1
-
-[
- The former will create 'release' versions of the DLLs. If you
- plan to distribute you DLLs please use this command. The latter
- will create DLLs with debug information _and_ link them with
- msvcrtd.dll instead of msvcrt.dll.
- Beware: There are known problems with mixing DLLs in one
- application, which are build against different runtimes.
- Especially the index-to-file mapping used by 'unix-style' file
- operation - _open() _pipe() etc. - breaks sometimes in strange
- ways (for example the Gimp plug-in communication).
-]
-
-Required libraries (not build from svn)
-------------------
- libintl (gnu-intl),
-
-are available pre-built from the website mentioned above.
-
-Versioning
-----------
-Instead of the Unix and auto* way of tracking versions and resolving
-dependencies (configure; make; make install) involving autoconf,
-automake, libtool and friends the MSVC build uses a different
-approach.
-
-The core of it's versioning is the file build/win32/module.defs.
-It contains entries of the form MODULE_VER, e.g.:
-
- GLIB_VER = 2.0
- LIBICONV_VER = 1.3
-
-and the placement of these modules defined as MODULE, e.g.:
-
- GLIB = $(TOP)/glib
- LIBICONV = $(TOP)/libiconv-$(LIBICONV_VER)
-
-whereas TOP is defined as the relative path from the respective
-module directory to your top build directory. Every makefile.msc
-needs to define TOP before including the common make file part
-make.msc, which than includes module.defs, like:
-
-TOP = ../..
-!INCLUDE $(TOP)/glib/build/win32/make.msc
-
-(Taken from gtk+/gdk/makefile.msc)
-
-With this provision it is possible to create almost placement
-independent makefiles without requiring to 'install' the libraries and
-headers into a common place (as it is done on Unix, and as Tor does
-when producing his zipfiles with prebuilt GLib, GTK+ etc).
-
-Special Files
--------------
- config.h.win32.in : @XXX_MAJOR_VERSION@ needs to be replaced by
-the current version/build number. The resulting file is to be saved
-as 'config.h.win32'. This should be automatically done if a package
-gets build on the Unix platform.
-
- makefile.msc.in : @XXX_MAJOR_VERSION@ to be replaced. Save as
-makefile.msc.
-
- <module>.def : every function which should be used from the outside of
-a dll needs to be marked for 'export'. It is common that one needs to change
-these files after some api changes occured. If there are variables to be
-exported another mechanism is needed, like :
-
- #ifdef G_OS_WIN32
- # ifdef GDK_COMPILATION
- # define GDKVAR __declspec(dllexport)
- # else
- # define GDKVAR extern __declspec(dllimport)
- # endif
- #else
- # define GDKVAR extern
- #endif
-
-
-
-Directory Structure
--------------------
-all modules should be build in a common directory tree otherwise you
-need to adapt the file 'module.defs'. They are listed here in increasing
-dependencies order.
-
-<common rootdir without spaces>
- |
- +- glib
- | |
- | +- build : [this module lives in the SVN root dir]
- | | +- win32
- | | .\module.defs : defines (relative) locations of the headers
- | | and libs and version numbers to be include
- | | in dll names
- | | .\make.msc : include by almost every 'makefile.msc'
- | |
- | | .\README.WIN32 : more information how to build
- | | .\glibconfig.h.win32.in : similar to config.h.win32.in
- | | .\makefile.msc : master makefile, sub dir makefiles should work
- | |
- | +- glib
- | +- gmodule
- | +- gthread : does _not_ depend on pthread anymore
- | +- gobject
- |
- +- pango
- | +- pango : 'native' build does not require extra libs and
- | | includes the minimal required text renderer
- | | (there is also a currently slightly broken FreeType2
- | | based implementation for win32)
- | +- modules (not yet build)
- |
- +- atk
- | +- atk
- | .\makefile.msc : build here
- |
- +- gtk+
- | | .\config.h.win32 : for all the below
- | |
- | +- gdk-pixbuf
- | | .\gdk_pixbuf.rc.in : version resource for the DLLs. Needs
- | | to be converted (filled with version info)
- | | as described above.
- | |
- | +- gdk
- | | | .\makefile.msc : some auto-generation is needed to build in the
- | | | in the subdirectory
- | | +- win32
- | |
- | +- gtk
-
- |
- +- gimp
- | .\makefile.msc : master makefile to build The Gimp. The makefiles
- | from the sub dirs should work stand alone, but than
- | the user needs to know the build order
-
- |
- +- dia : additionally depends on libart_lgpl (in SVN)
- | and libxml2 ( see http://www.xmlsoft.org/ )
- +- lib
- +- app
- +- objects
- +- plug-ins
- +- python
-
[1]: https://wiki.gnome.org/Projects/GTK%2B/Win32/MSVCCompilationOfGTKStack under "Preparations"