Annotation of embedaddon/libxml2/win32/Readme.txt, revision 1.1

1.1     ! misho       1: 
        !             2:                              Windows port
        !             3:                              ============
        !             4: 
        !             5: This directory contains the files required to build this software on the
        !             6: native Windows platform. This is not a place to look for help if you are
        !             7: using a POSIX emulator, such as Cygwin. Check the Unix instructions for 
        !             8: that.
        !             9: 
        !            10: 
        !            11: 
        !            12: CONTENTS
        !            13: ========
        !            14: 
        !            15: 1. General
        !            16:    1.1 Building From the Command-Line
        !            17:    1.2 Configuring The Source
        !            18:    1.3 Compiling
        !            19:    1.4 Installing
        !            20: 
        !            21: 2. Compiler Specifics
        !            22:    2.1 Microsoft Visual C/C++
        !            23:    2.1 GNU C/C++, Mingw Edition
        !            24:    2.2 Borland C++ Builder
        !            25:        2.2.1 Building with iconv support
        !            26:           2.2.2 Compatability problems with MSVC (and probably CYGWIN)
        !            27:           2.2.3 Other caveats
        !            28: 
        !            29: 
        !            30: 
        !            31: 
        !            32: 1. General
        !            33: ==========
        !            34: 
        !            35: 
        !            36: 1.1 Building From The Command-Line
        !            37: ----------------------------------
        !            38: 
        !            39: This is the easiest, preferred and currently supported method. It can
        !            40: be that a subdirectory of the directory where this file resides 
        !            41: contains project files for some IDE. If you want to use that, please
        !            42: refer to the readme file within that subdirectory.
        !            43: 
        !            44: In order to build from the command-line you need to make sure that
        !            45: your compiler works from the command line. This is not always the
        !            46: case, often the required environment variables are missing. If you are
        !            47: not sure, test if this works first. If it doesn't, you will first have
        !            48: to configure your compiler suite to run from the command-line - please
        !            49: refer to your compiler's documentation regarding that.
        !            50: 
        !            51: The first thing you want to do is configure the source. You can have
        !            52: the configuration script do this automatically for you. The
        !            53: configuration script is written in JScript, a Microsoft's
        !            54: implementation of the ECMA scripting language. Almost every Windows
        !            55: machine can execute this through the Windows Scripting Host. If your
        !            56: system lacks the ability to execute JScript for some reason, you must
        !            57: perform the configuration manually and you are on your own with that.
        !            58: 
        !            59: The second step is compiling the source and, optionally, installing it
        !            60: to the location of your choosing.
        !            61: 
        !            62: 
        !            63: 1.2 Configuring The Source
        !            64: --------------------------
        !            65: 
        !            66: The configuration script accepts numerous options. Some of these
        !            67: affect features which will be available in the compiled software,
        !            68: others affect the way the software is built and installed. To see a
        !            69: full list of options supported by the configuration script, run
        !            70: 
        !            71:   cscript configure.js help
        !            72: 
        !            73: from the win32 subdirectory. The configuration script will present you
        !            74: the options it accepts and give a biref explanation of these. In every
        !            75: case you will have two sets of options. The first set is specific to
        !            76: the software you are building and the second one is specific to the
        !            77: Windows port.
        !            78: 
        !            79: Once you have decided which options suit you, run the script with that
        !            80: options. Here is an example:
        !            81: 
        !            82:   cscript configure.js compiler=msvc prefix=c:\opt 
        !            83:     include=c:\opt\include lib=c:\opt\lib debug=yes
        !            84: 
        !            85: The previous example will configure the process to use the Microsoft's
        !            86: compiler, install the library in c:\opt, use c:\opt\include and 
        !            87: c:\opt\lib as additional search paths for the compiler and the linker 
        !            88: and build executables with debug symbols.
        !            89: 
        !            90: Note: Please do not use path names which contain spaces. This will
        !            91: fail. Allowing this would require me to put almost everything in the
        !            92: Makefile in quotas and that looks quite ugly with my
        !            93: syntax-highlighting engine. If you absolutely must use spaces in paths
        !            94: send me an email and tell me why. If there are enough of you out there
        !            95: who need this, or if a single one has a very good reason, I will
        !            96: modify the Makefile to allow spaces in paths.
        !            97: 
        !            98: 
        !            99: 1.3 Compiling
        !           100: -------------
        !           101: 
        !           102: After the configuration stage has been completed, you want to build
        !           103: the software. You will have to use the make tool which comes with
        !           104: your compiler. If you, for example, configured the source to build
        !           105: with Microsoft's MSVC compiler, you would use the NMAKE utility. If
        !           106: you configured it to build with GNU C compiler, mingw edition, you
        !           107: would use the GNU make. Assuming you use MSVC, type
        !           108: 
        !           109:   nmake /f Makefile.msvc
        !           110: 
        !           111: and if you use MinGW, you would type
        !           112: 
        !           113:   make -f Makefile.mingw
        !           114: 
        !           115: and if you use Borland's compiler, you would type
        !           116: 
        !           117:   bmake -f Makefile.bcb
        !           118: 
        !           119: in the win32 subdirectory. When the building completes, you will find
        !           120: the executable files in win32\bin.* directory, where * stands for the
        !           121: name of the compiler you have used.
        !           122: 
        !           123: 
        !           124: 1.4 Installing
        !           125: --------------
        !           126: 
        !           127: You can install the software into the directory you specified to the
        !           128: configure script during the configure stage by typing (with MSVC in
        !           129: this example)
        !           130: 
        !           131:   nmake /f Makefile.msvc install
        !           132: 
        !           133: That would be it, enjoy.
        !           134: 
        !           135: 
        !           136: 
        !           137: 
        !           138: 
        !           139: 2. Compiler Specifics
        !           140: =====================
        !           141: 
        !           142: 
        !           143: 2.1 Microsoft Visual C/C++
        !           144: --------------------------
        !           145: 
        !           146: If you use the compiler which comes with Visual Studio .NET, note that
        !           147: it will link to its own C-runtime named msvcr70.dll or msvcr71.dll. This 
        !           148: file is not available on any machine which doesn't have Visual Studio 
        !           149: .NET installed.
        !           150: 
        !           151: 
        !           152: 2.2 GNU C/C++, Mingw edition
        !           153: ----------------------------
        !           154: 
        !           155: When specifying paths to configure.js, please use slashes instead of 
        !           156: backslashes for directory separation. Sometimes Mingw needs this. If
        !           157: this is the case, and you specify backslashes, then the compiler will 
        !           158: complain about not finding necessary header files.
        !           159: 
        !           160: 
        !           161: 2.2 Borland C++ Builder
        !           162: -----------------------
        !           163: 
        !           164: To compile libxml2 with the BCB6 compiler and associated tools, just follow
        !           165: the basic instructions found in this file file. Be sure to specify 
        !           166: the "compiler=bcb" option when running the configure script. To compile the
        !           167: library and test programs, just type
        !           168: 
        !           169:   make -fMakefile.bcb
        !           170: 
        !           171: That should be all that's required. But there are a few other things to note:
        !           172: 
        !           173: 2.2.1 Building with iconv support
        !           174: 
        !           175: If you configure libxml2 to include iconv support, you will obviously need to
        !           176: obtain the iconv library and include files. To get them, just follow the links 
        !           177: at http://www.gnu.org/software/libiconv/ - there are pre-compiled Win32 
        !           178: versions available, but note that these where built with MSVC. Hence the 
        !           179: supplied import library is in COFF format rather than OMF format. You can 
        !           180: convert this library by using Borland's COFF2OMF utility, or use IMPLIB to 
        !           181: build a new import library from the DLL. Alternatively, it is possible to
        !           182: obtain the iconv source, and build the DLL using the Borland compiler.
        !           183: 
        !           184: There is a minor problem with the header files for iconv - they expect a
        !           185: macro named "EILSEQ" in errno.h, but this is not defined in the Borland
        !           186: headers, and its absence can cause problems. To circumvent this problem, I
        !           187: define EILSEQ=2 in Makefile.bcb. The value "2" is the value for ENOFILE (file
        !           188: not found). This should not have any disastrous side effects beyond possibly
        !           189: displaying a misleading error message in certain situations.
        !           190: 
        !           191: 2.2.2 Compatability problems with MSVC (and probably CYGWIN)
        !           192: 
        !           193: A libxml2 DLL generated by BCB is callable from MSVC programs, but there is a
        !           194: minor problem with the names of the symbols exported from the library. The
        !           195: Borland compiler, by default, prepends an underscore character to global 
        !           196: identifiers (functions and global variables) when generating object files.
        !           197: Hence the function "xmlAddChild" is added to the DLL with the name
        !           198: "_xmlAddChild". The MSVC compiler does not have this behaviour, and looks for
        !           199: the unadorned name. I currently circumvent this problem by writing a .def file
        !           200: which causes BOTH the adorned and unadorned names to be exported from the DLL.
        !           201: This behaviour may not be supported in the future.
        !           202: 
        !           203: An even worse problem is that of generating an import library for the DLL. The
        !           204: Borland-generated DLL is in OMF format. MSVC expects libraries in COFF format,
        !           205: but they don't provide a "OMF2COFF" utility, or even the equivalent of
        !           206: Borland's IMPLIB utility. But it is possible to create an import lib from the
        !           207: .def file, using the command:
        !           208:   LIB /DEF:libxml2.def
        !           209: 
        !           210: If you don't have the .def file, it's possible to create one manually. Use
        !           211: DUMPBIN /EXPORTS /OUT:libxml2.tmp libxml2.dll to get a list of the exported
        !           212: names, and edit this into .def file format.
        !           213: 
        !           214: A similar problem is likely with Cygwin.
        !           215: 
        !           216: 2.2.3 Other caveats
        !           217: 
        !           218: We have tested this only with BCB6, Professional Edition, and BCB 5.5 free
        !           219: command-line tools.
        !           220: 
        !           221: 
        !           222: 
        !           223: Authors: Igor Zlatkovic <igor@zlatkovic.com>
        !           224:          Eric Zurcher <Eric.Zurcher@csiro.au>
        !           225: 
        !           226: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>