1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-01-18 06:03:35 +03:00

modified for compiler coexistence, added xmlwriter, added cruntime option

This commit is contained in:
Igor Zlatkovic 2003-11-27 18:39:01 +00:00
parent b23de5ad89
commit 4f92821508
5 changed files with 63 additions and 148 deletions

View File

@ -15,52 +15,16 @@
# March 2002, Igor Zlatkovic <igor@zlatkovic.com> # March 2002, Igor Zlatkovic <igor@zlatkovic.com>
# #
AUTOCONF = .\config.bcb
# Extra setting to control whether to use dynamic or static Borland runtime. # Extra setting to control whether to use dynamic or static Borland runtime.
# Set to "1" to use static RTL, anything else to use dynamic RTL # Set to "1" to use static RTL, anything else to use dynamic RTL
STATIC_RTL = 0 STATIC_RTL = 0
# If you cannot run the configuration script, which would take the burden of
# editing this file from your back, then remove the following line...
!include $(AUTOCONF)
# ...and enable the following lines and adapt them to your environment.
#XML_SRCDIR = ..
#UTILS_SRCDIR = ..
#BINDIR = binaries
#LIBXML_MAJOR_VERSION = 0 # set this to the right value.
#LIBXML_MINOR_VERSION = 0 # set this to the right value.
#LIBXML_MICRO_VERSION = 0 # set this to the right value.
#WITH_TRIO = 0
#WITH_THREADS = 0
#WITH_FTP = 1
#WITH_HTTP = 1
#WITH_HTML = 1
#WITH_C14N = 1
#WITH_CATALOG = 1
#WITH_DOCB = 1
#WITH_XPATH = 1
#WITH_XPTR = 1
#WITH_XINCLUDE = 1
#WITH_ICONV = 1
#WITH_ZLIB = 0
#WITH_DEBUG = 1
#WITH_MEM_DEBUG = 0
#WITH_SCHEMAS = 1
#DEBUG = 0
#STATIC = 0
#PREFIX = . # set this to the right value.
#BINPREFIX = $(PREFIX)\bin
#INCPREFIX = $(PREFIX)\include
#LIBPREFIX = $(PREFIX)\lib
#SOPREFIX = $(PREFIX)\lib
#INCLUDE = $(INCLUDE);$(INCPREFIX)
#LIB = $(LIB);$(LIBPREFIX)
# There should never be a need to modify anything below this line. # There should never be a need to modify anything below this line.
# ---------------------------------------------------------------- # ----------------------------------------------------------------
AUTOCONF = .\config.bcb
!include $(AUTOCONF)
!if !$d(BCB) !if !$d(BCB)
BCB = $(MAKEDIR)\.. BCB = $(MAKEDIR)\..
!endif !endif
@ -76,9 +40,10 @@ XML_A = $(XML_BASENAME)_a.lib
DUMMY = dir.exists DUMMY = dir.exists
# Place where we let the compiler put its intermediate trash. # Place where we let the compiler put its intermediate trash.
XML_INTDIR = $(XML_BASENAME).int BINDIR = bin.bcb
XML_INTDIR_A = $(XML_BASENAME)_a.int XML_INTDIR = int.bcb
UTILS_INTDIR = utils.int XML_INTDIR_A = int.a.bcb
UTILS_INTDIR = int.utils.bcb
# The preprocessor and its options. # The preprocessor and its options.
CPP = cpp32.exe -P- -DWIN32 CPP = cpp32.exe -P- -DWIN32
@ -184,6 +149,7 @@ XML_OBJS = $(XML_INTDIR)\c14n.obj\
$(XML_INTDIR)\xmlschemas.obj\ $(XML_INTDIR)\xmlschemas.obj\
$(XML_INTDIR)\xmlschemastypes.obj\ $(XML_INTDIR)\xmlschemastypes.obj\
$(XML_INTDIR)\xmlunicode.obj\ $(XML_INTDIR)\xmlunicode.obj\
$(XML_INTDIR)\xmlwriter.obj\
$(XML_INTDIR)\xpath.obj\ $(XML_INTDIR)\xpath.obj\
$(XML_INTDIR)\xpointer.obj $(XML_INTDIR)\xpointer.obj
@ -223,6 +189,7 @@ XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\
$(XML_INTDIR_A)\xmlschemas.obj\ $(XML_INTDIR_A)\xmlschemas.obj\
$(XML_INTDIR_A)\xmlschemastypes.obj\ $(XML_INTDIR_A)\xmlschemastypes.obj\
$(XML_INTDIR_A)\xmlunicode.obj\ $(XML_INTDIR_A)\xmlunicode.obj\
$(XML_INTDIR_A)\xmlwriter.obj\
$(XML_INTDIR_A)\xpath.obj\ $(XML_INTDIR_A)\xpath.obj\
$(XML_INTDIR_A)\xpointer.obj $(XML_INTDIR_A)\xpointer.obj

View File

@ -12,48 +12,11 @@
# #
# November 2002, Igor Zlatkovic <igor@zlatkovic.com> # November 2002, Igor Zlatkovic <igor@zlatkovic.com>
AUTOCONF = .\config.mingw
# If you cannot run the configuration script, which would take the burden of
# editing this file from your back, then remove the following line...
include $(AUTOCONF)
# ...and enable the following lines and adapt them to your environment.
#XML_SRCDIR = ..
#UTILS_SRCDIR = ..
#BINDIR = binaries
#LIBXML_MAJOR_VERSION = 0 # set this to the right value.
#LIBXML_MINOR_VERSION = 0 # set this to the right value.
#LIBXML_MICRO_VERSION = 0 # set this to the right value.
#WITH_TRIO = 0
#WITH_THREADS = 0
#WITH_FTP = 1
#WITH_HTTP = 1
#WITH_HTML = 1
#WITH_C14N = 1
#WITH_CATALOG = 1
#WITH_DOCB = 1
#WITH_XPATH = 1
#WITH_XPTR = 1
#WITH_XINCLUDE = 1
#WITH_ICONV = 1
#WITH_ZLIB = 0
#WITH_DEBUG = 1
#WITH_MEM_DEBUG = 0
#WITH_SCHEMAS = 1
#DEBUG = 0
#STATIC = 0
#PREFIX = . # set this to the right value.
#BINPREFIX = $(PREFIX)\bin
#INCPREFIX = $(PREFIX)\include
#LIBPREFIX = $(PREFIX)\lib
#SOPREFIX = $(PREFIX)\lib
#INCLUDE += ;$(INCPREFIX)
#LIB += ;$(LIBPREFIX)
# There should never be a need to modify anything below this line. # There should never be a need to modify anything below this line.
# ---------------------------------------------------------------- # ----------------------------------------------------------------
AUTOCONF = .\config.mingw
include $(AUTOCONF)
# Names of various input and output components. # Names of various input and output components.
XML_NAME = xml2 XML_NAME = xml2
@ -62,10 +25,11 @@ XML_SO = $(XML_BASENAME).dll
XML_IMP = $(XML_BASENAME).lib XML_IMP = $(XML_BASENAME).lib
XML_A = $(XML_BASENAME).a XML_A = $(XML_BASENAME).a
# Place where we let the compiler put its intermediate trash. # Place where we let the compiler put its output.
XML_INTDIR = $(XML_BASENAME).int BINDIR = bin.mingw
XML_INTDIR_A = $(XML_BASENAME)_a.int XML_INTDIR = int.mingw
UTILS_INTDIR = utils.int XML_INTDIR_A = int.a.mingw
UTILS_INTDIR = int.utils.mingw
# The preprocessor and its options. # The preprocessor and its options.
CPP = gcc.exe -E CPP = gcc.exe -E
@ -171,6 +135,7 @@ XML_OBJS = $(XML_INTDIR)/c14n.o\
$(XML_INTDIR)/xmlschemas.o\ $(XML_INTDIR)/xmlschemas.o\
$(XML_INTDIR)/xmlschemastypes.o\ $(XML_INTDIR)/xmlschemastypes.o\
$(XML_INTDIR)/xmlunicode.o\ $(XML_INTDIR)/xmlunicode.o\
$(XML_INTDIR)/xmlwriter.o\
$(XML_INTDIR)/xpath.o\ $(XML_INTDIR)/xpath.o\
$(XML_INTDIR)/xpointer.o $(XML_INTDIR)/xpointer.o
@ -212,6 +177,7 @@ XML_OBJS_A = $(XML_INTDIR_A)/c14n.o\
$(XML_INTDIR_A)/xmlschemas.o\ $(XML_INTDIR_A)/xmlschemas.o\
$(XML_INTDIR_A)/xmlschemastypes.o\ $(XML_INTDIR_A)/xmlschemastypes.o\
$(XML_INTDIR_A)/xmlunicode.o\ $(XML_INTDIR_A)/xmlunicode.o\
$(XML_INTDIR_A)/xmlwriter.o\
$(XML_INTDIR_A)/xpath.o\ $(XML_INTDIR_A)/xpath.o\
$(XML_INTDIR_A)/xpointer.o $(XML_INTDIR_A)/xpointer.o

