Skip to content
Snippets Groups Projects
Select Git revision
  • branch/OpenVMS
  • branch/default default protected
  • wild/1a5dd97bc5c0cdedc5a1e02ebc0ea5dbad28a72c
  • wild/ef383bb403b22bb062eca037fe9eb40395e5239d
  • wild/1b27403b1257ec30ce192e8d0af922c1f428c286
  • wild/37aeffd2f03981fb3090960ba53bb5f5c962970d
  • wild/2e949a79e46e9e813e8970a3ed05ded647a5c08e
  • wild/3fe73b8a3bb36ac30a3c4eb3d3d69d6ae453614c
  • wild/9aeb5555cd4f046940492b4572fbc39864a84ae2
  • wild/897288304f9a2037a9463f6001c4688afe711d08
  • wild/2b12dd122d8382282e90998ebadddcf09e847eaf
  • wild/3888945e4fe6438fa8127b7eaf1b10dd9499b15d
  • wild/53e7fce21ef05bf6fa534f067b88e139782e3d5e
  • wild/6096c67ce603c7404e05c9c91b3114f9c0781521
  • wild/69007011f857740b53ce4072c9b8ec202f6e83f3
  • wild/79ef52d5327d1637ddba0472ff28e137245e5c5f
  • wild/ff7aa1400d0d1c4cfc70f3384b2b9dba73668d14
  • wild/8e133c9799f0891d00226eb2f94cd7867d9baf67
  • wild/51e439c2a307243d9801ed7c639396a36ddef007
  • wild/5214eca35b040c5c2b3b3b25277226635e5b1837
  • 2.11.0
21 results

win32

  • Clone with SSH
  • Clone with HTTPS
  • user avatar
    Nick Wellnhofer authored
    The same optimization can be enabled with -fno-semantic-interposition
    since GCC 5. clang has always used this option by default.
    ab5bdd4c
    History
    Name Last commit Last update
    ..
    VC10
    wince
    Makefile.bcb
    Makefile.mingw
    Makefile.msvc
    Readme.txt
    configure.js
    defgen.xsl
    libxml2.def.src
    libxml2.rc
                                 Windows port
                                 ============
    
    This directory contains the files required to build this software on the
    native Windows platform. This is not a place to look for help if you are
    using a POSIX emulator, such as Cygwin. Check the Unix instructions for 
    that.
    
    
    
    CONTENTS
    ========
    
    1. General
       1.1 Building From the Command-Line
       1.2 Configuring The Source
       1.3 Compiling
       1.4 Installing
    
    2. Compiler Specifics
       2.1 Microsoft Visual C/C++
       2.1 GNU C/C++, Mingw Edition
       2.2 Borland C++ Builder
           2.2.1 Building with iconv support
    	   2.2.2 Compatibility problems with MSVC (and probably CYGWIN)
    	   2.2.3 Other caveats
    
    
    
    
    1. General
    ==========
    
    
    1.1 Building From The Command-Line
    ----------------------------------
    
    This is the easiest, preferred and currently supported method. It can
    be that a subdirectory of the directory where this file resides 
    contains project files for some IDE. If you want to use that, please
    refer to the readme file within that subdirectory.
    
    In order to build from the command-line you need to make sure that
    your compiler works from the command line. This is not always the
    case, often the required environment variables are missing. If you are
    not sure, test if this works first. If it doesn't, you will first have
    to configure your compiler suite to run from the command-line - please
    refer to your compiler's documentation regarding that.
    
    The first thing you want to do is configure the source. You can have
    the configuration script do this automatically for you. The
    configuration script is written in JScript, a Microsoft's
    implementation of the ECMA scripting language. Almost every Windows
    machine can execute this through the Windows Scripting Host. If your
    system lacks the ability to execute JScript for some reason, you must
    perform the configuration manually and you are on your own with that.
    
    The second step is compiling the source and, optionally, installing it
    to the location of your choosing.
    
    
    1.2 Configuring The Source
    --------------------------
    
    The configuration script accepts numerous options. Some of these
    affect features which will be available in the compiled software,
    others affect the way the software is built and installed. To see a
    full list of options supported by the configuration script, run
    
      cscript configure.js help
    
    from the win32 subdirectory. The configuration script will present you
    the options it accepts and give a biref explanation of these. In every
    case you will have two sets of options. The first set is specific to
    the software you are building and the second one is specific to the
    Windows port.
    
    Once you have decided which options suit you, run the script with that
    options. Here is an example:
    
      cscript configure.js compiler=msvc prefix=c:\opt 
        include=c:\opt\include lib=c:\opt\lib debug=yes
    
    The previous example will configure the process to use the Microsoft's
    compiler, install the library in c:\opt, use c:\opt\include and 
    c:\opt\lib as additional search paths for the compiler and the linker 
    and build executables with debug symbols.
    
    Note: Please do not use path names which contain spaces. This will
    fail. Allowing this would require me to put almost everything in the
    Makefile in quotas and that looks quite ugly with my
    syntax-highlighting engine. If you absolutely must use spaces in paths
    send me an email and tell me why. If there are enough of you out there
    who need this, or if a single one has a very good reason, I will
    modify the Makefile to allow spaces in paths.
    
    
    1.3 Compiling
    -------------
    
    After the configuration stage has been completed, you want to build
    the software. You will have to use the make tool which comes with
    your compiler. If you, for example, configured the source to build
    with Microsoft's MSVC compiler, you would use the NMAKE utility. If
    you configured it to build with GNU C compiler, mingw edition, you
    would use the GNU make. Assuming you use MSVC, type
    
      nmake /f Makefile.msvc
    
    and if you use MinGW, you would type
    
      make -f Makefile.mingw
    
    and if you use Borland's compiler, you would type
    
      bmake -f Makefile.bcb
    
    in the win32 subdirectory. When the building completes, you will find
    the executable files in win32\bin.* directory, where * stands for the
    name of the compiler you have used.
    
    
    1.4 Installing
    --------------
    
    You can install the software into the directory you specified to the
    configure script during the configure stage by typing (with MSVC in
    this example)
    
      nmake /f Makefile.msvc install
    
    That would be it, enjoy.
    
    
    
    
    
    2. Compiler Specifics
    =====================
    
    
    2.1 Microsoft Visual C/C++
    --------------------------
    
    If you use the compiler which comes with Visual Studio .NET, note that
    it will link to its own C-runtime named msvcr70.dll or msvcr71.dll. This 
    file is not available on any machine which doesn't have Visual Studio 
    .NET installed.
    
    
    2.2 GNU C/C++, Mingw edition
    ----------------------------
    
    When specifying paths to configure.js, please use slashes instead of 
    backslashes for directory separation. Sometimes Mingw needs this. If
    this is the case, and you specify backslashes, then the compiler will 
    complain about not finding necessary header files.
    
    
    2.2 Borland C++ Builder
    -----------------------
    
    To compile libxml2 with the BCB6 compiler and associated tools, just follow
    the basic instructions found in this file file. Be sure to specify 
    the "compiler=bcb" option when running the configure script. To compile the
    library and test programs, just type
    
      make -fMakefile.bcb
    
    That should be all that's required. But there are a few other things to note:
    
    2.2.1 Building with iconv support
    
    If you configure libxml2 to include iconv support, you will obviously need to
    obtain the iconv library and include files. To get them, just follow the links 
    at http://www.gnu.org/software/libiconv/ - there are pre-compiled Win32 
    versions available, but note that these where built with MSVC. Hence the 
    supplied import library is in COFF format rather than OMF format. You can 
    convert this library by using Borland's COFF2OMF utility, or use IMPLIB to 
    build a new import library from the DLL. Alternatively, it is possible to
    obtain the iconv source, and build the DLL using the Borland compiler.
    
    There is a minor problem with the header files for iconv - they expect a
    macro named "EILSEQ" in errno.h, but this is not defined in the Borland
    headers, and its absence can cause problems. To circumvent this problem, I
    define EILSEQ=2 in Makefile.bcb. The value "2" is the value for ENOFILE (file
    not found). This should not have any disastrous side effects beyond possibly
    displaying a misleading error message in certain situations.
    
    2.2.2 Compatibility problems with MSVC (and probably CYGWIN)
    
    A libxml2 DLL generated by BCB is callable from MSVC programs, but there is a
    minor problem with the names of the symbols exported from the library. The
    Borland compiler, by default, prepends an underscore character to global 
    identifiers (functions and global variables) when generating object files.
    Hence the function "xmlAddChild" is added to the DLL with the name
    "_xmlAddChild". The MSVC compiler does not have this behaviour, and looks for
    the unadorned name. I currently circumvent this problem by writing a .def file
    which causes BOTH the adorned and unadorned names to be exported from the DLL.
    This behaviour may not be supported in the future.
    
    An even worse problem is that of generating an import library for the DLL. The
    Borland-generated DLL is in OMF format. MSVC expects libraries in COFF format,
    but they don't provide a "OMF2COFF" utility, or even the equivalent of
    Borland's IMPLIB utility. But it is possible to create an import lib from the
    .def file, using the command:
      LIB /DEF:libxml2.def
    
    If you don't have the .def file, it's possible to create one manually. Use
    DUMPBIN /EXPORTS /OUT:libxml2.tmp libxml2.dll to get a list of the exported
    names, and edit this into .def file format.
    
    A similar problem is likely with Cygwin.
    
    2.2.3 Other caveats
    
    We have tested this only with BCB6, Professional Edition, and BCB 5.5 free
    command-line tools.
    
    
    
    Authors: Igor Zlatkovic <igor@zlatkovic.com>
             Eric Zurcher <Eric.Zurcher@csiro.au>