H
hsmit.home
I spent way too much time on this and I must say, I was a little
disgruntled with what has been posted on all the various Xalan C
mailing lists. Everyone says there's a solution, but give next to no
detail on how to achieve this "allusive" solution. Well I spent the
better part of a day finally figuring it out the hard way, trial and
error.
Here's a list of steps to compile the Xalan C version 1.10.0 on
Microsofts Visual C++ 2005 Express Edition (MSVC++ 2005 Express Ed.)
NOTE: these are only the steps to compile the Release version, I never
got around to figuring out how to compile it in Debug mode (I ran into
some more problems)
NOTE: Xerces and Xalan were compiled in the c:\dev directory, you can
of course compile it any where you like.
XERCES
======
1) Download xerces-c-src_2_7_0.zip and unzip it in c:\dev
2) Copy the contents of C:\dev\xerces-c-src_2_7_0\Projects\Win32\VC7.1
into a newly created VC8 directory
3) Open Projects\Win32\VC8\xerces-all.sln. It will automatically get
converted to MSVC++ express edition Solutions
4) Set the solution configuration to Release
5) Right mouse click on the XercesLib project and select Properties
6) in the C++ and Linker sections change all VC7.1 directories to VC8
7) C++ -> Advanced -> Disable Specific Warnings = 4996
8) C++ -> Language -> Treat w_char as Built in type = NO
9) Remove XercesLib\util\WIN32\version.rc file from the project.
10) Compile only the XercesLib project
11) Change the Tools -> Options -> Projects and Solutions -> VC++
Directories:
Include Files: C:\dev\xerces-c-src_2_7_0\src
Library files: C:\dev\xerces-c-src_2_7_0\Build\Win32\VC8\Release
12) My Computer->Properties->Advanced->Environement Variables
XERCESCROOT:C:\dev\xerces-c-src_2_7_0
XALAN
=====
1) Downloaded source distro. Xalan-C_1_10_0-src.zip 2,894,892 bytes
2) unziped to c:\dev directory
3) Copy the contents of C:\dev\xml-xalan\c\Projects\Win32\VC7.1 into a
newly created VC8 directory
4) Open Projects\Win32\VC8\Xalan.sln. It will automatically get
converted to MSVC++ express edition Solutions
4) Set the solution configuration to Release
5) Right mouse click on the AllInOne project and select Properties
6) in the C++ and Linker sections change all VC7.1 directories to VC8
7) C++ -> Advanced -> Disable Specific Warnings = 4996
8) C++ -> Language -> Treat w_char as Built in type = NO
9) Remove AllInOne\Resource Files\allinone.rc file from the project.
compiling localisation
----------------------
1) Update the following files (from the C:\dev\xml-xalan\c\ root):
Projects\Win32\VC8\Utils\Localization\tools.ini
Projects\Win32\VC8\Utils\Localization\BuildMessages.mak
Projects\Win32\VC8\Utils\MsgCreator\MsgCreator.mak
Projects\Win32\VC8\Utils\XalanMsgLib\XalanMsgLib.mak
2) All places that have a VC7.1, change to VC8
3) tools.ini : comment [NMAKE] -> #[NMAKE]
4) BuildMessages.mak : insert the following line at the top : include
tools.ini
5) MsgCreator.mak: change the following line,
CPP_PROJ=/nologo /W4 /EHsc /wd4996 /Zc:wchar_t- /O2 /I ".\\" /I $
(XALANINCLUDE) $(XERCESINCLUDE) /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /
D "_MBCS" /Fp"$(INTDIR)\MsgCreator.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\
\" /FD /c
to,
CPP_PROJ=/nologo /ML /W4 /GX /O2 /I ".\\" /I $(XALANINCLUDE) $
(XERCESINCLUDE) /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$
(INTDIR)\MsgCreator.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
6) XalanMsgLib.mak: change the following line,
CPP_PROJ=/nologo /MD /W4 /GX /O2 $(XERCESINCLUDE) /I "..\..\..\..\..
\src" /I ".\$(BUILDRESDIR)\Nls\Include" /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XALANMSGLIB_EXPORTS" /D
"XALAN_XALANMSGLIB_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /
c
to,
CPP_PROJ=/nologo /MD /W4 /EHsc /O2 $(XERCESINCLUDE) /I "..\..\..\..\..
\src" /I ".\$(BUILDRESDIR)\Nls\Include" /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XALANMSGLIB_EXPORTS" /D
"XALAN_XALANMSGLIB_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /
c
7) Ensure that the Release build is active
8) Right-mouse click on the Localization project -> Project Only - >
Build only Localization
11) Change the Tools -> Options -> Projects and Solutions -> VC++
Directories:
Include Files: C:\dev\xml-xalan\c\src
xxx Library files: C:\dev\xerces-c-src_2_7_0\Build\Win32\VC8\Release
12) Build AllInOne Project
That's it! Don't let the number of steps and the compiler switches
intimidate you. It's not so bad. I've been discovering the wonderful
world of server side / C++/ XSLT processing, ever since - and it's a
beautiful thing.
I hope this helps.
disgruntled with what has been posted on all the various Xalan C
mailing lists. Everyone says there's a solution, but give next to no
detail on how to achieve this "allusive" solution. Well I spent the
better part of a day finally figuring it out the hard way, trial and
error.
Here's a list of steps to compile the Xalan C version 1.10.0 on
Microsofts Visual C++ 2005 Express Edition (MSVC++ 2005 Express Ed.)
NOTE: these are only the steps to compile the Release version, I never
got around to figuring out how to compile it in Debug mode (I ran into
some more problems)
NOTE: Xerces and Xalan were compiled in the c:\dev directory, you can
of course compile it any where you like.
XERCES
======
1) Download xerces-c-src_2_7_0.zip and unzip it in c:\dev
2) Copy the contents of C:\dev\xerces-c-src_2_7_0\Projects\Win32\VC7.1
into a newly created VC8 directory
3) Open Projects\Win32\VC8\xerces-all.sln. It will automatically get
converted to MSVC++ express edition Solutions
4) Set the solution configuration to Release
5) Right mouse click on the XercesLib project and select Properties
6) in the C++ and Linker sections change all VC7.1 directories to VC8
7) C++ -> Advanced -> Disable Specific Warnings = 4996
8) C++ -> Language -> Treat w_char as Built in type = NO
9) Remove XercesLib\util\WIN32\version.rc file from the project.
10) Compile only the XercesLib project
11) Change the Tools -> Options -> Projects and Solutions -> VC++
Directories:
Include Files: C:\dev\xerces-c-src_2_7_0\src
Library files: C:\dev\xerces-c-src_2_7_0\Build\Win32\VC8\Release
12) My Computer->Properties->Advanced->Environement Variables
XERCESCROOT:C:\dev\xerces-c-src_2_7_0
XALAN
=====
1) Downloaded source distro. Xalan-C_1_10_0-src.zip 2,894,892 bytes
2) unziped to c:\dev directory
3) Copy the contents of C:\dev\xml-xalan\c\Projects\Win32\VC7.1 into a
newly created VC8 directory
4) Open Projects\Win32\VC8\Xalan.sln. It will automatically get
converted to MSVC++ express edition Solutions
4) Set the solution configuration to Release
5) Right mouse click on the AllInOne project and select Properties
6) in the C++ and Linker sections change all VC7.1 directories to VC8
7) C++ -> Advanced -> Disable Specific Warnings = 4996
8) C++ -> Language -> Treat w_char as Built in type = NO
9) Remove AllInOne\Resource Files\allinone.rc file from the project.
compiling localisation
----------------------
1) Update the following files (from the C:\dev\xml-xalan\c\ root):
Projects\Win32\VC8\Utils\Localization\tools.ini
Projects\Win32\VC8\Utils\Localization\BuildMessages.mak
Projects\Win32\VC8\Utils\MsgCreator\MsgCreator.mak
Projects\Win32\VC8\Utils\XalanMsgLib\XalanMsgLib.mak
2) All places that have a VC7.1, change to VC8
3) tools.ini : comment [NMAKE] -> #[NMAKE]
4) BuildMessages.mak : insert the following line at the top : include
tools.ini
5) MsgCreator.mak: change the following line,
CPP_PROJ=/nologo /W4 /EHsc /wd4996 /Zc:wchar_t- /O2 /I ".\\" /I $
(XALANINCLUDE) $(XERCESINCLUDE) /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /
D "_MBCS" /Fp"$(INTDIR)\MsgCreator.pch" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\
\" /FD /c
to,
CPP_PROJ=/nologo /ML /W4 /GX /O2 /I ".\\" /I $(XALANINCLUDE) $
(XERCESINCLUDE) /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /Fp"$
(INTDIR)\MsgCreator.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
6) XalanMsgLib.mak: change the following line,
CPP_PROJ=/nologo /MD /W4 /GX /O2 $(XERCESINCLUDE) /I "..\..\..\..\..
\src" /I ".\$(BUILDRESDIR)\Nls\Include" /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XALANMSGLIB_EXPORTS" /D
"XALAN_XALANMSGLIB_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /
c
to,
CPP_PROJ=/nologo /MD /W4 /EHsc /O2 $(XERCESINCLUDE) /I "..\..\..\..\..
\src" /I ".\$(BUILDRESDIR)\Nls\Include" /D "WIN32" /D "NDEBUG" /D
"_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XALANMSGLIB_EXPORTS" /D
"XALAN_XALANMSGLIB_BUILD_DLL" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /
c
7) Ensure that the Release build is active
8) Right-mouse click on the Localization project -> Project Only - >
Build only Localization
11) Change the Tools -> Options -> Projects and Solutions -> VC++
Directories:
Include Files: C:\dev\xml-xalan\c\src
xxx Library files: C:\dev\xerces-c-src_2_7_0\Build\Win32\VC8\Release
12) Build AllInOne Project
That's it! Don't let the number of steps and the compiler switches
intimidate you. It's not so bad. I've been discovering the wonderful
world of server side / C++/ XSLT processing, ever since - and it's a
beautiful thing.
I hope this helps.