View File

@ -12,48 +12,11 @@
# #
# March 2002, Igor Zlatkovic <igor@zlatkovic.com> # March 2002, Igor Zlatkovic <igor@zlatkovic.com>
AUTOCONF = .\config.msvc
# If you cannot run the configuration script, which would take the burden of
# editing this file from your back, then remove the following line...
!include $(AUTOCONF)
# ...and enable the following lines and adapt them to your environment.
#XML_SRCDIR = ..
#UTILS_SRCDIR = ..
#BINDIR = binaries
#LIBXML_MAJOR_VERSION = 0 # set this to the right value.
#LIBXML_MINOR_VERSION = 0 # set this to the right value.
#LIBXML_MICRO_VERSION = 0 # set this to the right value.
#WITH_TRIO = 0
#WITH_THREADS = 0
#WITH_FTP = 1
#WITH_HTTP = 1
#WITH_HTML = 1
#WITH_C14N = 1
#WITH_CATALOG = 1
#WITH_DOCB = 1
#WITH_XPATH = 1
#WITH_XPTR = 1
#WITH_XINCLUDE = 1
#WITH_ICONV = 1
#WITH_ZLIB = 0
#WITH_DEBUG = 1
#WITH_MEM_DEBUG = 0
#WITH_SCHEMAS = 1
#DEBUG = 0
#STATIC = 0
#PREFIX = . # set this to the right value.
#BINPREFIX = $(PREFIX)\bin
#INCPREFIX = $(PREFIX)\include
#LIBPREFIX = $(PREFIX)\lib
#SOPREFIX = $(PREFIX)\lib
#INCLUDE = $(INCLUDE);$(INCPREFIX)
#LIB = $(LIB);$(LIBPREFIX)
# There should never be a need to modify anything below this line. # There should never be a need to modify anything below this line.
# ---------------------------------------------------------------- # ----------------------------------------------------------------
AUTOCONF = .\config.msvc
!include $(AUTOCONF)
# Names of various input and output components. # Names of various input and output components.
XML_NAME = xml2 XML_NAME = xml2
@ -63,10 +26,11 @@ XML_IMP = $(XML_BASENAME).lib
XML_DEF = $(XML_BASENAME).def XML_DEF = $(XML_BASENAME).def
XML_A = $(XML_BASENAME)_a.lib XML_A = $(XML_BASENAME)_a.lib
# Place where we let the compiler put its intermediate trash. # Place where we let the compiler put its output.
XML_INTDIR = $(XML_BASENAME).int BINDIR = bin.msvc
XML_INTDIR_A = $(XML_BASENAME)_a.int XML_INTDIR = int.msvc
UTILS_INTDIR = utils.int XML_INTDIR_A = int.a.msvc
UTILS_INTDIR = int.utils.msvc
# The preprocessor and its options. # The preprocessor and its options.
CPP = cl.exe /EP CPP = cl.exe /EP
@ -77,7 +41,7 @@ CPPFLAGS = $(CPPFLAGS) /D "_REENTRANT"
# The compiler and its options. # The compiler and its options.
CC = cl.exe CC = cl.exe
CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W1 /MD CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W1 $(CRUNTIME)
CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX) CFLAGS = $(CFLAGS) /I$(XML_SRCDIR) /I$(XML_SRCDIR)\include /I$(INCPREFIX)
!if "$(WITH_THREADS)" != "no" !if "$(WITH_THREADS)" != "no"
CFLAGS = $(CFLAGS) /D "_REENTRANT" CFLAGS = $(CFLAGS) /D "_REENTRANT"
@ -160,6 +124,7 @@ XML_OBJS = $(XML_INTDIR)\c14n.obj\
$(XML_INTDIR)\xmlschemas.obj\ $(XML_INTDIR)\xmlschemas.obj\
$(XML_INTDIR)\xmlschemastypes.obj\ $(XML_INTDIR)\xmlschemastypes.obj\
$(XML_INTDIR)\xmlunicode.obj\ $(XML_INTDIR)\xmlunicode.obj\
$(XML_INTDIR)\xmlwriter.obj\
$(XML_INTDIR)\xpath.obj\ $(XML_INTDIR)\xpath.obj\
$(XML_INTDIR)\xpointer.obj $(XML_INTDIR)\xpointer.obj
@ -199,6 +164,7 @@ XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\
$(XML_INTDIR_A)\xmlschemas.obj\ $(XML_INTDIR_A)\xmlschemas.obj\
$(XML_INTDIR_A)\xmlschemastypes.obj\ $(XML_INTDIR_A)\xmlschemastypes.obj\
$(XML_INTDIR_A)\xmlunicode.obj\ $(XML_INTDIR_A)\xmlunicode.obj\
$(XML_INTDIR_A)\xmlwriter.obj\
$(XML_INTDIR_A)\xpath.obj\ $(XML_INTDIR_A)\xpath.obj\
$(XML_INTDIR_A)\xpointer.obj $(XML_INTDIR_A)\xpointer.obj

