1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-10-26 20:25:14 +03:00
libxml2/win32
Daniel Veillard d63437e1fa tried to incorporate comments from bug #59220 Daniel
* win32/dsp/libxml2.def.src: tried to incorporate comments
  from bug #59220
Daniel
2001-09-12 15:00:27 +00:00
..
dsp tried to incorporate comments from bug #59220 Daniel 2001-09-12 15:00:27 +00:00
libxml2 apply change to close #58141 update of the MSC projects from Igor 2001-07-31 15:52:17 +00:00
Makefile.mingw - uri.c: Wayne Davison's patch fixing xmlBuildURI() 2000-10-29 17:53:40 +00:00
README.MSDev applied Win32 Facelift No.2 patches from Igor Zlatkovic for Windows/MSC 2001-08-03 12:06:36 +00:00

-----------------------------------------------------------------------
[24. July, 2001, igor@stud.fh-frankfurt.de] 

And again there are new MSVC project files for libxml2.

You can find the project files for MSVC 6.0 and higher in win32/dsp/
subdirectory of the source tree. You should load the file libxml2.dsw
into the IDE. This is the workspace file which contains all projects
and their interdependencies.

Check the file xmlwin32version.h for optional features and enable or
disable them, as it suits you. The defaults are apropriate for most 
people, so there is usually no need to mess with this.

If you receive few compiler warnings, ignore them. These are harmless
and shall dissapear in the future.

From now on, all object files produced by the compiler end up in the same
directory for each project, no matter if you compile with debugging
turned on or not. This means that a release build shall overwite the 
debug build and vice versa. This makes the dependency tracking easier,
but there are people who don't like this for some reason.

The new project files from win32/dsp/ make any other project files 
obsolete. Previous project files shall remain in their usual location 
for some time and end up removed if noone complains.

-----------------------------------------------------------------------
[January the 16th, 2001, igor@stud.fh-frankfurt.de] 

The following applies only if you use Microsoft Visual C/C++ compiler, 
in combination with Visual C++ IDE. Risk a glance further below for
information on using GNU C compilers, such as Mingw32.

There are two new project files in win32/libxml2:

libxml2_a.dsp:  Use this one to build an object archive, a thing known
                as a static library in the wonderful world of Windows.

libxml2_so.dsp: Use this one to build a shared object, or a DLL if you
                prefer calling it using the dialect mentioned above.

There are few things to note about these project files and their 
differences to the originally supplied project file (libxml2.dsp):

1. C-Runtime is not LIBC anymore. LIBC is fairly old and should be 
considered obsolete today. Microsoft had considered it apropriate to
produce a better C-Runtime library, and indeed, their new one is
called MSVCRT. All decent Win32 systems have this newer library, save
for the oldest incarnations of Win95, which can be ignored safely.
Following that, I changed the dependencies and now both project files
mentioned above use MSVCRT.

2. Both project files cause the resulting binary to depend on a shared 
version of MSVCRT. Yes, that is what I am saying, the C-Runtime is 
linked dynamically, not statically. This enables the programmer to do 
likewise with his libxml2-based software, an action I like to think 
everyone would perform without hesitation.

3. There was a small flaw in the previous project file. The source file
xpointer.c was not included in the project file and that caused a
linkage problem with libxml2-based program, but not with libxml2 
itself, if XPointer feature was enabled. This is now fixed.
-----------------------------------------------------------------------


If you're creating libxml2 with the "mingw" compiler, just copy the
Makefile.mingw to the root directory as "Makefile", edit the PREFIX
value, and run "make".

If you're using MSVC, here are some instructions for how you can
proceed:

The configuration stuff (i.e. what should be enabled/disabled) is in
xmlversion.h I only tested it compiled fine with the current settings
(that is nearly everything disabled, I didn't need many features)

----------------------------

How did I get everything in place so the MSDev project works from the
original archive?

from the cygwin prompt (http://sources.redhat.com/cygwin) :
$ ./configure --disable-corba --without-ftp --without-http --without-html --wit
hout-xpath --without-iconv --without-debug

built the project file for the static library

----------------------------

diff after doing the changes and cleaning up the generated stuff:

[Note: this is out of date]
diff libxml2-2.2.4/xmlversion.h libxml2-2.2.4-reference/xmlversion.h
38c38
< #if 0
---
> #if 1
47c47
< #if 0
---
> #if 1
56c56
< #if 0
---
> #if 1
74c74
< #if 0
---
> #if 1
83c83
< #if 0
---
> #if 1
92c92
< #if 0
---
> #if 1