Made README and README.W32 files more project specific.
git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@1077 0109f412-320b-0410-ab79-c3e0c5ffbbe6
This commit is contained in:
4
README
4
README
@@ -46,6 +46,10 @@ Both of these techniques work with all three of the higher level projects.
|
||||
Autotools Build
|
||||
---------------
|
||||
|
||||
IMPORTANT: You must have installed Autoconf version 2.62, Automake version
|
||||
1.10 and Libtool version 2.2. These are the latest versions of these three
|
||||
tools, as of this writing (July 2, 2008).
|
||||
|
||||
To build the flaim-projects from a Subversion working copy, just create
|
||||
a clean working copy from the Subversion repository at:
|
||||
|
||||
|
||||
70
README.W32
70
README.W32
@@ -32,16 +32,12 @@ to build the desired targets.
|
||||
The flaim project solution files are located in the win32 directories
|
||||
in the following locations:
|
||||
|
||||
flaim-projects
|
||||
flaim
|
||||
win32 - flaim.sln
|
||||
ftk
|
||||
win32 - flaimtk.sln
|
||||
sql
|
||||
win32 - flaimsql.sln
|
||||
xflaim
|
||||
win32 - xflaim.sln
|
||||
win32 - flaim-projects.sln
|
||||
trunk\flaim
|
||||
flaim\win32\flaim - flaim.sln
|
||||
ftk\win32\ftk - flaimtk.sln
|
||||
sql\win32\sql - flaimsql.sln
|
||||
xflaim\win32\xflaim - xflaim.sln
|
||||
win32\flaim-projects - flaim-projects.sln
|
||||
|
||||
The projects may be build individually from each of the lower-level
|
||||
solution files, or all at once from the flaim-projects solution file.
|
||||
@@ -90,51 +86,45 @@ the CodeProjects website:
|
||||
GUI or Command-Line Build
|
||||
-------------------------
|
||||
|
||||
The flaim-projects repository is divided into four sub-projects, named
|
||||
for the sub-directories in which they reside:
|
||||
The flaim SVN repository is divided into four sub-projects, named for the
|
||||
sub-directories in which they reside:
|
||||
|
||||
* flaim
|
||||
* ftk
|
||||
* sql
|
||||
* xflaim
|
||||
|
||||
Each of these sub-projects is a complete project in its own right. The only
|
||||
inter-project dependencies among them are that the flaim, sql and xflaim
|
||||
projects depend on the FLAIM Tool Kit library (flaimtk) and header file
|
||||
(flaimtk.h) provided by the ftk project.
|
||||
Each of these sub-projects is a complete project in its own right. However,
|
||||
the flaim, sql and xflaim projects each depend on the flaimtk libraries built
|
||||
by the ftk project, and on the flaimtk.h header file.
|
||||
|
||||
When these four projects are built from the flaim\trunk\win32\flaim-projects
|
||||
directory, using the flaim-projects.sln solution file or the buildall.cmd
|
||||
file in that directory, the dependencies are managed for you by the umbrella
|
||||
solution.
|
||||
When one of these higher-level projects is is built from the
|
||||
flaim\win32\flaim-projects directory, using the flaim-projects.sln solution
|
||||
file or the buildall.cmd file in that directory, the dependencies are managed
|
||||
for you by this umbrella solution.
|
||||
|
||||
However, each of the four sub-projects may also be built as separate projects,
|
||||
simply by changing into the desired win32\<project> sub-directory, and then
|
||||
running ONE of the following two commands:
|
||||
|
||||
c:> buildall.cmd [debug|release]
|
||||
c:> devenv <project-name>.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 commnand line.
|
||||
|
||||
When you build a sub-project by itself in this manner, you need to provide
|
||||
the location of the flaimtk library by setting a few environment variables:
|
||||
However, when you build one of these three higher-level database projects by
|
||||
themselves, using the <project>\win32\<project>\<project>.sln solution file,
|
||||
then you need to provide the location of the flaimtk libraries and the
|
||||
flaimtk.h header file by setting a few environment variables in the
|
||||
environment from which you launch the VC++ 2008 IDE, via the "devenv" command,
|
||||
as in the following command sequence:
|
||||
|
||||
c:> set FTKINC=c:\full\path\to\ftk\src\directory
|
||||
c:> set FTKLIB_STATIC_DEBUG=c:\full\path\to\debug\flaimtk_static.lib
|
||||
c:> set FTKLIB_STATIC_RELEASE=c:\full\path\to\release\flaimtk_static.lib
|
||||
c:> set FTKLIB_DEBUG=c:\full\path\to\debug\flaimtk.lib
|
||||
c:> set FTKLIB_RELEASE=c:\full\path\to\release\flaimtk.lib
|
||||
c:> devenv <project>.sln
|
||||
|
||||
This technique works with all three of the higher level projects.
|
||||
(or)
|
||||
|
||||
CAVEAT: Currently, the include directory location for flaimtk.h is hard-coded
|
||||
into the three higher-level projects, so the ftk project must be located in
|
||||
the relative path specified above -- that is, ftk must be co-located in the
|
||||
same parent directory as the flaim, sql and xflaim directories. This will be
|
||||
fixed soon to work with environment variables in the same manner as the
|
||||
library paths.
|
||||
c:> buildall.cmd [debug|release]
|
||||
|
||||
NOTE: You may also use relative paths in these variables, but this is tricky,
|
||||
because each project is built from the directory containing the solution
|
||||
(.sln) file, so you'll have to calculate these paths relative to the
|
||||
flaim/win32/flaim directory, as that's where the flaim.sln file is located.
|
||||
|
||||
Legacy Makefile
|
||||
---------------
|
||||
|
||||
@@ -47,6 +47,10 @@ called "ut_basictest", which is built and executed during "make check".
|
||||
Building FLAIM
|
||||
--------------
|
||||
|
||||
IMPORTANT: You must have installed Autoconf version 2.62, Automake version
|
||||
1.10 and Libtool version 2.2. These are the latest versions of these three
|
||||
tools, as of this writing (July 2, 2008).
|
||||
|
||||
Building FLAIM on Unix and Linux systems is as simple as with any other
|
||||
Autotools-based project. If you're building from an SVN working directory,
|
||||
enter the following command first, immediately after a clean check-out:
|
||||
|
||||
202
flaim/README.W32
202
flaim/README.W32
@@ -1,5 +1,5 @@
|
||||
flaim-projects README.W32 file
|
||||
==============================
|
||||
flaim project README for Windows
|
||||
================================
|
||||
|
||||
Contents:
|
||||
--------
|
||||
@@ -7,144 +7,124 @@ Contents:
|
||||
2. FLAIM Runtime Library Use
|
||||
3. GUI or Command-Line Build
|
||||
4. Legacy Makefile
|
||||
5. A Word About the Utilities
|
||||
|
||||
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).
|
||||
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).
|
||||
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 any of the flaim project solution files to bring up the flaim
|
||||
project in the Visual C++ 2008 IDE. Use the main or context menu options
|
||||
to build the desired targets.
|
||||
|
||||
The flaim project solution files are located in the win32 directories
|
||||
in the following locations:
|
||||
|
||||
flaim-projects
|
||||
flaim
|
||||
win32 - flaim.sln
|
||||
ftk
|
||||
win32 - flaimtk.sln
|
||||
sql
|
||||
win32 - flaimsql.sln
|
||||
xflaim
|
||||
win32 - xflaim.sln
|
||||
win32 - flaim-projects.sln
|
||||
|
||||
The projects may be build individually from each of the lower-level
|
||||
solution files, or all at once from the flaim-projects solution file.
|
||||
|
||||
WARNING: The flaim-projects solution file refers to the same project
|
||||
files as the individual lower-level solution files, so if you make
|
||||
changes in one of these, they'll be reflected in the other.
|
||||
Once Visual C++ 2008 Express has been installed you may simply double click
|
||||
on the flaim\win32\flaim\flaim.sln solution file to bring up the flaim project
|
||||
in the Visual C++ 2008 IDE. Use the main or context menu options to build the
|
||||
desired targets.
|
||||
|
||||
FLAIM Runtime Library Use
|
||||
-------------------------
|
||||
|
||||
FLAIM libraries - both static and dynamic - and the flaim utilities
|
||||
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.
|
||||
The flaim libraries - both static and dynamic - and the flaim utility programs
|
||||
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 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.
|
||||
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.
|
||||
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 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:
|
||||
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 flaim-projects repository is divided into four sub-projects, named
|
||||
for the sub-directories in which they reside:
|
||||
The flaim project is a complete VC++ 2008 project in its own right, and may be
|
||||
used to build the flaim libraries and utilities by simply by changing into the
|
||||
flaim\win32\flaim sub-directory and then running ONE of the following two
|
||||
commands:
|
||||
|
||||
c:> buildall.cmd [debug|release]
|
||||
c:> devenv flaim.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.
|
||||
|
||||
The flaim SVN repository is divided into four sub-projects, named for the
|
||||
sub-directories in which they reside:
|
||||
|
||||
* flaim
|
||||
* ftk
|
||||
* sql
|
||||
* xflaim
|
||||
|
||||
Each of these sub-projects is a complete project in its own right. The only
|
||||
inter-project dependencies among them are that the flaim, sql and xflaim
|
||||
projects depend on the FLAIM Tool Kit library (flaimtk) and header file
|
||||
(flaimtk.h) provided by the ftk project.
|
||||
Each of these sub-projects is a complete project in its own right. However,
|
||||
the flaim, sql and xflaim projects each depend on the flaimtk libraries built
|
||||
by the ftk project, and on the flaimtk.h header file.
|
||||
|
||||
When these four projects are built from the flaim\trunk\win32\flaim-projects
|
||||
When the flaim project is is built from the flaim\trunk\win32\flaim-projects
|
||||
directory, using the flaim-projects.sln solution file or the buildall.cmd
|
||||
file in that directory, the dependencies are managed for you by the umbrella
|
||||
file in that directory, the dependencies are managed for you by this umbrella
|
||||
solution.
|
||||
|
||||
However, each of the four sub-projects may also be built as separate projects,
|
||||
simply by changing into the desired win32\<project> sub-directory, and then
|
||||
running ONE of the following two commands:
|
||||
|
||||
c:> buildall.cmd [debug|release]
|
||||
c:> devenv <project-name>.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 commnand line.
|
||||
|
||||
When you build a sub-project by itself in this manner, you need to provide
|
||||
the location of the flaimtk library by setting a few environment variables:
|
||||
When you build the flaim sub-project by itself in this manner, you need to
|
||||
provide the location of the flaimtk library by setting a few environment
|
||||
variables in the environment from which you launch the VC++ 2008 IDE, via
|
||||
the "devenv" command, as in the following command sequence:
|
||||
|
||||
c:> set FTKINC=c:\full\path\to\ftk\src\directory
|
||||
c:> set FTKLIB_STATIC_DEBUG=c:\full\path\to\debug\flaimtk_static.lib
|
||||
c:> set FTKLIB_STATIC_RELEASE=c:\full\path\to\release\flaimtk_static.lib
|
||||
c:> set FTKLIB_DEBUG=c:\full\path\to\debug\flaimtk.lib
|
||||
c:> set FTKLIB_RELEASE=c:\full\path\to\release\flaimtk.lib
|
||||
c:> devenv
|
||||
|
||||
This technique works with all three of the higher level projects.
|
||||
|
||||
CAVEAT: Currently, the include directory location for flaimtk.h is hard-coded
|
||||
into the three higher-level projects, so the ftk project must be located in
|
||||
the relative path specified above -- that is, ftk must be co-located in the
|
||||
same parent directory as the flaim, sql and xflaim directories. This will be
|
||||
fixed soon to work with environment variables in the same manner as the
|
||||
library paths.
|
||||
NOTE: You may also use relative paths in these variables, but this is tricky,
|
||||
because each project is built from the directory containing the solution
|
||||
(.sln) file, so you'll have to calculate these paths relative to the
|
||||
flaim/win32/flaim directory, as that's where the flaim.sln file is located.
|
||||
|
||||
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:
|
||||
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
|
||||
@@ -165,8 +145,34 @@ True build targets include:
|
||||
|
||||
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
|
||||
a) Don't expect it to last forever, and
|
||||
b) Don't be surprised if it doesn't work all the time
|
||||
|
||||
A Word About the Utilities
|
||||
--------------------------
|
||||
|
||||
The flaim console utility programs include the following:
|
||||
|
||||
* flmcheckdb.exe,
|
||||
* flmrebuild.exe,
|
||||
* flmview.exe,
|
||||
* flmdbshell.exe and
|
||||
* flmgigatest.exe
|
||||
|
||||
Additionally, there is a single unit test (which may also be executed from
|
||||
the Windows command prompt) in the flaim project called:
|
||||
|
||||
* ut_basictest
|
||||
|
||||
These utilities and tests are currently statically linked to the flaim and
|
||||
flaimtk libraries, because they access internal functionality that is not
|
||||
part of the public interfaces of either of these libraries.
|
||||
|
||||
They do well what they were designed to do, and from that angle, they are
|
||||
very useful utilities. But they are NOT good examples of FLAIM database
|
||||
applications. The reason they access internal functionality is because they
|
||||
need to be able to analyze and display information about flaim databases that
|
||||
is not generally useful from the perspective of a normal database application.
|
||||
|
||||
Enjoy!
|
||||
|
||||
|
||||
@@ -30,6 +30,10 @@ directory. The test utility is currently only built when you enter
|
||||
Building the FLAIM Tool Kit
|
||||
---------------------------
|
||||
|
||||
IMPORTANT: You must have installed Autoconf version 2.62, Automake version
|
||||
1.10 and Libtool version 2.2. These are the latest versions of these three
|
||||
tools, as of this writing (July 2, 2008).
|
||||
|
||||
Building FTK on Unix and Linux systems is as simple as with any other
|
||||
Autotools-based project. If you're building from an SVN working directory,
|
||||
enter the following command first, immediately after a clean check-out:
|
||||
|
||||
154
ftk/README.W32
154
ftk/README.W32
@@ -1,140 +1,84 @@
|
||||
flaim-projects README.W32 file
|
||||
ftk project README for Windows
|
||||
==============================
|
||||
|
||||
Contents:
|
||||
--------
|
||||
1. Tools for Building on Windows
|
||||
2. FLAIM Runtime Library Use
|
||||
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).
|
||||
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).
|
||||
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 any of the flaim project solution files to bring up the flaim
|
||||
project in the Visual C++ 2008 IDE. Use the main or context menu options
|
||||
to build the desired targets.
|
||||
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.
|
||||
|
||||
The flaim project solution files are located in the win32 directories
|
||||
in the following locations:
|
||||
FTK Runtime Library Use
|
||||
-----------------------
|
||||
|
||||
flaim-projects
|
||||
flaim
|
||||
win32 - flaim.sln
|
||||
ftk
|
||||
win32 - flaimtk.sln
|
||||
sql
|
||||
win32 - flaimsql.sln
|
||||
xflaim
|
||||
win32 - xflaim.sln
|
||||
win32 - flaim-projects.sln
|
||||
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.
|
||||
|
||||
The projects may be build individually from each of the lower-level
|
||||
solution files, or all at once from the flaim-projects solution file.
|
||||
|
||||
WARNING: The flaim-projects solution file refers to the same project
|
||||
files as the individual lower-level solution files, so if you make
|
||||
changes in one of these, they'll be reflected in the other.
|
||||
|
||||
FLAIM Runtime Library Use
|
||||
-------------------------
|
||||
|
||||
FLAIM libraries - both static and dynamic - and the flaim utilities
|
||||
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 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.
|
||||
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.
|
||||
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 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:
|
||||
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 flaim-projects repository is divided into four sub-projects, named
|
||||
for the sub-directories in which they reside:
|
||||
|
||||
* flaim
|
||||
* ftk
|
||||
* sql
|
||||
* xflaim
|
||||
|
||||
Each of these sub-projects is a complete project in its own right. The only
|
||||
inter-project dependencies among them are that the flaim, sql and xflaim
|
||||
projects depend on the FLAIM Tool Kit library (flaimtk) and header file
|
||||
(flaimtk.h) provided by the ftk project.
|
||||
|
||||
When these four projects are built from the flaim\trunk\win32\flaim-projects
|
||||
directory, using the flaim-projects.sln solution file or the buildall.cmd
|
||||
file in that directory, the dependencies are managed for you by the umbrella
|
||||
solution.
|
||||
|
||||
However, each of the four sub-projects may also be built as separate projects,
|
||||
simply by changing into the desired win32\<project> sub-directory, and then
|
||||
running ONE of the following two commands:
|
||||
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 <project-name>.sln
|
||||
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 commnand line.
|
||||
|
||||
When you build a sub-project by itself in this manner, you need to provide
|
||||
the location of the flaimtk library by setting a few environment variables:
|
||||
|
||||
c:> set FTKLIB_STATIC_DEBUG=c:\full\path\to\debug\flaimtk_static.lib
|
||||
c:> set FTKLIB_STATIC_RELEASE=c:\full\path\to\release\flaimtk_static.lib
|
||||
c:> set FTKLIB_DEBUG=c:\full\path\to\debug\flaimtk.lib
|
||||
c:> set FTKLIB_RELEASE=c:\full\path\to\release\flaimtk.lib
|
||||
|
||||
This technique works with all three of the higher level projects.
|
||||
|
||||
CAVEAT: Currently, the include directory location for flaimtk.h is hard-coded
|
||||
into the three higher-level projects, so the ftk project must be located in
|
||||
the relative path specified above -- that is, ftk must be co-located in the
|
||||
same parent directory as the flaim, sql and xflaim directories. This will be
|
||||
fixed soon to work with environment variables in the same manner as the
|
||||
library paths.
|
||||
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
|
||||
---------------
|
||||
|
||||
@@ -30,6 +30,10 @@ the "src" directory.
|
||||
Building FLAIMSQL
|
||||
-----------------
|
||||
|
||||
IMPORTANT: You must have installed Autoconf version 2.62, Automake version
|
||||
1.10 and Libtool version 2.2. These are the latest versions of these three
|
||||
tools, as of this writing (July 2, 2008).
|
||||
|
||||
Building FLAIMSQL on Unix and Linux systems is as simple as with any other
|
||||
Autotools-based project. If you're building from an SVN working directory,
|
||||
enter the following command first, immediately after a clean check-out:
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
flaim-projects README.W32 file
|
||||
==============================
|
||||
flaimsql README file for Windows
|
||||
================================
|
||||
|
||||
Contents:
|
||||
--------
|
||||
1. Tools for Building on Windows
|
||||
2. FLAIM Runtime Library Use
|
||||
2. FLAIMSQL Runtime Library Use
|
||||
3. GUI or Command-Line Build
|
||||
4. Legacy Makefile
|
||||
|
||||
|
||||
@@ -40,6 +40,10 @@ command line on your host system.
|
||||
Building XFLAIM
|
||||
---------------
|
||||
|
||||
IMPORTANT: You must have installed Autoconf version 2.62, Automake version
|
||||
1.10 and Libtool version 2.2. These are the latest versions of these three
|
||||
tools, as of this writing (July 2, 2008).
|
||||
|
||||
Building XFLAIM on Unix and Linux systems is as simple as with any other
|
||||
Autotools-based project. If you're building from an SVN working directory,
|
||||
enter the following command first, immediately after a clean check-out:
|
||||
|
||||
Reference in New Issue
Block a user