View File

@ -79,13 +79,13 @@ Windows port.
Once you have decided which options suit you, run the script with that Once you have decided which options suit you, run the script with that
options. Here is an example: options. Here is an example:
cscript configure.js prefix=c:\opt include=c:\opt\include cscript configure.js compiler=msvc prefix=c:\opt
lib=c:\opt\lib debug=yes include=c:\opt\include lib=c:\opt\lib debug=yes
The previous example will configure the process to install the library The previous example will configure the process to use the Microsoft's
in c:\opt, use c:\opt\include and c:\opt\lib as additional search compiler, install the library in c:\opt, use c:\opt\include and
paths for the compiler and the linker and build executables with debug c:\opt\lib as additional search paths for the compiler and the linker
symbols. and build executables with debug symbols.
Note: Please do not use path names which contain spaces. This will Note: Please do not use path names which contain spaces. This will
fail. Allowing this would require me to put almost everything in the fail. Allowing this would require me to put almost everything in the
@ -106,19 +106,29 @@ with Microsoft's MSVC compiler, you would use the NMAKE utility. If
you configured it to build with GNU C compiler, mingw edition, you you configured it to build with GNU C compiler, mingw edition, you
would use the GNU make. Assuming you use MSVC, type would use the GNU make. Assuming you use MSVC, type
nmake 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 in the win32 subdirectory. When the building completes, you will find
the executable files in win32\binaries directory. the executable files in win32\bin.* directory, where * stands for the
name of the compiler you have used.
1.4 Installing 1.4 Installing
-------------- --------------
You can install the software into the directory you specified to the You can install the software into the directory you specified to the
configure script during the configure stage by typing configure script during the configure stage by typing (with MSVC in
this example)
nmake install nmake /f Makefile.msvc install
That would be it, enjoy. That would be it, enjoy.
@ -134,8 +144,9 @@ That would be it, enjoy.
-------------------------- --------------------------
If you use the compiler which comes with Visual Studio .NET, note that If you use the compiler which comes with Visual Studio .NET, note that
it will link to its own C-runtime named msvcr70.dll. This file is not it will link to its own C-runtime named msvcr70.dll or msvcr71.dll. This
available on any machine which doesn't have .NET installed. file is not available on any machine which doesn't have Visual Studio
.NET installed.
2.2 GNU C/C++, Mingw edition 2.2 GNU C/C++, Mingw edition
@ -143,8 +154,8 @@ available on any machine which doesn't have .NET installed.
When specifying paths to configure.js, please use slashes instead of When specifying paths to configure.js, please use slashes instead of
backslashes for directory separation. Sometimes Mingw needs this. If backslashes for directory separation. Sometimes Mingw needs this. If
this is the case, then 'make install' won't work correctly and you'll this is the case, and you specify backslashes, then the compiler will
have to install manually. complain about not finding necessary header files.
2.2 Borland C++ Builder 2.2 Borland C++ Builder
@ -204,7 +215,8 @@ A similar problem is likely with Cygwin.
2.2.3 Other caveats 2.2.3 Other caveats
I have tested this only with BCB6, Professional Edition. We have tested this only with BCB6, Professional Edition, and BCB 5.5 free
command-line tools.

View File

