diff options
author | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:38:33 +0000 |
---|---|---|
committer | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:38:33 +0000 |
commit | 584cd5cbd7be997400ccb8db24ae5410b0b88117 (patch) | |
tree | 083e5f1f48d019e0f07b96fef7179483df53c823 /third_party/libxslt/win32 | |
parent | f5b16fed647e941aa66933178da85db2860d639b (diff) | |
download | chromium_src-584cd5cbd7be997400ccb8db24ae5410b0b88117.zip chromium_src-584cd5cbd7be997400ccb8db24ae5410b0b88117.tar.gz chromium_src-584cd5cbd7be997400ccb8db24ae5410b0b88117.tar.bz2 |
Add third_party to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/libxslt/win32')
-rw-r--r-- | third_party/libxslt/win32/Makefile | 367 | ||||
-rw-r--r-- | third_party/libxslt/win32/Makefile.mingw | 304 | ||||
-rw-r--r-- | third_party/libxslt/win32/Makefile.msvc | 367 | ||||
-rw-r--r-- | third_party/libxslt/win32/Readme.txt | 133 | ||||
-rw-r--r-- | third_party/libxslt/win32/config.msvc | 28 | ||||
-rw-r--r-- | third_party/libxslt/win32/configure.js | 504 | ||||
-rw-r--r-- | third_party/libxslt/win32/defgen.xsl | 44 | ||||
-rw-r--r-- | third_party/libxslt/win32/libexslt.def.src | 16 | ||||
-rw-r--r-- | third_party/libxslt/win32/libxslt.def.src | 252 |
9 files changed, 2015 insertions, 0 deletions
diff --git a/third_party/libxslt/win32/Makefile b/third_party/libxslt/win32/Makefile new file mode 100644 index 0000000..b5810de --- /dev/null +++ b/third_party/libxslt/win32/Makefile @@ -0,0 +1,367 @@ +# Makefile for libxslt, specific for Windows, MSVC and NMAKE. +# +# 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 libxslt 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. +# +# March 2002, Igor Zlatkovic <igor@zlatkovic.com> + +AUTOCONF = .\config.msvc +!include $(AUTOCONF) + +# There should never be a need to modify anything below this line. +# ---------------------------------------------------------------- + +BASEDIR = .. +XSLT_SRCDIR = $(BASEDIR)\libxslt +EXSLT_SRCDIR = $(BASEDIR)\libexslt +UTILS_SRCDIR = $(BASEDIR)\xsltproc +BINDIR = bin.msvc + +# Names of various input and output components. +XSLT_NAME = xslt +XSLT_BASENAME = lib$(XSLT_NAME) +XSLT_SO = $(XSLT_BASENAME).dll +XSLT_IMP = $(XSLT_BASENAME).lib +XSLT_DEF = $(XSLT_BASENAME).def +XSLT_A = $(XSLT_BASENAME)_a.lib +EXSLT_NAME = exslt +EXSLT_BASENAME = lib$(EXSLT_NAME) +EXSLT_SO = $(EXSLT_BASENAME).dll +EXSLT_IMP = $(EXSLT_BASENAME).lib +EXSLT_DEF = $(EXSLT_BASENAME).def +EXSLT_A = $(EXSLT_BASENAME)_a.lib + +# Places where intermediate files produced by the compiler go +XSLT_INTDIR = int.xslt.msvc +XSLT_INTDIR_A = int.xslta.msvc +EXSLT_INTDIR = int.exslt.msvc +EXSLT_INTDIR_A = int.exslta.msvc +UTILS_INTDIR = int.utils.msvc + +# The preprocessor and its options. +CPP = cl.exe /EP +CPPFLAGS = /nologo + +# The compiler and its options. +CC = cl.exe +CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W3 $(CRUNTIME) /D "_REENTRANT" +CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(XSLT_SRCDIR) /I$(INCPREFIX) + +# The linker and its options. +LD = link.exe +LDFLAGS = /nologo +LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) +LIBS = wsock32.lib + +# The archiver and its options. +AR = lib.exe +ARFLAGS = /nologo + +# Optimisation and debug symbols. +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 +LDFLAGS = $(LDFLAGS) /DEBUG +!else +CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 +LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 +!endif + +# Libxslt object files. +XSLT_OBJS = $(XSLT_INTDIR)\attributes.obj\ + $(XSLT_INTDIR)\documents.obj\ + $(XSLT_INTDIR)\extensions.obj\ + $(XSLT_INTDIR)\extra.obj\ + $(XSLT_INTDIR)\functions.obj\ + $(XSLT_INTDIR)\imports.obj\ + $(XSLT_INTDIR)\keys.obj\ + $(XSLT_INTDIR)\namespaces.obj\ + $(XSLT_INTDIR)\numbers.obj\ + $(XSLT_INTDIR)\pattern.obj\ + $(XSLT_INTDIR)\preproc.obj\ + $(XSLT_INTDIR)\security.obj\ + $(XSLT_INTDIR)\templates.obj\ + $(XSLT_INTDIR)\transform.obj\ + $(XSLT_INTDIR)\variables.obj\ + $(XSLT_INTDIR)\xslt.obj\ + $(XSLT_INTDIR)\xsltutils.obj\ + $(XSLT_INTDIR)\attrvt.obj + +# Static libxslt object files. +XSLT_OBJS_A = $(XSLT_INTDIR_A)\attributes.obj\ + $(XSLT_INTDIR_A)\documents.obj\ + $(XSLT_INTDIR_A)\extensions.obj\ + $(XSLT_INTDIR_A)\extra.obj\ + $(XSLT_INTDIR_A)\functions.obj\ + $(XSLT_INTDIR_A)\imports.obj\ + $(XSLT_INTDIR_A)\keys.obj\ + $(XSLT_INTDIR_A)\namespaces.obj\ + $(XSLT_INTDIR_A)\numbers.obj\ + $(XSLT_INTDIR_A)\pattern.obj\ + $(XSLT_INTDIR_A)\preproc.obj\ + $(XSLT_INTDIR_A)\security.obj\ + $(XSLT_INTDIR_A)\templates.obj\ + $(XSLT_INTDIR_A)\transform.obj\ + $(XSLT_INTDIR_A)\variables.obj\ + $(XSLT_INTDIR_A)\xslt.obj\ + $(XSLT_INTDIR_A)\xsltutils.obj\ + $(XSLT_INTDIR_A)\attrvt.obj + +# Libexslt object files. +EXSLT_OBJS = $(EXSLT_INTDIR)\common.obj\ + $(EXSLT_INTDIR)\crypto.obj\ + $(EXSLT_INTDIR)\date.obj\ + $(EXSLT_INTDIR)\exslt.obj\ + $(EXSLT_INTDIR)\functions.obj\ + $(EXSLT_INTDIR)\math.obj\ + $(EXSLT_INTDIR)\saxon.obj\ + $(EXSLT_INTDIR)\sets.obj\ + $(EXSLT_INTDIR)\strings.obj\ + $(EXSLT_INTDIR)\dynamic.obj + +# Static libexslt object files. +EXSLT_OBJS_A = $(EXSLT_INTDIR_A)\common.obj\ + $(EXSLT_INTDIR_A)\crypto.obj\ + $(EXSLT_INTDIR_A)\date.obj\ + $(EXSLT_INTDIR_A)\exslt.obj\ + $(EXSLT_INTDIR_A)\functions.obj\ + $(EXSLT_INTDIR_A)\math.obj\ + $(EXSLT_INTDIR_A)\saxon.obj\ + $(EXSLT_INTDIR_A)\sets.obj\ + $(EXSLT_INTDIR_A)\strings.obj\ + $(EXSLT_INTDIR_A)\dynamic.obj + + +# Xsltproc and friends executables. +UTILS = $(BINDIR)\xsltproc.exe + +!if "$(VCMANIFEST)" == "1" +_VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 +_VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 +!else +_VC_MANIFEST_EMBED_EXE= +_VC_MANIFEST_EMBED_DLL= +!endif + +all : libxslt libxslta libexslt libexslta utils + +libxslt : $(BINDIR)\$(XSLT_SO) + +libxslta : $(BINDIR)\$(XSLT_A) + +libexslt : $(BINDIR)\$(EXSLT_SO) + +libexslta : $(BINDIR)\$(EXSLT_A) + +utils : $(UTILS) + +clean : + if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR) + if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A) + if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR) + if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A) + if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) + if exist $(BINDIR) rmdir /S /Q $(BINDIR) + +rebuild : clean all + +distclean : clean + if exist config.* del config.* + if exist Makefile del Makefile + +install-libs : all + if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME) + if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME) + if not exist $(BINPREFIX) mkdir $(BINPREFIX) + if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) + copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME) + copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME) + copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX) + copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX) + copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX) + copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX) + copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX) + copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX) + +install : install-libs + copy $(BINDIR)\*.exe $(BINPREFIX) + -copy $(BINDIR)\*.pdb $(BINPREFIX) + +install-dist : install + +# This is a target for me, to make a binary distribution. Not for the public use, +# keep your hands off :-) +BDVERSION = $(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION).$(LIBXSLT_MICRO_VERSION) +BDPREFIX = $(XSLT_BASENAME)-$(BDVERSION).win32 +bindist : all + $(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-dist + cscript //NoLogo configure.js genreadme $(XSLT_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt + +# Makes the compiler output directory. +$(BINDIR) : + if not exist $(BINDIR) mkdir $(BINDIR) + + +# Makes the libxslt intermediate directory. +$(XSLT_INTDIR) : + if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR) + +# Makes the static libxslt intermediate directory. +$(XSLT_INTDIR_A) : + if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A) + +# An implicit rule for libxslt compilation. +{$(XSLT_SRCDIR)}.c{$(XSLT_INTDIR)}.obj:: + $(CC) $(CFLAGS) /Fo$(XSLT_INTDIR)\ /c $< + +# An implicit rule for static libxslt compilation. +{$(XSLT_SRCDIR)}.c{$(XSLT_INTDIR_A)}.obj:: + $(CC) $(CFLAGS) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" \ + /Fo$(XSLT_INTDIR_A)\ /c $< + +# Compiles libxslt source. Uses the implicit rule for commands. +$(XSLT_OBJS) : $(XSLT_INTDIR) + +# Compiles static libxslt source. Uses the implicit rule for commands. +$(XSLT_OBJS_A) : $(XSLT_INTDIR_A) + +# Creates the export definition file (DEF) for libxslt. +$(XSLT_INTDIR)\$(XSLT_DEF) : $(XSLT_INTDIR) $(XSLT_DEF).src + $(CPP) $(CPPFLAGS) $(XSLT_DEF).src > $(XSLT_INTDIR)\$(XSLT_DEF) + +# Creates the libxslt shared object. +$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF) + $(LD) $(LDFLAGS) /DLL \ + /VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \ + /IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \ + $(XSLT_OBJS) $(LIBS) libxml2.lib + @$(_VC_MANIFEST_EMBED_DLL) + +#$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF) +# $(LD) $(LDFLAGS) /DLL /DEF:$(XSLT_INTDIR)\$(XSLT_DEF) \ +# /VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \ +# /IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \ +# $(XSLT_OBJS) $(LIBS) libxml2.lib + +# Creates the libxslt archive. +$(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XSLT_A) $(XSLT_OBJS_A) + + +# Creates the libexslt intermediate directory. +$(EXSLT_INTDIR) : + if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR) + +# Creates the static libexslt intermediate directory. +$(EXSLT_INTDIR_A) : + if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A) + +# An implicit rule for libexslt compilation. +{$(EXSLT_SRCDIR)}.c{$(EXSLT_INTDIR)}.obj:: + $(CC) /I$(EXSLT_SRCDIR) $(CFLAGS) /Fo$(EXSLT_INTDIR)\ /c $< + +# An implicit rule for static libexslt compilation. +{$(EXSLT_SRCDIR)}.c{$(EXSLT_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "LIBEXSLT_STATIC" \ + /I$(EXSLT_SRCDIR) $(CFLAGS) /Fo$(EXSLT_INTDIR_A)\ /c $< + +# Compiles libxslt source. Uses the implicit rule for commands. +$(EXSLT_OBJS) : $(EXSLT_INTDIR) + +# Compiles libxslt source. Uses the implicit rule for commands. +$(EXSLT_OBJS_A) : $(EXSLT_INTDIR_A) + +# Creates the export definition file (DEF) for libxslt. +$(EXSLT_INTDIR)\$(EXSLT_DEF) : $(EXSLT_INTDIR) $(EXSLT_DEF).src + $(CPP) $(CPPFLAGS) $(EXSLT_DEF).src > $(EXSLT_INTDIR)\$(EXSLT_DEF) + +# Creates the libexslt shared object. +$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt + $(LD) $(LDFLAGS) /DLL \ + /VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \ + /IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \ + $(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib + @$(_VC_MANIFEST_EMBED_DLL) + +#$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt +# $(LD) $(LDFLAGS) /DLL /DEF:$(EXSLT_INTDIR)\$(EXSLT_DEF) \ +# /VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \ +# /IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \ +# $(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib + +# Creates the libexslt archive. +$(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(EXSLT_A) $(EXSLT_OBJS_A) + + +# Creates the utils intermediate directory. +$(UTILS_INTDIR) : + if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR) + +# An implicit rule for xsltproc and friends. +APPLIBS = $(LIBS) +!if "$(STATIC)" == "1" +APPLIBS = $(LIBS) libxml2_a.lib +!if "$(WITH_ICONV)" == "1" +APPLIBS = $(APPLIBS) iconv.lib +!endif +!if "$(WITH_ZLIB)" == "1" +APPLIBS = $(APPLIBS) zlib.lib +!endif +{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "LIBEXSLT_STATIC" \ + $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< + $(LD) $(LDFLAGS) /OUT:$@ $(XSLT_A) $(EXSLT_A) $(APPLIBS) $(UTILS_INTDIR)\$(<B).obj + @$(_VC_MANIFEST_EMBED_EXE) +!else +APPLIBS = $(LIBS) libxml2.lib +{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe: + $(CC) $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< + $(LD) $(LDFLAGS) /OUT:$@ $(XSLT_IMP) $(EXSLT_IMP) $(APPLIBS) $(UTILS_INTDIR)\$(<B).obj + @$(_VC_MANIFEST_EMBED_EXE) +!endif + +# Builds xsltproc and friends. Uses the implicit rule for commands. +$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxslt libxslta libexslt libexslta + +# plugins only work with non-static builds currently. +!if "$(STATIC)" == "0" + +TESTPLUGIN_SRCDIR = $(BASEDIR)\tests\plugins +TESTPLUGIN_DIR = $(TESTPLUGIN_SRCDIR)\plugin +TESTPLUGIN_SO = xmlsoft_org_xslt_testplugin.dll +TESTPLUGIN_OBJS = $(TESTPLUGIN_DIR)\testplugin.obj + +testplugin: + if exist $(TESTPLUGIN_DIR) rmdir /S /Q $(TESTPLUGIN_DIR) + $(MAKE) $(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) + +$(TESTPLUGIN_DIR) : + if not exist $(TESTPLUGIN_DIR) mkdir $(TESTPLUGIN_DIR) + +{$(TESTPLUGIN_SRCDIR)}.c{$(TESTPLUGIN_DIR)}.obj:: + $(CC) $(CFLAGS) /Fo$(TESTPLUGIN_DIR)\ /c $< + +# Creates the testplugin archive. +$(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) : $(TESTPLUGIN_DIR) $(TESTPLUGIN_OBJS) libxslt + $(LD) $(LDFLAGS) /DLL $(XSLT_IMP) $(APPLIBS) $(LIBS)\ + /OUT:$(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) \ + $(TESTPLUGIN_OBJS) + +!else + +testplugin: + @echo "plugins are disabled with static=yes" + +!endif + + +# Source dependences should be autogenerated somehow here, but how to +# do it? I have no clue. + diff --git a/third_party/libxslt/win32/Makefile.mingw b/third_party/libxslt/win32/Makefile.mingw new file mode 100644 index 0000000..0b2249d --- /dev/null +++ b/third_party/libxslt/win32/Makefile.mingw @@ -0,0 +1,304 @@ +# Makefile for libxslt, 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 +# +# make [all] to build the libxslt and the accompanying utilities. +# make clean to remove all compiler output files and return to a +# clean state. +# make rebuild to rebuild everything from scratch. This basically does +# a 'make clean' and then a 'make all'. +# make install to install the library and its header files. +# +# November 2002, Igor Zlatkovic <igor@zlatkovic.com> + +AUTOCONF = .\config.mingw +include $(AUTOCONF) + +# There should never be a need to modify anything below this line. +# ---------------------------------------------------------------- + +BASEDIR = .. +XSLT_SRCDIR = $(BASEDIR)\libxslt +EXSLT_SRCDIR = $(BASEDIR)\libexslt +UTILS_SRCDIR = $(BASEDIR)\xsltproc +BINDIR = bin.mingw + +# Names of various input and output components. +XSLT_NAME = xslt +XSLT_BASENAME = lib$(XSLT_NAME) +XSLT_SO = $(XSLT_BASENAME).dll +XSLT_IMP = $(XSLT_BASENAME).lib +XSLT_A = $(XSLT_BASENAME).a +EXSLT_NAME = exslt +EXSLT_BASENAME = lib$(EXSLT_NAME) +EXSLT_SO = $(EXSLT_BASENAME).dll +EXSLT_IMP = $(EXSLT_BASENAME).lib +EXSLT_A = $(EXSLT_BASENAME).a + +# Places where intermediate files produced by the compiler go +XSLT_INTDIR = int.xslt.mingw +XSLT_INTDIR_A = int.xslta.mingw +EXSLT_INTDIR = int.exslt.mingw +EXSLT_INTDIR_A = int.exslta.mingw +UTILS_INTDIR = int.utils.mingw + +# The preprocessor and its options. +CPP = gcc.exe -E +CPPFLAGS += + +# The compiler and its options. +CC = gcc.exe +CFLAGS += -DWIN32 -D_WINDOWS -D_MBCS +CFLAGS += -I$(BASEDIR) -I$(XSLT_SRCDIR) -I$(INCPREFIX) + +# The linker and its options. +LD = gcc.exe +LDFLAGS += -Wl,-L,$(BINDIR) -Wl,-L,$(LIBPREFIX) +LIBS = -lwsock32 + +# 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 + +# Libxslt object files. +XSLT_OBJS = $(XSLT_INTDIR)/attributes.o\ + $(XSLT_INTDIR)/documents.o\ + $(XSLT_INTDIR)/extensions.o\ + $(XSLT_INTDIR)/extra.o\ + $(XSLT_INTDIR)/functions.o\ + $(XSLT_INTDIR)/imports.o\ + $(XSLT_INTDIR)/keys.o\ + $(XSLT_INTDIR)/namespaces.o\ + $(XSLT_INTDIR)/numbers.o\ + $(XSLT_INTDIR)/pattern.o\ + $(XSLT_INTDIR)/preproc.o\ + $(XSLT_INTDIR)/security.o\ + $(XSLT_INTDIR)/templates.o\ + $(XSLT_INTDIR)/transform.o\ + $(XSLT_INTDIR)/variables.o\ + $(XSLT_INTDIR)/xslt.o\ + $(XSLT_INTDIR)/xsltutils.o +XSLT_SRCS = $(subst .o,.c,$(subst $(XSLT_INTDIR),$(XSLT_SRCDIR),$(XSLT_OBJS))) + +# Static libxslt object files. +XSLT_OBJS_A = $(XSLT_INTDIR_A)/attributes.o\ + $(XSLT_INTDIR_A)/documents.o\ + $(XSLT_INTDIR_A)/extensions.o\ + $(XSLT_INTDIR_A)/extra.o\ + $(XSLT_INTDIR_A)/functions.o\ + $(XSLT_INTDIR_A)/imports.o\ + $(XSLT_INTDIR_A)/keys.o\ + $(XSLT_INTDIR_A)/namespaces.o\ + $(XSLT_INTDIR_A)/numbers.o\ + $(XSLT_INTDIR_A)/pattern.o\ + $(XSLT_INTDIR_A)/preproc.o\ + $(XSLT_INTDIR_A)/security.o\ + $(XSLT_INTDIR_A)/templates.o\ + $(XSLT_INTDIR_A)/transform.o\ + $(XSLT_INTDIR_A)/variables.o\ + $(XSLT_INTDIR_A)/xslt.o\ + $(XSLT_INTDIR_A)/xsltutils.o + +# Libexslt object files. +EXSLT_OBJS = $(EXSLT_INTDIR)/common.o\ + $(EXSLT_INTDIR)/crypto.o\ + $(EXSLT_INTDIR)/date.o\ + $(EXSLT_INTDIR)/exslt.o\ + $(EXSLT_INTDIR)/functions.o\ + $(EXSLT_INTDIR)/math.o\ + $(EXSLT_INTDIR)/saxon.o\ + $(EXSLT_INTDIR)/sets.o\ + $(EXSLT_INTDIR)/strings.o\ + $(EXSLT_INTDIR)/dynamic.o +EXSLT_SRCS = $(subst .o,.c,$(subst $(EXSLT_INTDIR)/,$(EXSLT_SRCDIR)/,$(EXSLT_OBJS))) + +# Static libexslt object files. +EXSLT_OBJS_A = $(EXSLT_INTDIR_A)/common.o\ + $(EXSLT_INTDIR_A)/crypto.o\ + $(EXSLT_INTDIR_A)/date.o\ + $(EXSLT_INTDIR_A)/exslt.o\ + $(EXSLT_INTDIR_A)/functions.o\ + $(EXSLT_INTDIR_A)/math.o\ + $(EXSLT_INTDIR_A)/saxon.o\ + $(EXSLT_INTDIR_A)/sets.o\ + $(EXSLT_INTDIR_A)/strings.o\ + $(EXSLT_INTDIR_A)/dynamic.o + + +# Xsltproc and friends executables. +UTILS = $(BINDIR)/xsltproc.exe + +all : dep libxslt libxslta libexslt libexslta utils + +libxslt : $(BINDIR)\$(XSLT_SO) + +libxslta : $(BINDIR)\$(XSLT_A) + +libexslt : $(BINDIR)\$(EXSLT_SO) + +libexslta : $(BINDIR)\$(EXSLT_A) + +utils : $(UTILS) + +clean : + cmd.exe /C if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR) + cmd.exe /C if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A) + cmd.exe /C if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR) + cmd.exe /C if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A) + cmd.exe /C if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) + cmd.exe /C if exist $(BINDIR) rmdir /S /Q $(BINDIR) + cmd.exe /C if exist depends.mingw del depends.mingw + +rebuild : clean all + +distclean : clean + cmd.exe /C if exist config.* del config.* + cmd.exe /C if exist depends.* del depends.* + cmd.exe /C if exist Makefile del Makefile + +install-libs : all + cmd.exe /C if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME) + cmd.exe /C if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME) + cmd.exe /C if not exist $(BINPREFIX) mkdir $(BINPREFIX) + cmd.exe /C if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) + cmd.exe /C copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME) + cmd.exe /C copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME) + cmd.exe /C copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX) + cmd.exe /C copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX) + cmd.exe /C copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX) + cmd.exe /C copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX) + cmd.exe /C copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX) + cmd.exe /C copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX) + +install : install-libs + cmd.exe /C copy $(BINDIR)\*.exe $(BINPREFIX) + +install-dist : install + +# This is a target for me, to make a binary distribution. Not for the public use, +# keep your hands off :-) +BDVERSION = $(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION).$(LIBXSLT_MICRO_VERSION) +BDPREFIX = $(XSLT_BASENAME)-$(BDVERSION).win32 +bindist : all + $(MAKE) PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)/bin install-dist + cscript //NoLogo configure.js genreadme $(XSLT_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt + + +# Creates the dependency files +dep : + $(CC) $(subst \,/,$(CFLAGS)) -MM $(subst \,/,$(XSLT_SRCS)) $(subst \,/,$(EXSLT_SRCS)) > depends.mingw + + +# Makes the compiler output directory. +$(BINDIR) : + cmd.exe /C if not exist $(BINDIR) mkdir $(BINDIR) + + +# Makes the libxslt intermediate directory. +$(XSLT_INTDIR) : + cmd.exe /C if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR) + +# Makes the static libxslt intermediate directory. +$(XSLT_INTDIR_A) : + cmd.exe /C if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A) + +# An implicit rule for libxslt compilation. +$(XSLT_INTDIR)/%.o : $(XSLT_SRCDIR)/%.c + $(CC) $(CFLAGS) -c -o $@ $< + +# An implicit rule for static libxslt compilation. +$(XSLT_INTDIR_A)/%.o : $(XSLT_SRCDIR)/%.c + $(CC) $(CFLAGS) -DLIBXML_STATIC -DLIBXSLT_STATIC -o $@ -c $< + +# Compiles libxslt source. Uses the implicit rule for commands. +$(XSLT_OBJS) : $(XSLT_INTDIR) + +# Compiles static libxslt source. Uses the implicit rule for commands. +$(XSLT_OBJS_A) : $(XSLT_INTDIR_A) + +# Creates the libxslt shared object. +XSLTSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(XSLT_IMP) +XSLTSO_LDFLAGS += -Wl,--major-image-version,$(LIBXSLT_MAJOR_VERSION) +XSLTSO_LDFLAGS += -Wl,--minor-image-version,$(LIBXSLT_MINOR_VERSION) +$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) + $(LD) $(XSLTSO_LDFLAGS) -o $(BINDIR)/$(XSLT_SO) $(XSLT_OBJS) $(LIBS) -llibxml2 + +# Creates the libxslt archive. +$(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A) + $(AR) $(ARFLAGS) $(BINDIR)/$(XSLT_A) $(XSLT_OBJS_A) + + +# Creates the libexslt intermediate directory. +$(EXSLT_INTDIR) : + cmd.exe /C if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR) + +# Creates the static libexslt intermediate directory. +$(EXSLT_INTDIR_A) : + cmd.exe /C if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A) + +# An implicit rule for libexslt compilation. +$(EXSLT_INTDIR)/%.o : $(EXSLT_SRCDIR)/%.c + $(CC) $(CFLAGS) -I$(EXSLT_SRCDIR) -o $@ -c $< + +# An implicit rule for static libexslt compilation. +$(EXSLT_INTDIR_A)/%.o : $(EXSLT_SRCDIR)/%.c + $(CC) $(CFLAGS) -DLIBXML_STATIC -DLIBXSLT_STATIC -DLIBEXSLT_STATIC \ + -I$(EXSLT_SRCDIR) -o $@ -c $< + +# Compiles libxslt source. Uses the implicit rule for commands. +$(EXSLT_OBJS) : $(EXSLT_INTDIR) + +# Compiles libxslt source. Uses the implicit rule for commands. +$(EXSLT_OBJS_A) : $(EXSLT_INTDIR_A) + +# Creates the libexslt shared object. +EXSLTSO_LDFLAGS = $(LDFLAGS) -shared -Wl,--dll -Wl,--out-implib,$(BINDIR)/$(EXSLT_IMP) +EXSLTSO_LDFLAGS += -Wl,--major-image-version,$(LIBEXSLT_MAJOR_VERSION) +EXSLTSO_LDFLAGS += -Wl,--minor-image-version,$(LIBEXSLT_MINOR_VERSION) +$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) libxslt + $(LD) $(EXSLTSO_LDFLAGS) -o $(BINDIR)/$(EXSLT_SO) $(EXSLT_OBJS) $(LIBS) -l$(XSLT_BASENAME) -llibxml2 + +# Creates the libexslt archive. +$(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta + $(AR) $(ARFLAGS) $(BINDIR)\$(EXSLT_A) $(EXSLT_OBJS_A) + + +# Creates the utils intermediate directory. +$(UTILS_INTDIR) : + cmd.exe /C if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR) + +# An implicit rule for xsltproc and friends. +APPLIBS = $(LIBS) +APPLIBS += -llibxml2 -l$(XSLT_BASENAME) -l$(EXSLT_BASENAME) +APP_LDFLAGS = $(LDFLAGS) +APP_LDFLAGS += -Wl,--major-image-version,$(LIBXSLT_MAJOR_VERSION) +APP_LDFLAGS += -Wl,--minor-image-version,$(LIBXSLT_MINOR_VERSION) +ifeq ($(STATIC),1) +CFLAGS += -DLIBXML_STATIC -DLIBXSLT_STATIC -DLIBEXSLT_STATIC +APP_LDFLAGS += -Bstatic +$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c + $(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $< + $(LD) $(APP_LDFLAGS) -o $@ $(APPLIBS) $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) +else +$(BINDIR)/%.exe : $(UTILS_SRCDIR)/%.c + $(CC) $(CFLAGS) -o $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) -c $< + $(LD) $(APP_LDFLAGS) -o $@ $(APPLIBS) $(subst .c,.o,$(UTILS_INTDIR)/$(<F)) +endif + +# Builds xsltproc and friends. Uses the implicit rule for commands. +$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxslt libxslta libexslt libexslta + + +# Source dependencies, just how? +#-include depends.mingw + diff --git a/third_party/libxslt/win32/Makefile.msvc b/third_party/libxslt/win32/Makefile.msvc new file mode 100644 index 0000000..b5810de --- /dev/null +++ b/third_party/libxslt/win32/Makefile.msvc @@ -0,0 +1,367 @@ +# Makefile for libxslt, specific for Windows, MSVC and NMAKE. +# +# 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 libxslt 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. +# +# March 2002, Igor Zlatkovic <igor@zlatkovic.com> + +AUTOCONF = .\config.msvc +!include $(AUTOCONF) + +# There should never be a need to modify anything below this line. +# ---------------------------------------------------------------- + +BASEDIR = .. +XSLT_SRCDIR = $(BASEDIR)\libxslt +EXSLT_SRCDIR = $(BASEDIR)\libexslt +UTILS_SRCDIR = $(BASEDIR)\xsltproc +BINDIR = bin.msvc + +# Names of various input and output components. +XSLT_NAME = xslt +XSLT_BASENAME = lib$(XSLT_NAME) +XSLT_SO = $(XSLT_BASENAME).dll +XSLT_IMP = $(XSLT_BASENAME).lib +XSLT_DEF = $(XSLT_BASENAME).def +XSLT_A = $(XSLT_BASENAME)_a.lib +EXSLT_NAME = exslt +EXSLT_BASENAME = lib$(EXSLT_NAME) +EXSLT_SO = $(EXSLT_BASENAME).dll +EXSLT_IMP = $(EXSLT_BASENAME).lib +EXSLT_DEF = $(EXSLT_BASENAME).def +EXSLT_A = $(EXSLT_BASENAME)_a.lib + +# Places where intermediate files produced by the compiler go +XSLT_INTDIR = int.xslt.msvc +XSLT_INTDIR_A = int.xslta.msvc +EXSLT_INTDIR = int.exslt.msvc +EXSLT_INTDIR_A = int.exslta.msvc +UTILS_INTDIR = int.utils.msvc + +# The preprocessor and its options. +CPP = cl.exe /EP +CPPFLAGS = /nologo + +# The compiler and its options. +CC = cl.exe +CFLAGS = /nologo /D "WIN32" /D "_WINDOWS" /D "_MBCS" /W3 $(CRUNTIME) /D "_REENTRANT" +CFLAGS = $(CFLAGS) /I$(BASEDIR) /I$(XSLT_SRCDIR) /I$(INCPREFIX) + +# The linker and its options. +LD = link.exe +LDFLAGS = /nologo +LDFLAGS = $(LDFLAGS) /LIBPATH:$(BINDIR) /LIBPATH:$(LIBPREFIX) +LIBS = wsock32.lib + +# The archiver and its options. +AR = lib.exe +ARFLAGS = /nologo + +# Optimisation and debug symbols. +!if "$(DEBUG)" == "1" +CFLAGS = $(CFLAGS) /D "_DEBUG" /Od /Z7 +LDFLAGS = $(LDFLAGS) /DEBUG +!else +CFLAGS = $(CFLAGS) /D "NDEBUG" /O2 +LDFLAGS = $(LDFLAGS) /OPT:NOWIN98 +!endif + +# Libxslt object files. +XSLT_OBJS = $(XSLT_INTDIR)\attributes.obj\ + $(XSLT_INTDIR)\documents.obj\ + $(XSLT_INTDIR)\extensions.obj\ + $(XSLT_INTDIR)\extra.obj\ + $(XSLT_INTDIR)\functions.obj\ + $(XSLT_INTDIR)\imports.obj\ + $(XSLT_INTDIR)\keys.obj\ + $(XSLT_INTDIR)\namespaces.obj\ + $(XSLT_INTDIR)\numbers.obj\ + $(XSLT_INTDIR)\pattern.obj\ + $(XSLT_INTDIR)\preproc.obj\ + $(XSLT_INTDIR)\security.obj\ + $(XSLT_INTDIR)\templates.obj\ + $(XSLT_INTDIR)\transform.obj\ + $(XSLT_INTDIR)\variables.obj\ + $(XSLT_INTDIR)\xslt.obj\ + $(XSLT_INTDIR)\xsltutils.obj\ + $(XSLT_INTDIR)\attrvt.obj + +# Static libxslt object files. +XSLT_OBJS_A = $(XSLT_INTDIR_A)\attributes.obj\ + $(XSLT_INTDIR_A)\documents.obj\ + $(XSLT_INTDIR_A)\extensions.obj\ + $(XSLT_INTDIR_A)\extra.obj\ + $(XSLT_INTDIR_A)\functions.obj\ + $(XSLT_INTDIR_A)\imports.obj\ + $(XSLT_INTDIR_A)\keys.obj\ + $(XSLT_INTDIR_A)\namespaces.obj\ + $(XSLT_INTDIR_A)\numbers.obj\ + $(XSLT_INTDIR_A)\pattern.obj\ + $(XSLT_INTDIR_A)\preproc.obj\ + $(XSLT_INTDIR_A)\security.obj\ + $(XSLT_INTDIR_A)\templates.obj\ + $(XSLT_INTDIR_A)\transform.obj\ + $(XSLT_INTDIR_A)\variables.obj\ + $(XSLT_INTDIR_A)\xslt.obj\ + $(XSLT_INTDIR_A)\xsltutils.obj\ + $(XSLT_INTDIR_A)\attrvt.obj + +# Libexslt object files. +EXSLT_OBJS = $(EXSLT_INTDIR)\common.obj\ + $(EXSLT_INTDIR)\crypto.obj\ + $(EXSLT_INTDIR)\date.obj\ + $(EXSLT_INTDIR)\exslt.obj\ + $(EXSLT_INTDIR)\functions.obj\ + $(EXSLT_INTDIR)\math.obj\ + $(EXSLT_INTDIR)\saxon.obj\ + $(EXSLT_INTDIR)\sets.obj\ + $(EXSLT_INTDIR)\strings.obj\ + $(EXSLT_INTDIR)\dynamic.obj + +# Static libexslt object files. +EXSLT_OBJS_A = $(EXSLT_INTDIR_A)\common.obj\ + $(EXSLT_INTDIR_A)\crypto.obj\ + $(EXSLT_INTDIR_A)\date.obj\ + $(EXSLT_INTDIR_A)\exslt.obj\ + $(EXSLT_INTDIR_A)\functions.obj\ + $(EXSLT_INTDIR_A)\math.obj\ + $(EXSLT_INTDIR_A)\saxon.obj\ + $(EXSLT_INTDIR_A)\sets.obj\ + $(EXSLT_INTDIR_A)\strings.obj\ + $(EXSLT_INTDIR_A)\dynamic.obj + + +# Xsltproc and friends executables. +UTILS = $(BINDIR)\xsltproc.exe + +!if "$(VCMANIFEST)" == "1" +_VC_MANIFEST_EMBED_EXE= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1 +_VC_MANIFEST_EMBED_DLL= if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2 +!else +_VC_MANIFEST_EMBED_EXE= +_VC_MANIFEST_EMBED_DLL= +!endif + +all : libxslt libxslta libexslt libexslta utils + +libxslt : $(BINDIR)\$(XSLT_SO) + +libxslta : $(BINDIR)\$(XSLT_A) + +libexslt : $(BINDIR)\$(EXSLT_SO) + +libexslta : $(BINDIR)\$(EXSLT_A) + +utils : $(UTILS) + +clean : + if exist $(XSLT_INTDIR) rmdir /S /Q $(XSLT_INTDIR) + if exist $(XSLT_INTDIR_A) rmdir /S /Q $(XSLT_INTDIR_A) + if exist $(EXSLT_INTDIR) rmdir /S /Q $(EXSLT_INTDIR) + if exist $(EXSLT_INTDIR_A) rmdir /S /Q $(EXSLT_INTDIR_A) + if exist $(UTILS_INTDIR) rmdir /S /Q $(UTILS_INTDIR) + if exist $(BINDIR) rmdir /S /Q $(BINDIR) + +rebuild : clean all + +distclean : clean + if exist config.* del config.* + if exist Makefile del Makefile + +install-libs : all + if not exist $(INCPREFIX)\$(XSLT_BASENAME) mkdir $(INCPREFIX)\$(XSLT_BASENAME) + if not exist $(INCPREFIX)\$(EXSLT_BASENAME) mkdir $(INCPREFIX)\$(EXSLT_BASENAME) + if not exist $(BINPREFIX) mkdir $(BINPREFIX) + if not exist $(LIBPREFIX) mkdir $(LIBPREFIX) + copy $(XSLT_SRCDIR)\*.h $(INCPREFIX)\$(XSLT_BASENAME) + copy $(EXSLT_SRCDIR)\*.h $(INCPREFIX)\$(EXSLT_BASENAME) + copy $(BINDIR)\$(XSLT_SO) $(SOPREFIX) + copy $(BINDIR)\$(XSLT_A) $(LIBPREFIX) + copy $(BINDIR)\$(XSLT_IMP) $(LIBPREFIX) + copy $(BINDIR)\$(EXSLT_SO) $(SOPREFIX) + copy $(BINDIR)\$(EXSLT_A) $(LIBPREFIX) + copy $(BINDIR)\$(EXSLT_IMP) $(LIBPREFIX) + +install : install-libs + copy $(BINDIR)\*.exe $(BINPREFIX) + -copy $(BINDIR)\*.pdb $(BINPREFIX) + +install-dist : install + +# This is a target for me, to make a binary distribution. Not for the public use, +# keep your hands off :-) +BDVERSION = $(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION).$(LIBXSLT_MICRO_VERSION) +BDPREFIX = $(XSLT_BASENAME)-$(BDVERSION).win32 +bindist : all + $(MAKE) /nologo PREFIX=$(BDPREFIX) SOPREFIX=$(BDPREFIX)\bin install-dist + cscript //NoLogo configure.js genreadme $(XSLT_BASENAME) $(BDVERSION) $(BDPREFIX)\readme.txt + +# Makes the compiler output directory. +$(BINDIR) : + if not exist $(BINDIR) mkdir $(BINDIR) + + +# Makes the libxslt intermediate directory. +$(XSLT_INTDIR) : + if not exist $(XSLT_INTDIR) mkdir $(XSLT_INTDIR) + +# Makes the static libxslt intermediate directory. +$(XSLT_INTDIR_A) : + if not exist $(XSLT_INTDIR_A) mkdir $(XSLT_INTDIR_A) + +# An implicit rule for libxslt compilation. +{$(XSLT_SRCDIR)}.c{$(XSLT_INTDIR)}.obj:: + $(CC) $(CFLAGS) /Fo$(XSLT_INTDIR)\ /c $< + +# An implicit rule for static libxslt compilation. +{$(XSLT_SRCDIR)}.c{$(XSLT_INTDIR_A)}.obj:: + $(CC) $(CFLAGS) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" \ + /Fo$(XSLT_INTDIR_A)\ /c $< + +# Compiles libxslt source. Uses the implicit rule for commands. +$(XSLT_OBJS) : $(XSLT_INTDIR) + +# Compiles static libxslt source. Uses the implicit rule for commands. +$(XSLT_OBJS_A) : $(XSLT_INTDIR_A) + +# Creates the export definition file (DEF) for libxslt. +$(XSLT_INTDIR)\$(XSLT_DEF) : $(XSLT_INTDIR) $(XSLT_DEF).src + $(CPP) $(CPPFLAGS) $(XSLT_DEF).src > $(XSLT_INTDIR)\$(XSLT_DEF) + +# Creates the libxslt shared object. +$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF) + $(LD) $(LDFLAGS) /DLL \ + /VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \ + /IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \ + $(XSLT_OBJS) $(LIBS) libxml2.lib + @$(_VC_MANIFEST_EMBED_DLL) + +#$(BINDIR)\$(XSLT_SO) : $(BINDIR) $(XSLT_OBJS) $(XSLT_INTDIR)\$(XSLT_DEF) +# $(LD) $(LDFLAGS) /DLL /DEF:$(XSLT_INTDIR)\$(XSLT_DEF) \ +# /VERSION:$(LIBXSLT_MAJOR_VERSION).$(LIBXSLT_MINOR_VERSION) \ +# /IMPLIB:$(BINDIR)\$(XSLT_IMP) /OUT:$(BINDIR)\$(XSLT_SO) \ +# $(XSLT_OBJS) $(LIBS) libxml2.lib + +# Creates the libxslt archive. +$(BINDIR)\$(XSLT_A) : $(BINDIR) $(XSLT_OBJS_A) + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(XSLT_A) $(XSLT_OBJS_A) + + +# Creates the libexslt intermediate directory. +$(EXSLT_INTDIR) : + if not exist $(EXSLT_INTDIR) mkdir $(EXSLT_INTDIR) + +# Creates the static libexslt intermediate directory. +$(EXSLT_INTDIR_A) : + if not exist $(EXSLT_INTDIR_A) mkdir $(EXSLT_INTDIR_A) + +# An implicit rule for libexslt compilation. +{$(EXSLT_SRCDIR)}.c{$(EXSLT_INTDIR)}.obj:: + $(CC) /I$(EXSLT_SRCDIR) $(CFLAGS) /Fo$(EXSLT_INTDIR)\ /c $< + +# An implicit rule for static libexslt compilation. +{$(EXSLT_SRCDIR)}.c{$(EXSLT_INTDIR_A)}.obj:: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "LIBEXSLT_STATIC" \ + /I$(EXSLT_SRCDIR) $(CFLAGS) /Fo$(EXSLT_INTDIR_A)\ /c $< + +# Compiles libxslt source. Uses the implicit rule for commands. +$(EXSLT_OBJS) : $(EXSLT_INTDIR) + +# Compiles libxslt source. Uses the implicit rule for commands. +$(EXSLT_OBJS_A) : $(EXSLT_INTDIR_A) + +# Creates the export definition file (DEF) for libxslt. +$(EXSLT_INTDIR)\$(EXSLT_DEF) : $(EXSLT_INTDIR) $(EXSLT_DEF).src + $(CPP) $(CPPFLAGS) $(EXSLT_DEF).src > $(EXSLT_INTDIR)\$(EXSLT_DEF) + +# Creates the libexslt shared object. +$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt + $(LD) $(LDFLAGS) /DLL \ + /VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \ + /IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \ + $(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib + @$(_VC_MANIFEST_EMBED_DLL) + +#$(BINDIR)\$(EXSLT_SO) : $(BINDIR) $(EXSLT_OBJS) $(EXSLT_INTDIR)\$(EXSLT_DEF) libxslt +# $(LD) $(LDFLAGS) /DLL /DEF:$(EXSLT_INTDIR)\$(EXSLT_DEF) \ +# /VERSION:$(LIBEXSLT_MAJOR_VERSION).$(LIBEXSLT_MINOR_VERSION) \ +# /IMPLIB:$(BINDIR)\$(EXSLT_IMP) /OUT:$(BINDIR)\$(EXSLT_SO) \ +# $(EXSLT_OBJS) $(XSLT_IMP) $(LIBS) libxml2.lib + +# Creates the libexslt archive. +$(BINDIR)\$(EXSLT_A) : $(BINDIR) $(EXSLT_OBJS_A) libxslta + $(AR) $(ARFLAGS) /OUT:$(BINDIR)\$(EXSLT_A) $(EXSLT_OBJS_A) + + +# Creates the utils intermediate directory. +$(UTILS_INTDIR) : + if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR) + +# An implicit rule for xsltproc and friends. +APPLIBS = $(LIBS) +!if "$(STATIC)" == "1" +APPLIBS = $(LIBS) libxml2_a.lib +!if "$(WITH_ICONV)" == "1" +APPLIBS = $(APPLIBS) iconv.lib +!endif +!if "$(WITH_ZLIB)" == "1" +APPLIBS = $(APPLIBS) zlib.lib +!endif +{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe: + $(CC) /D "LIBXML_STATIC" /D "LIBXSLT_STATIC" /D "LIBEXSLT_STATIC" \ + $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< + $(LD) $(LDFLAGS) /OUT:$@ $(XSLT_A) $(EXSLT_A) $(APPLIBS) $(UTILS_INTDIR)\$(<B).obj + @$(_VC_MANIFEST_EMBED_EXE) +!else +APPLIBS = $(LIBS) libxml2.lib +{$(UTILS_SRCDIR)}.c{$(BINDIR)}.exe: + $(CC) $(CFLAGS) /Fo$(UTILS_INTDIR)\ /c $< + $(LD) $(LDFLAGS) /OUT:$@ $(XSLT_IMP) $(EXSLT_IMP) $(APPLIBS) $(UTILS_INTDIR)\$(<B).obj + @$(_VC_MANIFEST_EMBED_EXE) +!endif + +# Builds xsltproc and friends. Uses the implicit rule for commands. +$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxslt libxslta libexslt libexslta + +# plugins only work with non-static builds currently. +!if "$(STATIC)" == "0" + +TESTPLUGIN_SRCDIR = $(BASEDIR)\tests\plugins +TESTPLUGIN_DIR = $(TESTPLUGIN_SRCDIR)\plugin +TESTPLUGIN_SO = xmlsoft_org_xslt_testplugin.dll +TESTPLUGIN_OBJS = $(TESTPLUGIN_DIR)\testplugin.obj + +testplugin: + if exist $(TESTPLUGIN_DIR) rmdir /S /Q $(TESTPLUGIN_DIR) + $(MAKE) $(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) + +$(TESTPLUGIN_DIR) : + if not exist $(TESTPLUGIN_DIR) mkdir $(TESTPLUGIN_DIR) + +{$(TESTPLUGIN_SRCDIR)}.c{$(TESTPLUGIN_DIR)}.obj:: + $(CC) $(CFLAGS) /Fo$(TESTPLUGIN_DIR)\ /c $< + +# Creates the testplugin archive. +$(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) : $(TESTPLUGIN_DIR) $(TESTPLUGIN_OBJS) libxslt + $(LD) $(LDFLAGS) /DLL $(XSLT_IMP) $(APPLIBS) $(LIBS)\ + /OUT:$(TESTPLUGIN_DIR)\$(TESTPLUGIN_SO) \ + $(TESTPLUGIN_OBJS) + +!else + +testplugin: + @echo "plugins are disabled with static=yes" + +!endif + + +# Source dependences should be autogenerated somehow here, but how to +# do it? I have no clue. + diff --git a/third_party/libxslt/win32/Readme.txt b/third_party/libxslt/win32/Readme.txt new file mode 100644 index 0000000..e979294 --- /dev/null +++ b/third_party/libxslt/win32/Readme.txt @@ -0,0 +1,133 @@ + + Windows port + ------------ + +This directory contains the files required to build this software on the +native Windows platform. + +As a rule of thumb, the root of this directory contains files needed +to build the library using the command-line tools, while various +subdirectories contain project files for various IDEs. + + + 1. Building from the command-line + ================================= + +This is the easiest, preferred and currently supported method. + +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. + +The second step is compiling the source and, optionally, installing it +to the location of your choosing. + + + 1.1 Configuring the source automatically + ---------------------------------------- + +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 prefix=c:\opt include=c:\opt\include + lib=c:\opt\lib debug=yes + +The previous example will configure the process to 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.2 (Not) Configuring the source manually + ----------------------------------------- + +The manual configuration is pretty straightforward, but I would +suggest rather to get a JScript engine and let the configure script do +it for you. This process involves editing the apropriate Makefile to +suit your needs, as well as manually generating certain *.h files from +their *.h.in sources. + +If you really have no idea what I am talking about and ask yourself +what in Gods name do I mean with '*.h files and their *.h.in sources', +then you really should do an automatic configuration. Which files must +be generated and what needs to be done with their sources in order to +generate them is something people who have built this software before +allready know. You will not find any explanations for that +here. Please configure the source manually only if you allready know +what you must do. Otherwise, you have the choice of either getting a +precompiled binary distribution, or performing the automatic +configuration. + + + 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 +żou configured it to build with GNU C compiler, mingw edition, you +would use the GNU make. Assuming you use MSVC, type + + nmake + +in the win32 subdirectory.When the building completes, you will find +the executable files in win32\binaries directory. + +You can install the software into the directory you specified to the +configure script during the configure stage by typing + + nmake install + +That would be it, enjoy. + + + 2. Building with the IDE + ======================== + +Each supported IDE has its project files placed in a subdirectory of +win32. If you use a particular IDE, you should be able to +instinctively recognise its project files. When you have found your +favourites, load them into the IDE and do whatever you would do with +any other project files. If you are a novice and puzzled about how to +use particular project files with a particular IDE, check for a readme +file in that IDEs subdirectory. I won't discuss any particular IDE +here, because I would like to keep this document as general as +possible, and there is also a chance that support exists for IDEs +which I have never seen. + + +November 2002, Igor Zlatkovic <igor@zlatkovic.com> + diff --git a/third_party/libxslt/win32/config.msvc b/third_party/libxslt/win32/config.msvc new file mode 100644 index 0000000..09c7658 --- /dev/null +++ b/third_party/libxslt/win32/config.msvc @@ -0,0 +1,28 @@ +# .\config.msvc
+# This file is generated automatically by configure.js.
+
+LIBXSLT_MAJOR_VERSION=1
+LIBXSLT_MINOR_VERSION=1
+LIBXSLT_MICRO_VERSION=24
+LIBEXSLT_MAJOR_VERSION=0
+LIBEXSLT_MINOR_VERSION=8
+LIBEXSLT_MICRO_VERSION=13
+WITH_TRIO=0
+WITH_DEBUG=1
+WITH_MEM_DEBUG=0
+WITH_DEBUGGER=1
+WITH_ICONV=1
+WITH_ZLIB=0
+WITH_CRYPTO=1
+WITH_MODULES=0
+DEBUG=0
+STATIC=0
+PREFIX=.
+BINPREFIX=$(PREFIX)\bin
+INCPREFIX=$(PREFIX)\include
+LIBPREFIX=$(PREFIX)\lib
+SOPREFIX=$(PREFIX)\lib
+INCLUDE=$(INCLUDE);.
+LIB=$(LIB);.
+CRUNTIME=/MD
+VCMANIFEST=0
diff --git a/third_party/libxslt/win32/configure.js b/third_party/libxslt/win32/configure.js new file mode 100644 index 0000000..9e0ba2c --- /dev/null +++ b/third_party/libxslt/win32/configure.js @@ -0,0 +1,504 @@ +/* Configure script for libxslt, specific for Windows with Scripting Host. + * + * This script will configure the libxslt build process and create necessary files. + * Run it with an 'help', or an invalid option and it will tell you what options + * it accepts. + * + * March 2002, Igor Zlatkovic <igor@zlatkovic.com> + */ + +/* The source directory, relative to the one where this file resides. */ +var baseDir = ".."; +var srcDirXslt = baseDir + "\\libxslt"; +var srcDirExslt = baseDir + "\\libexslt"; +var srcDirUtils = baseDir + "\\xsltproc"; +/* The directory where we put the binaries after compilation. */ +var binDir = "binaries"; +/* Base name of what we are building. */ +var baseNameXslt = "libxslt"; +var baseNameExslt = "libexslt"; +/* Configure file which contains the version and the output file where + we can store our build configuration. */ +var configFile = baseDir + "\\configure.in"; +var versionFile = ".\\config.msvc"; +/* Input and output files regarding the lib(e)xml features. The second + output file is there for the compatibility reasons, otherwise it + is identical to the first. */ +var optsFileInXslt = srcDirXslt + "\\xsltconfig.h.in"; +var optsFileXslt = srcDirXslt + "\\xsltconfig.h"; +var optsFileInExslt = srcDirExslt + "\\exsltconfig.h.in"; +var optsFileExslt = srcDirExslt + "\\exsltconfig.h"; +/* Version strings for the binary distribution. Will be filled later + in the code. */ +var verMajorXslt; +var verMinorXslt; +var verMicroXslt; +var verMajorExslt; +var verMinorExslt; +var verMicroExslt; +var verCvs; +var useCvsVer = true; +/* Libxslt features. */ +var withTrio = false; +var withXsltDebug = true; +var withMemDebug = false; +var withDebugger = true; +var withIconv = true; +var withZlib = false; +var withCrypto = true; +var withModules = false; +/* Win32 build options. */ +var dirSep = "\\"; +var compiler = "msvc"; +var cruntime = "/MD"; +var vcmanifest = false; +var buildDebug = 0; +var buildStatic = 0; +var buildPrefix = "."; +var buildBinPrefix = ""; +var buildIncPrefix = ""; +var buildLibPrefix = ""; +var buildSoPrefix = ""; +var buildInclude = "."; +var buildLib = "."; +/* Local stuff */ +var error = 0; + +/* Helper function, transforms the option variable into the 'Enabled' + or 'Disabled' string. */ +function boolToStr(opt) +{ + if (opt == false) + return "no"; + else if (opt == true) + return "yes"; + error = 1; + return "*** undefined ***"; +} + +/* Helper function, transforms the argument string into the boolean + value. */ +function strToBool(opt) +{ + if (opt == "0" || opt == "no") + return false; + else if (opt == "1" || opt == "yes") + return true; + error = 1; + return false; +} + +/* Displays the details about how to use this script. */ +function usage() +{ + var txt; + txt = "Usage:\n"; + txt += " cscript " + WScript.ScriptName + " <options>\n"; + 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'.\n\n"; + txt += "XSLT processor options, default value given in parentheses:\n\n"; + txt += " trio: Enable TRIO string manipulator (" + (withTrio? "yes" : "no") + ")\n"; + txt += " xslt_debug: Enable XSLT debbugging module (" + (withXsltDebug? "yes" : "no") + ")\n"; + txt += " mem_debug: Enable memory debugger (" + (withMemDebug? "yes" : "no") + ")\n"; + txt += " debugger: Enable external debugger support (" + (withDebugger? "yes" : "no") + ")\n"; + txt += " iconv: Use iconv library (" + (withIconv? "yes" : "no") + ")\n"; + txt += " zlib: Use zlib library (" + (withZlib? "yes" : "no") + ")\n"; + txt += " crypto: Enable Crypto support (" + (withCrypto? "yes" : "no") + ")\n"; + txt += " modules: Enable Module support (" + (withModules? "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 += " cruntime: C-runtime compiler option (only msvc) (" + cruntime + ")\n"; + txt += " vcmanifest: Embed VC manifest (only msvc) (" + (vcmanifest? "yes" : "no") + ")\n"; + txt += " debug: Build unoptimised debug executables (" + (buildDebug? "yes" : "no") + ")\n"; + txt += " static: Link xsltproc statically to libxslt (" + (buildStatic? "yes" : "no") + ")\n"; + txt += " Note: automatically enabled if cruntime is not /MD or /MDd\n"; + txt += " prefix: Base directory for the installation (" + buildPrefix + ")\n"; + txt += " bindir: Directory where xsltproc and friends should be installed\n"; + txt += " (" + buildBinPrefix + ")\n"; + txt += " incdir: Directory where headers should be installed\n"; + txt += " (" + buildIncPrefix + ")\n"; + txt += " libdir: Directory where static and import libraries should be\n"; + txt += " installed (" + buildLibPrefix + ")\n"; + txt += " sodir: Directory where shared libraries should be installed\n"; + txt += " (" + buildSoPrefix + ")\n"; + txt += " include: Additional search path for the compiler, particularily\n"; + txt += " where libxml headers can be found (" + buildInclude + ")\n"; + txt += " lib: Additional search path for the linker, particularily\n"; + txt += " where libxml library can be found (" + buildLib + ")\n"; + WScript.Echo(txt); +} + +/* Discovers the version we are working with by reading the apropriate + configuration file. Despite its name, this also writes the configuration + file included by our makefile. */ +function discoverVersion() +{ + var fso, cf, vf, ln, s; + fso = new ActiveXObject("Scripting.FileSystemObject"); + verCvs = ""; + if (useCvsVer && fso.FileExists("..\\CVS\\Entries")) { + cf = fso.OpenTextFile("..\\CVS\\Entries", 1); + while (cf.AtEndOfStream != true) { + ln = cf.ReadLine(); + s = new String(ln); + if (s.search(/^\/ChangeLog\//) != -1) { + iDot = s.indexOf("."); + iSlash = s.indexOf("/", iDot); + verCvs = "CVS" + s.substring(iDot + 1, iSlash); + break; + } + } + cf.Close(); + } + 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 + "."); + vf.WriteBlankLines(1); + while (cf.AtEndOfStream != true) { + ln = cf.ReadLine(); + s = new String(ln); + if (s.search(/^LIBXSLT_MAJOR_VERSION=/) != -1) { + vf.WriteLine(s); + verMajorXslt = s.substring(s.indexOf("=") + 1, s.length) + } else if(s.search(/^LIBXSLT_MINOR_VERSION=/) != -1) { + vf.WriteLine(s); + verMinorXslt = s.substring(s.indexOf("=") + 1, s.length) + } else if(s.search(/^LIBXSLT_MICRO_VERSION=/) != -1) { + vf.WriteLine(s); + verMicroXslt = s.substring(s.indexOf("=") + 1, s.length) + } else if (s.search(/^LIBEXSLT_MAJOR_VERSION=/) != -1) { + vf.WriteLine(s); + verMajorExslt = s.substring(s.indexOf("=") + 1, s.length) + } else if(s.search(/^LIBEXSLT_MINOR_VERSION=/) != -1) { + vf.WriteLine(s); + verMinorExslt = s.substring(s.indexOf("=") + 1, s.length) + } else if(s.search(/^LIBEXSLT_MICRO_VERSION=/) != -1) { + vf.WriteLine(s); + verMicroExslt = s.substring(s.indexOf("=") + 1, s.length) + } + } + cf.Close(); + vf.WriteLine("WITH_TRIO=" + (withTrio? "1" : "0")); + vf.WriteLine("WITH_DEBUG=" + (withXsltDebug? "1" : "0")); + vf.WriteLine("WITH_MEM_DEBUG=" + (withMemDebug? "1" : "0")); + vf.WriteLine("WITH_DEBUGGER=" + (withDebugger? "1" : "0")); + vf.WriteLine("WITH_ICONV=" + (withIconv? "1" : "0")); + vf.WriteLine("WITH_ZLIB=" + (withZlib? "1" : "0")); + vf.WriteLine("WITH_CRYPTO=" + (withCrypto? "1" : "0")); + vf.WriteLine("WITH_MODULES=" + (withModules? "1" : "0")); + vf.WriteLine("DEBUG=" + (buildDebug? "1" : "0")); + vf.WriteLine("STATIC=" + (buildStatic? "1" : "0")); + vf.WriteLine("PREFIX=" + buildPrefix); + vf.WriteLine("BINPREFIX=" + buildBinPrefix); + vf.WriteLine("INCPREFIX=" + buildIncPrefix); + vf.WriteLine("LIBPREFIX=" + buildLibPrefix); + vf.WriteLine("SOPREFIX=" + buildSoPrefix); + if (compiler == "msvc") { + vf.WriteLine("INCLUDE=$(INCLUDE);" + buildInclude); + vf.WriteLine("LIB=$(LIB);" + buildLib); + vf.WriteLine("CRUNTIME=" + cruntime); + vf.WriteLine("VCMANIFEST=" + (vcmanifest? "1" : "0")); + } else if (compiler == "mingw") { + vf.WriteLine("INCLUDE+=;" + buildInclude); + vf.WriteLine("LIB+=;" + buildLib); + } + vf.Close(); +} + +/* Configures libxslt. This one will generate xsltconfig.h from xsltconfig.h.in + taking what the user passed on the command line into account. */ +function configureXslt() +{ + var fso, ofi, of, ln, s; + fso = new ActiveXObject("Scripting.FileSystemObject"); + ofi = fso.OpenTextFile(optsFileInXslt, 1); + of = fso.CreateTextFile(optsFileXslt, true); + while (ofi.AtEndOfStream != true) { + ln = ofi.ReadLine(); + s = new String(ln); + if (s.search(/\@VERSION\@/) != -1) { + of.WriteLine(s.replace(/\@VERSION\@/, + verMajorXslt + "." + verMinorXslt + "." + verMicroXslt)); + } else if (s.search(/\@LIBXSLT_VERSION_NUMBER\@/) != -1) { + of.WriteLine(s.replace(/\@LIBXSLT_VERSION_NUMBER\@/, + verMajorXslt*10000 + verMinorXslt*100 + verMicroXslt*1)); + } else if (s.search(/\@LIBXSLT_VERSION_EXTRA\@/) != -1) { + of.WriteLine(s.replace(/\@LIBXSLT_VERSION_EXTRA\@/, verCvs)); + } else if (s.search(/\@WITH_TRIO\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_TRIO\@/, withTrio? "1" : "0")); + } else if (s.search(/\@WITH_XSLT_DEBUG\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_XSLT_DEBUG\@/, withXsltDebug? "1" : "0")); + } else if (s.search(/\@WITH_MEM_DEBUG\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_MEM_DEBUG\@/, withMemDebug? "1" : "0")); + } else if (s.search(/\@WITH_DEBUGGER\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_DEBUGGER\@/, withDebugger? "1" : "0")); + } else if (s.search(/\@WITH_MODULES\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0")); + } else if (s.search(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/) != -1) { + of.WriteLine(s.replace(/\@LIBXSLT_DEFAULT_PLUGINS_PATH\@/, "NULL")); + } else + of.WriteLine(ln); + } + ofi.Close(); + of.Close(); +} + +/* Configures libexslt. This one will generate exsltconfig.h from exsltconfig.h.in + taking what the user passed on the command line into account. */ +function configureExslt() +{ + var fso, ofi, of, ln, s; + fso = new ActiveXObject("Scripting.FileSystemObject"); + ofi = fso.OpenTextFile(optsFileInExslt, 1); + of = fso.CreateTextFile(optsFileExslt, true); + while (ofi.AtEndOfStream != true) { + ln = ofi.ReadLine(); + s = new String(ln); + if (s.search(/\@VERSION\@/) != -1) { + of.WriteLine(s.replace(/\@VERSION\@/, + verMajorExslt + "." + verMinorExslt + "." + verMicroExslt)); + } else if (s.search(/\@LIBEXSLT_VERSION_NUMBER\@/) != -1) { + of.WriteLine(s.replace(/\@LIBEXSLT_VERSION_NUMBER\@/, + verMajorExslt*10000 + verMinorExslt*100 + verMicroExslt*1)); + } else if (s.search(/\@LIBEXSLT_VERSION_EXTRA\@/) != -1) { + of.WriteLine(s.replace(/\@LIBEXSLT_VERSION_EXTRA\@/, verCvs)); + } else if (s.search(/\@WITH_CRYPTO\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_CRYPTO\@/, withCrypto? "1" : "0")); + } else if (s.search(/\@WITH_MODULES\@/) != -1) { + of.WriteLine(s.replace(/\@WITH_MODULES\@/, withModules? "1" : "0")); + } else + of.WriteLine(ln); + } + ofi.Close(); + of.Close(); +} + +/* Creates the readme file for the binary distribution of 'bname', for the + version 'ver' in the file 'file'. This one is called from the Makefile when + generating a binary distribution. The parameters are passed by make. */ +function genReadme(bname, ver, file) +{ + var fso, f; + fso = new ActiveXObject("Scripting.FileSystemObject"); + f = fso.CreateTextFile(file, true); + f.WriteLine(" " + bname + " " + ver); + f.WriteLine(" --------------"); + f.WriteBlankLines(1); + f.WriteLine(" This is " + bname + ", version " + ver + ", binary package for the native Win32/IA32"); + f.WriteLine("platform."); + f.WriteBlankLines(1); + f.WriteLine(" The files in this package do not require any special installation"); + f.WriteLine("steps. Extract the contents of the archive whereever you wish and"); + f.WriteLine("make sure that your tools which use " + bname + " can find it."); + f.WriteBlankLines(1); + f.WriteLine(" For example, if you want to run the supplied utilities from the command"); + f.WriteLine("line, you can, if you wish, add the 'bin' subdirectory to the PATH"); + f.WriteLine("environment variable."); + f.WriteLine(" If you want to make programmes in C which use " + bname + ", you'll"); + f.WriteLine("likely know how to use the contents of this package. If you don't, please"); + f.WriteLine("refer to your compiler's documentation."); + f.WriteBlankLines(1); + f.WriteLine(" If there is something you cannot keep for yourself, such as a problem,"); + f.WriteLine("a cheer of joy, a comment or a suggestion, feel free to contact me using"); + f.WriteLine("the address below."); + f.WriteBlankLines(1); + f.WriteLine(" Igor Zlatkovic (igor@zlatkovic.com)"); + f.Close(); +} + +/* + * main(), + * Execution begins here. + */ + +/* Parse the command-line arguments. */ +for (i = 0; (i < WScript.Arguments.length) && (error == 0); i++) { + var arg, opt; + arg = WScript.Arguments(i); + opt = arg.substring(0, arg.indexOf("=")); + if (opt.length == 0) + opt = arg.substring(0, arg.indexOf(":")); + if (opt.length > 0) { + if (opt == "xslt_debug") + withXsltDebug = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "trio") + withTrio = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "mem_debug") + withMemDebug = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "debugger") + withDebugger = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "debug") + buildDebug = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "iconv") + withIconv = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "zlib") + withZlib = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "crypto") + withCrypto = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "modules") + withModules = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "compiler") + compiler = arg.substring(opt.length + 1, arg.length); + else if (opt == "cruntime") + cruntime = arg.substring(opt.length + 1, arg.length); + else if (opt == "vcmanifest") + vcmanifest = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "static") + buildStatic = strToBool(arg.substring(opt.length + 1, arg.length)); + else if (opt == "prefix") + buildPrefix = arg.substring(opt.length + 1, arg.length); + else if (opt == "incdir") + buildIncPrefix = arg.substring(opt.length + 1, arg.length); + else if (opt == "bindir") + buildBinPrefix = arg.substring(opt.length + 1, arg.length); + else if (opt == "libdir") + buildLibPrefix = arg.substring(opt.length + 1, arg.length); + else if (opt == "sodir") + buildSoPrefix = arg.substring(opt.length + 1, arg.length); + else if (opt == "incdir") + buildIncPrefix = arg.substring(opt.length + 1, arg.length); + else if (opt == "include") + buildInclude = arg.substring(opt.length + 1, arg.length); + else if (opt == "lib") + buildLib = arg.substring(opt.length + 1, arg.length); + else if (opt == "release") + useCvsVer = false; + else + error = 1; + } else if (i == 0) { + if (arg == "genreadme") { + // This command comes from the Makefile and will not be checked + // for errors, because Makefile will always supply right parameters. + genReadme(WScript.Arguments(1), WScript.Arguments(2), WScript.Arguments(3)); + WScript.Quit(0); + } else if (arg == "help") { + usage(); + WScript.Quit(0); + } + } else + error = 1; +} +// If we have an error here, it is because the user supplied bad parameters. +if (error != 0) { + usage(); + WScript.Quit(error); +} + +// if user choses to link the c-runtime library statically into libxslt +// with /MT and friends, then we need to enable static linking for xsltproc +if (cruntime == "/MT" || cruntime == "/MTd" || + cruntime == "/ML" || cruntime == "/MLd") { + buildStatic = 1; +} + +if (buildStatic == 1 && withModules == 1) { + WScript.Echo("Warning: Disabling plugin support."); + WScript.Echo(""); + WScript.Echo("Modules cannot be enabled when a statically linked cruntime has"); + WScript.Echo("been selected, or when xsltproc.exe is linked statically to libxslt."); + WScript.Echo(""); + withModules=0; +} + +dirSep = "\\"; +//if (compiler == "mingw") +// dirSep = "/"; +if (buildBinPrefix == "") + buildBinPrefix = "$(PREFIX)" + dirSep + "bin"; +if (buildIncPrefix == "") + buildIncPrefix = "$(PREFIX)" + dirSep + "include"; +if (buildLibPrefix == "") + buildLibPrefix = "$(PREFIX)" + dirSep + "lib"; +if (buildSoPrefix == "") + buildSoPrefix = "$(PREFIX)" + dirSep + "lib"; + +// Discover the version. +discoverVersion(); +if (error != 0) { + WScript.Echo("Version discovery failed, aborting."); + WScript.Quit(error); +} + +var outVerString = baseNameXslt + " version: " + verMajorXslt + "." + verMinorXslt + "." + verMicroXslt; +if (verCvs && verCvs != "") + outVerString += "-" + verCvs; +WScript.Echo(outVerString); +outVerString = baseNameExslt + " version: " + verMajorExslt + "." + verMinorExslt + "." + verMicroExslt; +if (verCvs && verCvs != "") + outVerString += "-" + verCvs; +WScript.Echo(outVerString); + +// Configure libxslt. +configureXslt(); +if (error != 0) { + WScript.Echo("Configuration failed, aborting."); + WScript.Quit(error); +} + +// Configure libexslt. +configureExslt(); +if (error != 0) { + WScript.Echo("Configuration failed, aborting."); + WScript.Quit(error); +} + +// Create the Makefile. +var fso = new ActiveXObject("Scripting.FileSystemObject"); +var makefile = ".\\Makefile.msvc"; +if (compiler == "mingw") + makefile = ".\\Makefile.mingw"; +var new_makefile = ".\\Makefile"; +var f = fso.FileExists(new_makefile); +if (f) { + var t = fso.GetFile(new_makefile); + t.Attributes =0; +} +fso.CopyFile(makefile, new_makefile, true); +WScript.Echo("Created Makefile."); +// Create the config.h. +var confighsrc = "..\\libxslt\\win32config.h"; +var configh = "..\\config.h"; +var f = fso.FileExists(configh); +if (f) { + var t = fso.GetFile(configh); + t.Attributes =0; +} +fso.CopyFile(confighsrc, configh, true); +WScript.Echo("Created config.h."); + +// Display the final configuration. +var txtOut = "\nXSLT processor configuration\n"; +txtOut += "----------------------------\n"; +txtOut += " Trio: " + boolToStr(withTrio) + "\n"; +txtOut += " Debugging module: " + boolToStr(withXsltDebug) + "\n"; +txtOut += " Memory debugging: " + boolToStr(withMemDebug) + "\n"; +txtOut += " Debugger support: " + boolToStr(withDebugger) + "\n"; +txtOut += " Use iconv: " + boolToStr(withIconv) + "\n"; +txtOut += " With zlib: " + boolToStr(withZlib) + "\n"; +txtOut += " Crypto: " + boolToStr(withCrypto) + "\n"; +txtOut += " Modules: " + boolToStr(withModules) + "\n"; +txtOut += "\n"; +txtOut += "Win32 build configuration\n"; +txtOut += "-------------------------\n"; +txtOut += " Compiler: " + compiler + "\n"; +if (compiler == "msvc") + txtOut += " C-Runtime option: " + cruntime + "\n"; + txtOut += " Embed Manifest: " + boolToStr(vcmanifest) + "\n"; +txtOut += " Debug symbols: " + boolToStr(buildDebug) + "\n"; +txtOut += " Static xsltproc: " + boolToStr(buildStatic) + "\n"; +txtOut += " Install prefix: " + buildPrefix + "\n"; +txtOut += " Put tools in: " + buildBinPrefix + "\n"; +txtOut += " Put headers in: " + buildIncPrefix + "\n"; +txtOut += "Put static libs in: " + buildLibPrefix + "\n"; +txtOut += "Put shared libs in: " + buildSoPrefix + "\n"; +txtOut += " Include path: " + buildInclude + "\n"; +txtOut += " Lib path: " + buildLib + "\n"; +WScript.Echo(txtOut); + +// Done. diff --git a/third_party/libxslt/win32/defgen.xsl b/third_party/libxslt/win32/defgen.xsl new file mode 100644 index 0000000..6a29537 --- /dev/null +++ b/third_party/libxslt/win32/defgen.xsl @@ -0,0 +1,44 @@ +<?xml version="1.0"?> +<!-- + win32/defgen.xsl + This stylesheet is used to transform doc/lib[e]xslt-api.xml into a pseudo-source, + which can then be preprocessed to get the .DEF file for the Microsoft's linker. + + Use any XSLT processor to produce a file called lib[e]xslt.def.src in the win32 + subdirectory, for example, run xsltproc from the win32 subdirectory: + + xsltproc -o libxslt.def.src defgen.xsl ../doc/libxslt-api.xml + xsltproc -o libexslt.def.src defgen.xsl ../doc/libexslt-api.xml + + Once that finishes, rest assured, the Makefile will know what to do with the + generated file. + + May 2003, Igor Zlatkovic <igor@zlatkovic.com> +--> +<!DOCTYPE xsl:stylesheet [ <!ENTITY nl '
'> ]> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:strip-space elements="*"/> + <xsl:output method="text"/> + <xsl:template match="/"> + <xsl:text>LIBRARY </xsl:text> + <xsl:value-of select="/api/@name"/> + <xsl:text>&nl;</xsl:text> + <xsl:text>EXPORTS&nl;</xsl:text> + <xsl:for-each select="/api/symbols/*[self::variable or self::function]"> + <xsl:if test="@name='xsltExtFunctionLookup' or + @name='xsltMatchPattern'"> + <xsl:text>/*</xsl:text> + </xsl:if> + <xsl:value-of select="@name"/> + <xsl:if test="self::variable"> + <xsl:text> DATA</xsl:text> + </xsl:if> + <xsl:if test="@name='xsltExtFunctionLookup' or + @name='xsltMatchPattern'"> + <xsl:text>*/</xsl:text> + </xsl:if> + <xsl:text>&nl;</xsl:text> + </xsl:for-each> + </xsl:template> +</xsl:stylesheet> + diff --git a/third_party/libxslt/win32/libexslt.def.src b/third_party/libxslt/win32/libexslt.def.src new file mode 100644 index 0000000..ac4b3c7 --- /dev/null +++ b/third_party/libxslt/win32/libexslt.def.src @@ -0,0 +1,16 @@ +LIBRARY libexslt +EXPORTS +exsltLibexsltVersion DATA +exsltLibraryVersion DATA +exsltLibxmlVersion DATA +exsltLibxsltVersion DATA +exsltCommonRegister +exsltCryptoRegister +exsltDateRegister +exsltDynRegister +exsltFuncRegister +exsltMathRegister +exsltRegisterAll +exsltSaxonRegister +exsltSetsRegister +exsltStrRegister diff --git a/third_party/libxslt/win32/libxslt.def.src b/third_party/libxslt/win32/libxslt.def.src new file mode 100644 index 0000000..48af874 --- /dev/null +++ b/third_party/libxslt/win32/libxslt.def.src @@ -0,0 +1,252 @@ +LIBRARY libxslt +EXPORTS +xslDebugStatus DATA +xsltConstNamespaceNameXSLT DATA +xsltDocDefaultLoader DATA +xsltEngineVersion DATA +xsltExtMarker DATA +xsltGenericDebug DATA +xsltGenericDebugContext DATA +xsltGenericError DATA +xsltGenericErrorContext DATA +xsltLibxmlVersion DATA +xsltLibxsltVersion DATA +xsltMaxDepth DATA +xsltXSLTAttrMarker DATA +xslAddCall +xslDropCall +xslHandleDebugger +xsltAddKey +xsltAddStackElemList +xsltAddTemplate +xsltAllocateExtra +xsltAllocateExtraCtxt +xsltApplyAttributeSet +xsltApplyImports +xsltApplyOneTemplate +xsltApplyStripSpaces +xsltApplyStylesheet +xsltApplyStylesheetUser +xsltApplyTemplates +xsltAttrListTemplateProcess +xsltAttrTemplateProcess +xsltAttrTemplateValueProcess +xsltAttrTemplateValueProcessNode +xsltAttribute +xsltCalibrateAdjust +xsltCallTemplate +xsltCheckExtPrefix +xsltCheckExtURI +xsltCheckRead +xsltCheckWrite +xsltChoose +xsltCleanupGlobals +xsltCleanupTemplates +xsltComment +xsltCompileAttr +xsltCompilePattern +xsltComputeSortResult +xsltCopy +xsltCopyNamespace +xsltCopyNamespaceList +xsltCopyOf +xsltCopyTextString +xsltCreateRVT +xsltDebug +xsltDebugDumpExtensions +xsltDebugGetDefaultTrace +xsltDebugSetDefaultTrace +xsltDecimalFormatGetByName +xsltDefaultSortFunction +xsltDoSortFunction +xsltDocumentComp +xsltDocumentElem +xsltDocumentFunction +xsltDocumentSortFunction +xsltElement +xsltElementAvailableFunction +xsltEvalAVT +xsltEvalAttrValueTemplate +xsltEvalGlobalVariables +xsltEvalOneUserParam +xsltEvalStaticAttrValueTemplate +xsltEvalTemplateString +xsltEvalUserParams +xsltEvalXPathPredicate +xsltEvalXPathString +xsltEvalXPathStringNs +xsltExtElementLookup +/*xsltExtFunctionLookup*/ +xsltExtModuleElementLookup +xsltExtModuleElementPreComputeLookup +xsltExtModuleFunctionLookup +xsltExtModuleTopLevelLookup +xsltExtensionInstructionResultFinalize +xsltExtensionInstructionResultRegister +xsltFindDocument +xsltFindElemSpaceHandling +xsltFindTemplate +xsltForEach +xsltFormatNumberConversion +xsltFormatNumberFunction +xsltFreeAVTList +xsltFreeAttributeSetsHashes +xsltFreeCompMatchList +xsltFreeCtxtExts +xsltFreeDocumentKeys +xsltFreeDocuments +xsltFreeExts +xsltFreeGlobalVariables +xsltFreeKeys +xsltFreeNamespaceAliasHashes +xsltFreeRVTs +xsltFreeSecurityPrefs +xsltFreeStackElemList +xsltFreeStyleDocuments +xsltFreeStylePreComps +xsltFreeStylesheet +xsltFreeTemplateHashes +xsltFreeTransformContext +xsltFunctionAvailableFunction +xsltFunctionNodeSet +xsltGenerateIdFunction +xsltGetCNsProp +xsltGetDebuggerStatus +xsltGetDefaultSecurityPrefs +xsltGetExtData +xsltGetExtInfo +xsltGetKey +xsltGetNamespace +xsltGetNsProp +xsltGetPlainNamespace +xsltGetProfileInformation +xsltGetQNameURI +xsltGetQNameURI2 +xsltGetSecurityPrefs +xsltGetSpecialNamespace +xsltGetTemplate +xsltGetUTF8Char +xsltGetXIncludeDefault +xsltIf +xsltInit +xsltInitAllDocKeys +xsltInitCtxtExts +xsltInitCtxtKey +xsltInitCtxtKeys +xsltInitElemPreComp +xsltIsBlank +xsltKeyFunction +xsltLoadDocument +xsltLoadStyleDocument +xsltLoadStylesheetPI +xsltLocalVariablePop +xsltLocalVariablePush +/*xsltMatchPattern*/ +xsltMessage +xsltNamespaceAlias +xsltNeedElemSpaceHandling +xsltNewDocument +xsltNewElemPreComp +xsltNewSecurityPrefs +xsltNewStyleDocument +xsltNewStylesheet +xsltNewTransformContext +xsltNextImport +xsltNormalizeCompSteps +xsltNumber +xsltNumberFormat +xsltParseAnyXSLTElem +xsltParseGlobalParam +xsltParseGlobalVariable +xsltParseSequenceConstructor +xsltParseStylesheetAttributeSet +xsltParseStylesheetCallerParam +xsltParseStylesheetDoc +xsltParseStylesheetFile +xsltParseStylesheetImport +xsltParseStylesheetImportedDoc +xsltParseStylesheetInclude +xsltParseStylesheetOutput +xsltParseStylesheetParam +xsltParseStylesheetProcess +xsltParseStylesheetVariable +xsltParseTemplateContent +xsltPointerListAddSize +xsltPointerListClear +xsltPointerListCreate +xsltPointerListFree +xsltPreComputeExtModuleElement +xsltPrintErrorContext +xsltProcessingInstruction +xsltProfileStylesheet +xsltQuoteOneUserParam +xsltQuoteUserParams +xsltRegisterAllElement +xsltRegisterAllExtras +xsltRegisterAllFunctions +xsltRegisterExtElement +xsltRegisterExtFunction +xsltRegisterExtModule +xsltRegisterExtModuleElement +xsltRegisterExtModuleFull +xsltRegisterExtModuleFunction +xsltRegisterExtModuleTopLevel +xsltRegisterExtPrefix +xsltRegisterExtras +xsltRegisterLocalRVT +xsltRegisterPersistRVT +xsltRegisterTestModule +xsltRegisterTmpRVT +xsltReleaseRVT +xsltResolveStylesheetAttributeSet +xsltRestoreDocumentNamespaces +xsltRunStylesheet +xsltRunStylesheetUser +xsltSaveProfiling +xsltSaveResultTo +xsltSaveResultToFd +xsltSaveResultToFile +xsltSaveResultToFilename +xsltSaveResultToString +xsltSecurityAllow +xsltSecurityForbid +xsltSetCtxtParseOptions +xsltSetCtxtSecurityPrefs +xsltSetCtxtSortFunc +xsltSetDebuggerCallbacks +xsltSetDebuggerStatus +xsltSetDefaultSecurityPrefs +xsltSetGenericDebugFunc +xsltSetGenericErrorFunc +xsltSetLoaderFunc +xsltSetSecurityPrefs +xsltSetSortFunc +xsltSetTransformErrorFunc +xsltSetXIncludeDefault +xsltShutdownCtxtExts +xsltShutdownExts +xsltSort +xsltSplitQName +xsltStyleGetExtData +xsltStylePreCompute +xsltStyleStylesheetLevelGetExtData +xsltSystemPropertyFunction +xsltTemplateProcess +xsltTestCompMatchList +xsltText +xsltTimestamp +xsltTransStorageAdd +xsltTransStorageRemove +xsltTransformError +xsltUninit +xsltUnparsedEntityURIFunction +xsltUnregisterExtModule +xsltUnregisterExtModuleElement +xsltUnregisterExtModuleFunction +xsltUnregisterExtModuleTopLevel +xsltValueOf +xsltVariableLookup +xsltXPathCompile +xsltXPathFunctionLookup +xsltXPathGetTransformContext +xsltXPathVariableLookup |