1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-10-21 14:53:44 +03:00

introduced double-run compilation

This commit is contained in:
Igor Zlatkovic
2002-09-29 17:54:00 +00:00
parent 9524c2325d
commit 15f5f625c3

View File

@@ -65,6 +65,7 @@ XML_A = $(XML_BASENAME)_a.lib
# 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.
@@ -94,12 +95,8 @@ LIBS =
LIBS = $(LIBS) wsock32.lib
!endif
!if "$(WITH_ICONV)" == "1"
!if "$(STATIC)" == "1"
LIBS = $(LIBS) iconv_a.lib
!else
LIBS = $(LIBS) iconv.lib
!endif
!endif
!if "$(WITH_ZLIB)" == "1"
LIBS = $(LIBS) zlib.lib
!endif
@@ -150,6 +147,39 @@ XML_OBJS = $(XML_INTDIR)\c14n.obj\
$(XML_INTDIR)\xpath.obj\
$(XML_INTDIR)\xpointer.obj
# Static libxml object files.
XML_OBJS_A = $(XML_INTDIR_A)\c14n.obj\
$(XML_INTDIR_A)\catalog.obj\
$(XML_INTDIR_A)\debugXML.obj\
$(XML_INTDIR_A)\DOCBparser.obj\
$(XML_INTDIR_A)\encoding.obj\
$(XML_INTDIR_A)\entities.obj\
$(XML_INTDIR_A)\error.obj\
$(XML_INTDIR_A)\globals.obj\
$(XML_INTDIR_A)\hash.obj\
$(XML_INTDIR_A)\HTMLparser.obj\
$(XML_INTDIR_A)\HTMLtree.obj\
$(XML_INTDIR_A)\list.obj\
$(XML_INTDIR_A)\nanoftp.obj\
$(XML_INTDIR_A)\nanohttp.obj\
$(XML_INTDIR_A)\parser.obj\
$(XML_INTDIR_A)\parserInternals.obj\
$(XML_INTDIR_A)\SAX.obj\
$(XML_INTDIR_A)\threads.obj\
$(XML_INTDIR_A)\tree.obj\
$(XML_INTDIR_A)\uri.obj\
$(XML_INTDIR_A)\valid.obj\
$(XML_INTDIR_A)\xinclude.obj\
$(XML_INTDIR_A)\xlink.obj\
$(XML_INTDIR_A)\xmlIO.obj\
$(XML_INTDIR_A)\xmlmemory.obj\
$(XML_INTDIR_A)\xmlregexp.obj\
$(XML_INTDIR_A)\xmlschemas.obj\
$(XML_INTDIR_A)\xmlschemastypes.obj\
$(XML_INTDIR_A)\xmlunicode.obj\
$(XML_INTDIR_A)\xpath.obj\
$(XML_INTDIR_A)\xpointer.obj
# Xmllint and friends executables.
UTILS = $(BINDIR)\xmllint.exe\
$(BINDIR)\xmlcatalog.exe\
@@ -163,14 +193,17 @@ UTILS = $(BINDIR)\xmllint.exe\
$(BINDIR)\testURI.exe\
$(BINDIR)\testXPath.exe
all : libxml utils
all : libxml libxmla utils
libxml : $(BINDIR)\$(XML_SO) $(BINDIR)\$(XML_A)
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)
@@ -205,13 +238,24 @@ $(BINDIR) :
$(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_SRCDIR)}.c{$(XML_INTDIR)}.obj::
$(CC) $(CFLAGS) /Fo$(XML_INTDIR)\ /c $<
# An implicit rule for static libxml compilation.
{$(XML_SRCDIR)}.c{$(XML_INTDIR_A)}.obj::
$(CC) $(CFLAGS) /D "LIBXML_STATIC" /Fo$(XML_INTDIR_A)\ /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 export definition file (DEF) for libxml.
$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src
$(CPP) $(CPPFLAGS) $(XML_DEF).src > $(XML_INTDIR)\$(XML_DEF)
@@ -222,8 +266,8 @@ $(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
/IMPLIB:$(BINDIR)\$(XML_IMP) /OUT:$(BINDIR)\$(XML_SO) $(XML_OBJS) $(LIBS)
# Creates the libxml archive.
$(BINDIR)\$(XML_A) : $(BINDIR) $(XML_OBJS)
$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XML_A) $(XML_OBJS)
$(BINDIR)\$(XML_A) : $(BINDIR) $(XML_OBJS_A)
$(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XML_A) $(XML_OBJS_A)
# Makes the utils intermediate directory.
@@ -242,7 +286,7 @@ $(UTILS_INTDIR) :
!endif
# Builds xmllint and friends. Uses the implicit rule for commands.
$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml
$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
# Source dependences should be autogenerated somehow here, but how to