summaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorIgor Zlatkovic <igor@src.gnome.org>2002-11-14 17:43:24 +0000
committerIgor Zlatkovic <igor@src.gnome.org>2002-11-14 17:43:24 +0000
commitbd1a306cabfb0dcee471467e89a6daceb8597e8f (patch)
tree2f93bdefab614bf7e5cd7ccdf253933e3fd51ed0 /win32
parentb8036ea16fcad236c02d55175d1949f951fee370 (diff)
downloadlibxml2-bd1a306cabfb0dcee471467e89a6daceb8597e8f.tar.gz
integrated mingw into jscript configure
Diffstat (limited to 'win32')
-rw-r--r--win32/Makefile.mingw511
-rw-r--r--win32/Makefile.msvc6
-rw-r--r--win32/configure.js27
3 files changed, 363 insertions, 181 deletions
diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw
index c6b297aa..a812156e 100644
--- a/win32/Makefile.mingw
+++ b/win32/Makefile.mingw
@@ -1,175 +1,336 @@
-# This Makefile will allow you to build the static library, a DLL, the
-# DLL-import library, and the test executables using the "mingw" gcc
-# compiler environment. This Makefile is based on Alfred Reibenschuh's
-# version for 2.1.1, and was modified by Wayne Davison.
-# Modified 2001/10/10 Tobias Peters for libxml2-2.4.5
-# Modified 2002/07/12 Elizabeth Barham for libxml2.4.23
-
-# Set "PREFIX" to the root of the mingw installed files.
-
-# PREFIX = /mingw
-PREFIX = F:\WIN98\PROGR~-I\DEV-C~QN
-
-CC = gcc
-CFLAGS = -Iinclude -fnative-struct -D_WINSOCKAPI_ \
- -Dsnprintf=_snprintf -Dvsnprintf=_vsnprintf \
- -DLIBXML_THREAD_ENABLED
-LDFLAGS = -L. -L$(PREFIX)\lib
-LIBS = -lwsock32 -lz -liconv_dll
-
-AR=ar rc
-DLLTOOL=dlltool
-DLLWRAP=dllwrap
-
-
-LIBSRCS=SAX.c entities.c encoding.c error.c parserInternals.c \
- parser.c tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c \
- valid.c xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c \
- xpointer.c xinclude.c nanohttp.c nanoftp.c DOCBparser.c \
- catalog.c c14n.c threads.c xmlschemastypes.c xmlschemas.c \
- xmlregexp.c xmlunicode.c globals.c
-
-# strio.c
-
-LIBOBJS=$(LIBSRCS:.c=.o)
-
-OBJS=$(LIBOBJS)
-
-LIBBASE=xml
-LIB=lib$(LIBBASE).a
-DLL=$(LIB:.a=.dll)
-
-OBJ1=testHTML.o
-OBJ2=testSAX.o
-OBJ3=testURI.o
-OBJ4=testSchemas.o
-OBJ5=testAutomata.o
-OBJ6=testC14N.o
-OBJ7=testDocbook.o
-OBJ8=testRegexp.o
-OBJ9=testThreadsWin32.o
-OBJ10=testXPath.o
-OBJ11=xmllint.o
-EXE1=$(OBJ1:.o=.exe)
-EXE2=$(OBJ2:.o=.exe)
-EXE3=$(OBJ3:.o=.exe)
-EXE4=$(OBJ4:.o=.exe)
-EXE5=$(OBJ5:.o=.exe)
-EXE6=$(OBJ6:.o=.exe)
-EXE7=$(OBJ7:.o=.exe)
-EXE8=$(OBJ8:.o=.exe)
-EXE9=$(OBJ9:.o=.exe)
-EXE10=$(OBJ10:.o=.exe)
-EXE11=$(OBJ11:.o=.exe)
-
-IMPBASE=$(LIBBASE)_dll
-IMP=lib$(IMPBASE).a
-
-DLLFLAGS = --shared -o $(DLL) -Wl,--out-implib,$(IMP)
-
-DEF=$(DLL:.dll=.def)
-
-all: $(LIB) $(DLL) $(DEF) $(IMP) $(EXE1) $(EXE2) $(EXE3) $(EXE4) $(EXE5) \
- $(EXE6) $(EXE7) $(EXE8) $(EXE9) $(EXE10) $(EXE11)
-
-dll: $(DLL)
-
-lib: $(LIB)
-
-$(DLL) $(IMP): $(LIBOBJS)
- $(CC) $(DLLFLAGS) $(LIBOBJS) $(LDFLAGS) $(LIBS)
-# -mwindows
-
-$(LIB): $(LIBOBJS)
- $(AR) $@ $^
-
-$(DEF): $(LIBOBJS)
- $(DLLTOOL) --kill-at --export-all -D $(DLL) --output-def $@ $^
-
-$(EXE1): $(OBJ1) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE2): $(OBJ2) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE3): $(OBJ3) $(LIB)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(LIBBASE) $(LIBS)
- strip $@
-
-$(EXE4): $(OBJ4) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE5): $(OBJ5) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE6): $(OBJ6) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE7): $(OBJ7) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE8): $(OBJ8) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE9): $(OBJ9) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE10): $(OBJ10) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(EXE11): $(OBJ11) $(DLL)
- $(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)
- strip $@
-
-$(OBJ1): $(OBJ1:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ2): $(OBJ2:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ3): $(OBJ3:.o=.c)
- $(CC) $(CFLAGS) -c $< -o $@
-
-$(OBJ4): $(OBJ4:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ5): $(OBJ5:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ6): $(OBJ6:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ7): $(OBJ7:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ8): $(OBJ8:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ9): $(OBJ9:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ10): $(OBJ10:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-$(OBJ11): $(OBJ11:.o=.c)
- $(CC) $(CFLAGS) -DLIBXML_DLL_IMPORT=__declspec'(dllimport)' -c $< -o $@
-
-
-
-.c.o:
- $(CC) $(CFLAGS) -DIN_LIBXML -c $< -o $@
-
-clean:
- rm *.o *.a *.dll *.def
-
-test: all
- ./$(EXE1) -c $(OBJS) | xxd | head -3
+# Makefile for libxml2, specific for Windows, GCC (mingw) and GNU make.
+#
+# Take a look at the beginning and modify the variables to suit your
+# environment. Having done that, you can do a
+#
+# nmake [all] to build the libxml and the accompanying utilities.
+# nmake clean to remove all compiler output files and return to a
+# clean state.
+# nmake rebuild to rebuild everything from scratch. This basically does
+# a 'nmake clean' and then a 'nmake all'.
+# nmake install to install the library and its header files.
+#
+# November 2002, Igor Zlatkovic <igor@stud.fh-frankfurt.de>
+
+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.
+# ----------------------------------------------------------------
+
+
+# Names of various input and output components.
+XML_NAME = xml2
+XML_BASENAME = lib$(XML_NAME)
+XML_SO = $(XML_BASENAME).dll
+XML_IMP = $(XML_BASENAME).lib
+XML_A = $(XML_BASENAME).a
+
+# Place where we let the compiler put its intermediate trash.
+XML_INTDIR = $(XML_BASENAME).int
+XML_INTDIR_A = $(XML_BASENAME)_a.int
+UTILS_INTDIR = utils.int
+
+# The preprocessor and its options.
+CPP = gcc.exe -E
+CPPFLAGS += -I$(XML_SRCDIR)/include
+ifeq ($(WITH_THREADS),1)
+CPPFLAGS += -D_REENTRANT
+endif
+
+# The compiler and its options.
+CC = gcc.exe
+CFLAGS += -DWIN32 -D_WINDOWS -D_MBCS
+CFLAGS += -I$(XML_SRCDIR) -I$(XML_SRCDIR)/include -I$(INCPREFIX)
+ifneq ($(WITH_THREADS),no)
+CFLAGS += -D_REENTRANT
+endif
+ifeq ($(WITH_THREADS),yes)
+CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
+endif
+ifeq ($(WITH_THREADS),ctls)
+CFLAGS += -DHAVE_WIN32_THREADS -DHAVE_COMPILER_TLS
+endif
+ifeq ($(WITH_THREADS),native)
+CFLAGS += -DHAVE_WIN32_THREADS
+endif
+ifeq ($(WITH_THREADS),posix)
+CFLAGS += -DHAVE_PTHREAD_H
+endif
+ifeq ($(WITH_ZLIB),1)
+CFLAGS += -DHAVE_ZLIB_H
+endif
+
+# The linker and its options.
+LD = gcc.exe
+LDFLAGS += -Wl,--major-image-version,$(LIBXML_MAJOR_VERSION)
+LDFLAGS += -Wl,--minor-image-version,$(LIBXML_MINOR_VERSION)
+LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX)
+LIBS =
+ifeq ($(WITH_FTP),1)
+CFLAGS += -D_WINSOCKAPI_
+LIBS += -lwsock32
+endif
+ifeq ($(WITH_HTTP),1)
+CFLAGS += -D_WINSOCKAPI_
+LIBS += -lwsock32
+endif
+ifeq ($(WITH_ICONV),1)
+LIBS += -liconv
+endif
+ifeq ($(WITH_ZLIB),1)
+LIBS += -lzlib
+endif
+ifeq ($(WITH_THREADS),posix)
+LIBS += -lpthreadGC
+endif
+
+# The archiver and its options.
+AR = ar.exe
+ARFLAGS = -r
+
+# Optimisation and debug symbols.
+ifeq ($(DEBUG),1)
+CFLAGS += -D_DEBUG -g
+LDFLAGS +=
+else
+CFLAGS += -DNDEBUG -O2
+LDFLAGS +=
+endif
+
+
+# Libxml object files.
+XML_OBJS = $(XML_INTDIR)/c14n.o\
+ $(XML_INTDIR)/catalog.o\
+ $(XML_INTDIR)/debugXML.o\
+ $(XML_INTDIR)/DOCBparser.o\
+ $(XML_INTDIR)/encoding.o\
+ $(XML_INTDIR)/entities.o\
+ $(XML_INTDIR)/error.o\
+ $(XML_INTDIR)/globals.o\
+ $(XML_INTDIR)/hash.o\
+ $(XML_INTDIR)/HTMLparser.o\
+ $(XML_INTDIR)/HTMLtree.o\
+ $(XML_INTDIR)/list.o\
+ $(XML_INTDIR)/nanoftp.o\
+ $(XML_INTDIR)/nanohttp.o\
+ $(XML_INTDIR)/parser.o\
+ $(XML_INTDIR)/parserInternals.o\
+ $(XML_INTDIR)/SAX.o\
+ $(XML_INTDIR)/threads.o\
+ $(XML_INTDIR)/tree.o\
+ $(XML_INTDIR)/uri.o\
+ $(XML_INTDIR)/valid.o\
+ $(XML_INTDIR)/xinclude.o\
+ $(XML_INTDIR)/xlink.o\
+ $(XML_INTDIR)/xmlIO.o\
+ $(XML_INTDIR)/xmlmemory.o\
+ $(XML_INTDIR)/xmlregexp.o\
+ $(XML_INTDIR)/xmlschemas.o\
+ $(XML_INTDIR)/xmlschemastypes.o\
+ $(XML_INTDIR)/xmlunicode.o\
+ $(XML_INTDIR)/xpath.o\
+ $(XML_INTDIR)/xpointer.o
+
+XML_SRCS = $(subst .o,.c,$(subst $(XML_INTDIR)/,$(XML_SRCDIR)/,$(XML_OBJS)))
+
+# Static libxml object files.
+XML_OBJS_A = $(XML_INTDIR_A)/c14n.o\
+ $(XML_INTDIR_A)/catalog.o\
+ $(XML_INTDIR_A)/debugXML.o\
+ $(XML_INTDIR_A)/DOCBparser.o\
+ $(XML_INTDIR_A)/encoding.o\
+ $(XML_INTDIR_A)/entities.o\
+ $(XML_INTDIR_A)/error.o\
+ $(XML_INTDIR_A)/globals.o\
+ $(XML_INTDIR_A)/hash.o\
+ $(XML_INTDIR_A)/HTMLparser.o\
+ $(XML_INTDIR_A)/HTMLtree.o\
+ $(XML_INTDIR_A)/list.o\
+ $(XML_INTDIR_A)/nanoftp.o\
+ $(XML_INTDIR_A)/nanohttp.o\
+ $(XML_INTDIR_A)/parser.o\
+ $(XML_INTDIR_A)/parserInternals.o\
+ $(XML_INTDIR_A)/SAX.o\
+ $(XML_INTDIR_A)/threads.o\
+ $(XML_INTDIR_A)/tree.o\
+ $(XML_INTDIR_A)/uri.o\
+ $(XML_INTDIR_A)/valid.o\
+ $(XML_INTDIR_A)/xinclude.o\
+ $(XML_INTDIR_A)/xlink.o\
+ $(XML_INTDIR_A)/xmlIO.o\
+ $(XML_INTDIR_A)/xmlmemory.o\
+ $(XML_INTDIR_A)/xmlregexp.o\
+ $(XML_INTDIR_A)/xmlschemas.o\
+ $(XML_INTDIR_A)/xmlschemastypes.o\
+ $(XML_INTDIR_A)/xmlunicode.o\
+ $(XML_INTDIR_A)/xpath.o\
+ $(XML_INTDIR_A)/xpointer.o
+
+XML_SRCS_A = $(subst .o,.c,$(subst $(XML_INTDIR_A)/,$(XML_SRCDIR)/,$(XML_OBJS_A)))
+
+# Xmllint and friends executables.
+UTILS = $(BINDIR)/xmllint.exe\
+ $(BINDIR)/xmlcatalog.exe\
+ $(BINDIR)/testAutomata.exe\
+ $(BINDIR)/testC14N.exe\
+ $(BINDIR)/testDocbook.exe\
+ $(BINDIR)/testHTML.exe\
+ $(BINDIR)/testRegexp.exe\
+ $(BINDIR)/testSAX.exe\
+ $(BINDIR)/testSchemas.exe\
+ $(BINDIR)/testURI.exe\
+ $(BINDIR)/testXPath.exe
+ifeq ($(WITH_THREADS),yes)
+UTILS += $(BINDIR)/testThreadsWin32.exe
+endif
+ifeq ($(WITH_THREADS),ctls)
+UTILS += $(BINDIR)/testThreadsWin32.exe
+endif
+ifeq ($(WITH_THREADS),native)
+UTILS += $(BINDIR)/testThreadsWin32.exe
+endif
+ifeq ($(WITH_THREADS),posix)
+UTILS += $(BINDIR)/testThreads.exe
+endif
+
+all : dep libxml libxmla utils
+
+libxml : $(BINDIR)/$(XML_SO)
+
+libxmla : $(BINDIR)/$(XML_A)
+
+utils : $(UTILS)
+
+clean :
+ if exist $(XML_INTDIR) rmdir /S /Q $(XML_INTDIR)
+ if exist $(XML_INTDIR_A) rmdir /S /Q $(XML_INTDIR_A)
+ if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
+ if exist $(BINDIR) rmdir /S /Q $(BINDIR)
+ if exist depends.mingw del depends.mingw
+
+distclean : clean
+ if exist config.* del config.*
+ if exist Makefile del Makefile
+
+rebuild : clean all
+
+install : all
+ if not exist $(INCPREFIX)\libxml mkdir $(INCPREFIX)\libxml
+ if not exist $(BINPREFIX) mkdir $(BINPREFIX)
+ if not exist $(LIBPREFIX) mkdir $(LIBPREFIX)
+ copy $(XML_SRCDIR)\include\libxml\*.h $(INCPREFIX)\libxml
+ copy $(BINDIR)\$(XML_SO) $(SOPREFIX)
+ copy $(BINDIR)\$(XML_A) $(LIBPREFIX)
+ copy $(BINDIR)\$(XML_IMP) $(LIBPREFIX)
+ copy $(BINDIR)\*.exe $(BINPREFIX)
+
+# This is a target for me, to make a binary distribution. Not for the public use,
+# keep your hands off :-)
+BDVERSION = $(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION).$(LIBXML_MICRO_VERSION)
+BDPREFIX = $(XML_BASENAME)-$(BDVERSION).win32
+bindist : all
+ $(MAKE) PREFIX=$(BDPREFIX) BINPREFIX=$(BDPREFIX)/util install
+ cscript //NoLogo configure.js genreadme $(XML_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt
+
+
+# Creates the dependency file
+dep :
+ $(CC) $(CFLAGS) -M $(XML_SRCS) > depends.mingw
+
+
+# Makes the output directory.
+$(BINDIR) :
+ if not exist $(BINDIR) mkdir $(BINDIR)
+
+
+# Makes the libxml intermediate directory.
+$(XML_INTDIR) :
+ if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
+
+# Makes the static libxml intermediate directory.
+$(XML_INTDIR_A) :
+ if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
+
+# An implicit rule for libxml compilation.
+$(XML_INTDIR)/%.o : $(XML_SRCDIR)/%.c
+ $(CC) $(CFLAGS) -o $@ -c $<
+
+# An implicit rule for static libxml compilation.
+$(XML_INTDIR_A)/%.o : $(XML_SRCDIR)/%.c
+ $(CC) $(CFLAGS) -DLIBXML_STATIC -o $@ -c $<
+
+
+# Compiles libxml source. Uses the implicit rule for commands.
+$(XML_OBJS) : $(XML_INTDIR)
+
+# Compiles static libxml source. Uses the implicit rule for commands.
+$(XML_OBJS_A) : $(XML_INTDIR_A)
+
+# Creates the libxml shared object.
+XMLSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(XML_IMP)
+$(BINDIR)/$(XML_SO) : $(BINDIR) $(XML_OBJS)
+ $(LD) $(XMLSO_LDFLAGS) -o $(BINDIR)/$(XML_SO) $(XML_OBJS) $(LIBS)
+
+# Creates the libxml archive.
+$(BINDIR)/$(XML_A) : $(BINDIR) $(XML_OBJS_A)
+ $(AR) $(ARFLAGS) $(BINDIR)\$(XML_A) $(XML_OBJS_A)
+
+
+# Makes the utils intermediate directory.
+$(UTILS_INTDIR) :
+ if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
+
+# An implicit rule for xmllint and friends.
+ifeq ($(STATIC),1)
+$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
+ $(CC) -DLIBXML_STATIC $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $<
+ $(LD) $(LDFLAGS) -o $@ -l$(XML_BASENAME) $(LIBS) $(subst .c,.o,$(UTILS_INTDIR)/$(<F))
+else
+$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c
+ $(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $<
+ $(LD) $(LDFLAGS) -o $@ -l$(XML_BASENAME) $(subst .c,.o,$(UTILS_INTDIR)/$(<F))
+endif
+
+# Builds xmllint and friends. Uses the implicit rule for commands.
+$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
+
+# Source dependencies
+#-include depends.mingw
+
diff --git a/win32/Makefile.msvc b/win32/Makefile.msvc
index 2a236a6a..682b45a2 100644
--- a/win32/Makefile.msvc
+++ b/win32/Makefile.msvc
@@ -12,7 +12,7 @@
#
# March 2002, Igor Zlatkovic <igor@stud.fh-frankfurt.de>
-AUTOCONF = .\configure.txt
+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...
@@ -222,6 +222,10 @@ clean :
if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR)
if exist $(BINDIR) rmdir /S /Q $(BINDIR)
+distclean : clean
+ if exist config.* del config.*
+ if exist Makefile del Makefile
+
rebuild : clean all
install : all
diff --git a/win32/configure.js b/win32/configure.js
index 662c26ca..b9d7eccc 100644
--- a/win32/configure.js
+++ b/win32/configure.js
@@ -17,7 +17,7 @@ var baseName = "libxml2";
/* Configure file which contains the version and the output file where
we can store our build configuration. */
var configFile = srcDirXml + "\\configure.in";
-var versionFile = ".\\configure.txt";
+var versionFile = ".\\config.msvc";
/* Input and output files regarding the libxml features. The second
output file is there for the compatibility reasons, otherwise it
is identical to the first. */
@@ -47,6 +47,7 @@ var withMemDebug = false;
var withSchemas = true;
var withRegExps = true;
/* Win32 build options. */
+var compiler = "msvc";
var buildDebug = 0;
var buildStatic = 0;
var buildPrefix = ".";
@@ -92,7 +93,7 @@ function usage()
txt += " cscript " + WScript.ScriptName + " help\n\n";
txt += "Options can be specified in the form <option>=<value>, where the value is\n";
txt += "either 'yes' or 'no', if not stated otherwise.\n\n";
- txt += "XML processor options, default value given in parentheses:\n\n";
+ txt += "\nXML processor options, default value given in parentheses:\n\n";
txt += " trio: Enable TRIO string manipulator (" + (withTrio? "yes" : "no") + ")\n";
txt += " threads: Enable thread safety [no|ctls|native|posix] (" + (withThreads) + ") \n";
txt += " ftp: Enable FTP client (" + (withFtp? "yes" : "no") + ")\n";
@@ -111,6 +112,7 @@ function usage()
txt += " regexps: Enable regular expressions (" + (withRegExps? "yes" : "no") + ")\n";
txt += " schemas: Enable XML Schema support (" + (withSchemas? "yes" : "no") + ")\n";
txt += "\nWin32 build options, default value given in parentheses:\n\n";
+ txt += " compiler: Compiler to be used [msvc|mingw] (" + compiler + ")\n";
txt += " debug: Build unoptimised debug executables (" + (buildDebug? "yes" : "no") + ")\n";
txt += " static: Link xmllint statically to libxml2 (" + (buildStatic? "yes" : "no") + ")\n";
txt += " prefix: Base directory for the installation (" + buildPrefix + ")\n";
@@ -137,6 +139,10 @@ function discoverVersion()
var fso, cf, vf, ln, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
cf = fso.OpenTextFile(configFile, 1);
+ if (compiler == "msvc")
+ versionFile = ".\\config.msvc";
+ else if (compiler == "mingw")
+ versionFile = ".\\config.mingw";
vf = fso.CreateTextFile(versionFile, true);
vf.WriteLine("# " + versionFile);
vf.WriteLine("# This file is generated automatically by " + WScript.ScriptName + ".");
@@ -183,8 +189,13 @@ function discoverVersion()
vf.WriteLine("INCPREFIX=" + buildIncPrefix);
vf.WriteLine("LIBPREFIX=" + buildLibPrefix);
vf.WriteLine("SOPREFIX=" + buildSoPrefix);
- vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude);
- vf.WriteLine("LIB=$(LIB);" + buildLib);
+ if (compiler == "msvc") {
+ vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude);
+ vf.WriteLine("LIB=$(LIB);" + buildLib);
+ } else if (compiler == "mingw") {
+ vf.WriteLine("INCLUDE+=;" + buildInclude);
+ vf.WriteLine("LIB+=;" + buildLib);
+ }
vf.Close();
}
@@ -346,6 +357,8 @@ for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) {
withSchemas = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "regexps")
withRegExps = strToBool(arg.substring(opt.length + 1, arg.length));
+ else if (opt == "compiler")
+ compiler = arg.substring(opt.length + 1, arg.length);
else if (opt == "debug")
buildDebug = strToBool(arg.substring(opt.length + 1, arg.length));
else if (opt == "static")
@@ -405,7 +418,10 @@ if (error != 0) {
// Create the makefile.
var fso = new ActiveXObject("Scripting.FileSystemObject");
-fso.CopyFile(".\\Makefile.msvc", ".\\Makefile", true);
+var makefile = ".\\Makefile.msvc";
+if (compiler == "mingw")
+ makefile = ".\\Makefile.mingw";
+fso.CopyFile(makefile, ".\\Makefile", true);
WScript.Echo("Created Makefile.");
// Display the final configuration.
@@ -431,6 +447,7 @@ txtOut += "XML Schema support: " + boolToStr(withSchemas) + "\n";
txtOut += "\n";
txtOut += "Win32 build configuration\n";
txtOut += "-------------------------\n";
+txtOut += " Compiler: " + compiler + "\n";
txtOut += " Debug symbols: " + boolToStr(buildDebug) + "\n";
txtOut += " Static xmllint: " + boolToStr(buildStatic) + "\n";
txtOut += " Install prefix: " + buildPrefix + "\n";