@ -10,8 +10,6 @@
/* The source directory, relative to the one where this file resides. */ /* The source directory, relative to the one where this file resides. */
var srcDirXml = ".."; var srcDirXml = "..";
var srcDirUtils = ".."; var srcDirUtils = "..";
/* The directory where we put the binaries after compilation. */
var binDir = "binaries";
/* Base name of what we are building. */ /* Base name of what we are building. */
var baseName = "libxml2"; var baseName = "libxml2";
/* Configure file which contains the version and the output file where /* Configure file which contains the version and the output file where
@ -59,6 +57,7 @@ var withPython = false;
/* Win32 build options. */ /* Win32 build options. */
var dirSep = "\\"; var dirSep = "\\";
var compiler = "msvc"; var compiler = "msvc";
var cruntime = "/MD";
var buildDebug = 0; var buildDebug = 0;
var buildStatic = 0; var buildStatic = 0;
var buildPrefix = "."; var buildPrefix = ".";
@ -135,6 +134,7 @@ function usage()
txt += " python: Build Python bindings (" + (withPython? "yes" : "no") + ")\n"; txt += " python: Build Python bindings (" + (withPython? "yes" : "no") + ")\n";
txt += "\nWin32 build options, default value given in parentheses:\n\n"; txt += "\nWin32 build options, default value given in parentheses:\n\n";
txt += " compiler: Compiler to be used [msvc|mingw|bcb] (" + compiler + ")\n"; txt += " compiler: Compiler to be used [msvc|mingw|bcb] (" + compiler + ")\n";
txt += " cruntime: C-runtime compiler option (only msvc) (" + cruntime + ")\n";
txt += " debug: Build unoptimised debug executables (" + (buildDebug? "yes" : "no") + ")\n"; txt += " debug: Build unoptimised debug executables (" + (buildDebug? "yes" : "no") + ")\n";
txt += " static: Link xmllint statically to libxml2 (" + (buildStatic? "yes" : "no") + ")\n"; txt += " static: Link xmllint statically to libxml2 (" + (buildStatic? "yes" : "no") + ")\n";
txt += " prefix: Base directory for the installation (" + buildPrefix + ")\n"; txt += " prefix: Base directory for the installation (" + buildPrefix + ")\n";
@ -191,7 +191,6 @@ function discoverVersion()
cf.Close(); cf.Close();
vf.WriteLine("XML_SRCDIR=" + srcDirXml); vf.WriteLine("XML_SRCDIR=" + srcDirXml);
vf.WriteLine("UTILS_SRCDIR=" + srcDirUtils); vf.WriteLine("UTILS_SRCDIR=" + srcDirUtils);
vf.WriteLine("BINDIR=" + binDir);
vf.WriteLine("WITH_TRIO=" + (withTrio? "1" : "0")); vf.WriteLine("WITH_TRIO=" + (withTrio? "1" : "0"));
vf.WriteLine("WITH_THREADS=" + withThreads); vf.WriteLine("WITH_THREADS=" + withThreads);
vf.WriteLine("WITH_FTP=" + (withFtp? "1" : "0")); vf.WriteLine("WITH_FTP=" + (withFtp? "1" : "0"));
@ -230,6 +229,7 @@ function discoverVersion()
if (compiler == "msvc") { if (compiler == "msvc") {
vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude); vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude);
vf.WriteLine("LIB=$(LIB);" + buildLib); vf.WriteLine("LIB=$(LIB);" + buildLib);
vf.WriteLine("CRUNTIME=" + cruntime);
} else if (compiler == "mingw") { } else if (compiler == "mingw") {
vf.WriteLine("INCLUDE+=;" + buildInclude); vf.WriteLine("INCLUDE+=;" + buildInclude);
vf.WriteLine("LIB+=;" + buildLib); vf.WriteLine("LIB+=;" + buildLib);
@ -468,6 +468,8 @@ for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) {
withPython = strToBool(arg.substring(opt.length + 1, arg.length)); withPython = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "compiler") else if (opt == "compiler")
compiler = arg.substring(opt.length + 1, arg.length); compiler = arg.substring(opt.length + 1, arg.length);
else if (opt == "cruntime")
cruntime = arg.substring(opt.length + 1, arg.length);
else if (opt == "debug") else if (opt == "debug")
buildDebug = strToBool(arg.substring(opt.length + 1, arg.length)); buildDebug = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "static") else if (opt == "static")
@ -605,6 +607,8 @@ txtOut += "\n";
txtOut += "Win32 build configuration\n"; txtOut += "Win32 build configuration\n";
txtOut += "-------------------------\n"; txtOut += "-------------------------\n";
txtOut += " Compiler: " + compiler + "\n"; txtOut += " Compiler: " + compiler + "\n";
if (compiler == "msvc")
txtOut += " C-Runtime option: " + cruntime + "\n";
txtOut += " Debug symbols: " + boolToStr(buildDebug) + "\n"; txtOut += " Debug symbols: " + boolToStr(buildDebug) + "\n";
txtOut += " Static xmllint: " + boolToStr(buildStatic) + "\n"; txtOut += " Static xmllint: " + boolToStr(buildStatic) + "\n";
txtOut += " Install prefix: " + buildPrefix + "\n"; txtOut += " Install prefix: " + buildPrefix + "\n";