git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@436 0109f412-320b-0410-ab79-c3e0c5ffbbe6
88 lines
3.9 KiB
Plaintext
88 lines
3.9 KiB
Plaintext
Building on Windows
|
|
===================
|
|
Visual C++ 8.0 Express is good, but more to the point, it's free.
|
|
To build XFLAIM, you will need to download and install VC8 Express and the
|
|
latest Windows Platform SDK, as VC8 Express only comes with .NET libraries.
|
|
You can get VC8 Express here:
|
|
|
|
http://msdn.microsoft.com/vstudio/express/visualC/default.aspx
|
|
|
|
Click the Download link on the right, and CAREFULLY follow steps 1 through
|
|
4 on that page. The 4th step links to a page that indicates how to install
|
|
the Windows Platform SDK. It looks painful, but it's really rather simple.
|
|
|
|
Once VC8 Express and the Platform SDK have been installed and configured
|
|
to work correctly with each other (and after the obligatory set of reboots),
|
|
you can simply double click on the xflaim solution (xflaim.sln) file to bring
|
|
up the xflaim project in the VC8 IDE. Use the main or context menu options
|
|
to build the desired targets.
|
|
|
|
At some near future point, we hope to be able to build with autotools under
|
|
Cygwin. Of course, VC8 Express (or Professional) will still be required, but
|
|
at least the build process will be the same for all platforms.
|
|
|
|
XFLAIM Runtime Library Use
|
|
=========================
|
|
XFLAIM libraries - both static and dynamic - and the xflaim utilities
|
|
consume the dynamic (DLL) form of the VC8 runtime libraries. This is in
|
|
alignment with the use of runtime libraries on Unix platforms. It's more
|
|
efficient and flexible to use the DLL versions of these libraries, and
|
|
it allows Microsoft to update these libraries as necessary to fix security
|
|
holes and defects which may be found in the future.
|
|
|
|
With each new version of Windows and Microsoft tools, Microsoft
|
|
platforms become more security minded - and more secure. This is
|
|
generally done by copying features from Unix platforms into the Windows
|
|
operating system and into the tools themselves. Visual Studio 2005 is no
|
|
exception. The most significant security feature in VC8 (IMHO) is secure
|
|
package deployment and executable module manifests. This is nothing less
|
|
than the direct equivalent of RPATH's in Unix and Linux, and the usual
|
|
security features - and annoying issues - come along with it.
|
|
|
|
The VC8 runtime libraries include MSVCR80.DLL, MSVCP80.DLL and
|
|
MSVCM80.DLL, which represent the C standard library, the C++ standard
|
|
library, and the C math library, respectively. These libraries may no
|
|
longer be simply dropped into the same directory as your executable and
|
|
consumed. Executables and consumer DLL's need to be configured to build
|
|
with a manifest file (a default setting for new projects), and the runtime
|
|
libraries need to be "deployed". Deployment consists of running a
|
|
significant algorithm to determine platform requirements and features,
|
|
and making the right decisions to install these runtime libraries.
|
|
|
|
Developers (like you) will not have a problem executing your own
|
|
projects built against the XFLAIM libraries because you've installed VC8,
|
|
which consumes the VC8 runtime libraries, and so deploys it during its
|
|
install process. For more information, see this excellent article on
|
|
the CodeProjects website:
|
|
|
|
http://www.codeproject.com/cpp/vcredists_x86.asp
|
|
|
|
|
|
Legacy Makefile
|
|
===============
|
|
There is also a legacy makefile that has been hand written to target
|
|
xflaim for all of the platforms that xflaim currently supports. If you don't
|
|
want to use autotools, and you don't feel comfortable in the VC8 IDE, then
|
|
you may build for windows by simply running make from the root of the XFLAIM
|
|
project. This makefile accepts multiple auxilliary targets, which modify
|
|
the build in various ways. These auxilliary targets include:
|
|
|
|
debug
|
|
release
|
|
32bit
|
|
64bit
|
|
verbose
|
|
usegcc
|
|
flm_dbg_log
|
|
|
|
True build targets include:
|
|
|
|
libs (default) - xflaim libraries (static and dynamic)
|
|
checkdb - checkdb.exe
|
|
rebuild - rebuild.exe
|
|
view - view.exe
|
|
ut_basictest - basic unit tests
|
|
sample - sample.exe
|
|
|
|
Enjoy!
|