git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@1077 0109f412-320b-0410-ab79-c3e0c5ffbbe6
117 lines
4.5 KiB
Plaintext
117 lines
4.5 KiB
Plaintext
ftk project README for Windows
|
|
==============================
|
|
|
|
Contents:
|
|
--------
|
|
1. Tools for Building on Windows
|
|
2. FTK Runtime Library Use
|
|
3. GUI or Command-Line Build
|
|
4. Legacy Makefile
|
|
|
|
Tools for Building on Windows
|
|
-----------------------------
|
|
|
|
Visual C++ 2008 Express is good, but more to the point, it's free. To build
|
|
the FLAIM projects, you will need to download and install Visual C++ 2008
|
|
Express (which now thankfully comes with a reasonably late version of the
|
|
Windows Platform SDK).
|
|
|
|
You can get Visual C++ 2008 Express here:
|
|
|
|
http://www.microsoft.com/express/vc
|
|
|
|
The ">> Download Now!" link on that page, and decide whether you want to
|
|
install from the web (slow) or install off-line (also slow - there's no fast
|
|
solution, sorry).
|
|
|
|
Once Visual C++ 2008 Express has been installed you may simply double click
|
|
on the ftk\win32\ftk\ftk.sln solution file to bring up the ftk project in the
|
|
Visual C++ 2008 IDE. Use the main or context menu options to build the desired
|
|
targets.
|
|
|
|
FTK Runtime Library Use
|
|
-----------------------
|
|
|
|
The flaimtk libraries - both static and dynamic - and the ftktest program
|
|
consume the dynamic (DLL) form of the Visual C++ 2008 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 consequently more secure. This is generally
|
|
done by copying features from Unix platforms into the Windows operating system
|
|
and into the tools themselves. Visual Studio 2008 is no exception. The most
|
|
significant security feature in Visual C++ 2008 (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 Visual C++ 2008 runtime libraries include MSVCR90.DLL, MSVCP90.DLL and
|
|
MSVCM90.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 FLAIM libraries because you've installed VC++ 2008,
|
|
(actually VC9) which consumes the VC9 runtime libraries, and so deploys them
|
|
during its install process. For more information, see this excellent article
|
|
on the CodeProjects website:
|
|
|
|
http://www.codeproject.com/cpp/vcredists_x86.asp
|
|
|
|
GUI or Command-Line Build
|
|
-------------------------
|
|
|
|
The ftk project is a complete VC++ 2008 project in its own right, and may be
|
|
used to build the FLAIM toolkit by simply by changing into the ftk\win32\ftk
|
|
sub-directory and then running ONE of the following two commands:
|
|
|
|
c:> buildall.cmd [debug|release]
|
|
c:> devenv ftk.sln
|
|
|
|
The latter will bring up the Visual C++ 2008 IDE, so you can build in a "GUI"
|
|
fashion. The former will use devenv command line options to build from the
|
|
command line.
|
|
|
|
Legacy Makefile
|
|
---------------
|
|
|
|
There is also a legacy makefile (GNUMakefile) that has been hand written
|
|
to target flaim for all of the platforms that flaim currently supports. If you
|
|
don't want to use autotools, and you don't feel comfortable in the Visual C++
|
|
2008 IDE, then you may build for windows by simply running make from the root
|
|
of the FLAIM 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) - flaim libraries (static and dynamic)
|
|
checkdb - checkdb.exe
|
|
rebuild - rebuild.exe
|
|
view - view.exe
|
|
ut_basictest - basic unit tests
|
|
sample - sample.exe
|
|
|
|
CAVEAT: We're trying to phase out the legacy GNU makefile build system, so:
|
|
|
|
1) Don't expect it to last forever, and
|
|
2) Don't be surprised if it doesn't work all the time
|
|
|
|
Enjoy!
|
|
|