diff --git a/README b/README index ce0ce91..14d2696 100644 --- a/README +++ b/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: diff --git a/README.W32 b/README.W32 index 159c4ac..d7d884c 100644 --- a/README.W32 +++ b/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\ sub-directory, and then -running ONE of the following two commands: - - c:> buildall.cmd [debug|release] - c:> devenv .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 \win32\\.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 .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 --------------- diff --git a/flaim/README b/flaim/README index 536abc2..90e2a9a 100644 --- a/flaim/README +++ b/flaim/README @@ -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: diff --git a/flaim/README.W32 b/flaim/README.W32 index 159c4ac..52e992e 100644 --- a/flaim/README.W32 +++ b/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\ sub-directory, and then -running ONE of the following two commands: - - c:> buildall.cmd [debug|release] - c:> devenv .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! diff --git a/ftk/README b/ftk/README index 798e4a6..68cd5f1 100644 --- a/ftk/README +++ b/ftk/README @@ -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: diff --git a/ftk/README.W32 b/ftk/README.W32 index 159c4ac..b46a1be 100644 --- a/ftk/README.W32 +++ b/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\ 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 .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 --------------- diff --git a/sql/README b/sql/README index ac5ec78..5351b88 100644 --- a/sql/README +++ b/sql/README @@ -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: diff --git a/sql/README.W32 b/sql/README.W32 index 159c4ac..0cf7b05 100644 --- a/sql/README.W32 +++ b/sql/README.W32 @@ -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 diff --git a/xflaim/README b/xflaim/README index 5416e0f..c24a0db 100644 --- a/xflaim/README +++ b/xflaim/README @@ -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: