Added README.W32 files, removed INSTALL.W32 files, updated all Makefile.am's accordingly, added explanations for building from Win32 command line to all README.W32 files.
git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@1073 0109f412-320b-0410-ab79-c3e0c5ffbbe6
This commit is contained in:
111
sql/INSTALL
111
sql/INSTALL
@@ -1,19 +1,18 @@
|
||||
Installation Instructions
|
||||
*************************
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002 Free Software
|
||||
Foundation, Inc.
|
||||
|
||||
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
||||
2006, 2007 Free Software Foundation, Inc.
|
||||
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
This file is free documentation; the Free Software Foundation gives
|
||||
unlimited permission to copy, distribute and modify it.
|
||||
|
||||
Windows
|
||||
=======
|
||||
For Microsoft Windows building and installation information, please
|
||||
refer to README.W32.
|
||||
|
||||
Basic Installation
|
||||
==================
|
||||
|
||||
Briefly, the shell commands `./configure; make; make install' should
|
||||
configure, build, and install this package. The following
|
||||
more-detailed instructions are generic; see the `README' file for
|
||||
instructions specific to this package.
|
||||
These are generic installation instructions.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation. It uses
|
||||
@@ -26,9 +25,9 @@ debugging `configure').
|
||||
|
||||
It can also use an optional file (typically called `config.cache'
|
||||
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
||||
the results of its tests to speed up reconfiguring. Caching is
|
||||
the results of its tests to speed up reconfiguring. (Caching is
|
||||
disabled by default to prevent problems with accidental use of stale
|
||||
cache files.
|
||||
cache files.)
|
||||
|
||||
If you need to do unusual things to compile the package, please try
|
||||
to figure out how `configure' could check whether to do them, and mail
|
||||
@@ -38,17 +37,20 @@ some point `config.cache' contains results you don't want to keep, you
|
||||
may remove or edit it.
|
||||
|
||||
The file `configure.ac' (or `configure.in') is used to create
|
||||
`configure' by a program called `autoconf'. You need `configure.ac' if
|
||||
you want to change it or regenerate `configure' using a newer version
|
||||
of `autoconf'.
|
||||
`configure' by a program called `autoconf'. You only need
|
||||
`configure.ac' if you want to change it or regenerate `configure' using
|
||||
a newer version of `autoconf'.
|
||||
|
||||
The simplest way to compile this package is:
|
||||
|
||||
1. `cd' to the directory containing the package's source code and type
|
||||
`./configure' to configure the package for your system.
|
||||
`./configure' to configure the package for your system. If you're
|
||||
using `csh' on an old version of System V, you might need to type
|
||||
`sh ./configure' instead to prevent `csh' from trying to execute
|
||||
`configure' itself.
|
||||
|
||||
Running `configure' might take a while. While running, it prints
|
||||
some messages telling which features it is checking for.
|
||||
Running `configure' takes awhile. While running, it prints some
|
||||
messages telling which features it is checking for.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
@@ -67,55 +69,54 @@ The simplest way to compile this package is:
|
||||
all sorts of other programs in order to regenerate files that came
|
||||
with the distribution.
|
||||
|
||||
6. Often, you can also type `make uninstall' to remove the installed
|
||||
files again.
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
Some systems require unusual options for compilation or linking that the
|
||||
`configure' script does not know about. Run `./configure --help' for
|
||||
details on some of the pertinent environment variables.
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. Run `./configure --help'
|
||||
for details on some of the pertinent environment variables.
|
||||
|
||||
You can give `configure' initial values for configuration parameters
|
||||
by setting variables in the command line or in the environment. Here
|
||||
is an example:
|
||||
|
||||
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
||||
./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
|
||||
|
||||
*Note Defining Variables::, for more details.
|
||||
|
||||
Compiling For Multiple Architectures
|
||||
====================================
|
||||
|
||||
You can compile the package for more than one kind of computer at the
|
||||
You can compile the package for more than one kind of computer at the
|
||||
same time, by placing the object files for each architecture in their
|
||||
own directory. To do this, you can use GNU `make'. `cd' to the
|
||||
own directory. To do this, you must use a version of `make' that
|
||||
supports the `VPATH' variable, such as GNU `make'. `cd' to the
|
||||
directory where you want the object files and executables to go and run
|
||||
the `configure' script. `configure' automatically checks for the
|
||||
source code in the directory that `configure' is in and in `..'.
|
||||
|
||||
With a non-GNU `make', it is safer to compile the package for one
|
||||
architecture at a time in the source code directory. After you have
|
||||
installed the package for one architecture, use `make distclean' before
|
||||
reconfiguring for another architecture.
|
||||
If you have to use a `make' that does not support the `VPATH'
|
||||
variable, you have to compile the package for one architecture at a
|
||||
time in the source code directory. After you have installed the
|
||||
package for one architecture, use `make distclean' before reconfiguring
|
||||
for another architecture.
|
||||
|
||||
Installation Names
|
||||
==================
|
||||
|
||||
By default, `make install' installs the package's commands under
|
||||
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
||||
can specify an installation prefix other than `/usr/local' by giving
|
||||
`configure' the option `--prefix=PREFIX'.
|
||||
By default, `make install' will install the package's files in
|
||||
`/usr/local/bin', `/usr/local/man', etc. You can specify an
|
||||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for
|
||||
architecture-specific files and architecture-independent files. If you
|
||||
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
||||
PREFIX as the prefix for installing programs and libraries.
|
||||
Documentation and other data files still use the regular prefix.
|
||||
give `configure' the option `--exec-prefix=PATH', the package will use
|
||||
PATH as the prefix for installing programs and libraries.
|
||||
Documentation and other data files will still use the regular prefix.
|
||||
|
||||
In addition, if you use an unusual directory layout you can give
|
||||
options like `--bindir=DIR' to specify different values for particular
|
||||
options like `--bindir=PATH' to specify different values for particular
|
||||
kinds of files. Run `configure --help' for a list of the directories
|
||||
you can set and what kinds of files go in them.
|
||||
|
||||
@@ -126,7 +127,7 @@ option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
||||
Optional Features
|
||||
=================
|
||||
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
Some packages pay attention to `--enable-FEATURE' options to
|
||||
`configure', where FEATURE indicates an optional part of the package.
|
||||
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
||||
is something like `gnu-as' or `x' (for the X Window System). The
|
||||
@@ -141,11 +142,11 @@ you can use the `configure' options `--x-includes=DIR' and
|
||||
Specifying the System Type
|
||||
==========================
|
||||
|
||||
There may be some features `configure' cannot figure out automatically,
|
||||
but needs to determine by the type of machine the package will run on.
|
||||
Usually, assuming the package is built to be run on the _same_
|
||||
architectures, `configure' can figure that out, but if it prints a
|
||||
message saying it cannot guess the machine type, give it the
|
||||
There may be some features `configure' cannot figure out
|
||||
automatically, but needs to determine by the type of machine the package
|
||||
will run on. Usually, assuming the package is built to be run on the
|
||||
_same_ architectures, `configure' can figure that out, but if it prints
|
||||
a message saying it cannot guess the machine type, give it the
|
||||
`--build=TYPE' option. TYPE can either be a short name for the system
|
||||
type, such as `sun4', or a canonical name which has the form:
|
||||
|
||||
@@ -160,7 +161,7 @@ where SYSTEM can have one of these forms:
|
||||
need to know the machine type.
|
||||
|
||||
If you are _building_ compiler tools for cross-compiling, you should
|
||||
use the option `--target=TYPE' to select the type of system they will
|
||||
use the `--target=TYPE' option to select the type of system they will
|
||||
produce code for.
|
||||
|
||||
If you want to _use_ a cross compiler, that generates code for a
|
||||
@@ -171,9 +172,9 @@ eventually be run) with `--host=TYPE'.
|
||||
Sharing Defaults
|
||||
================
|
||||
|
||||
If you want to set default values for `configure' scripts to share, you
|
||||
can create a site shell script called `config.site' that gives default
|
||||
values for variables like `CC', `cache_file', and `prefix'.
|
||||
If you want to set default values for `configure' scripts to share,
|
||||
you can create a site shell script called `config.site' that gives
|
||||
default values for variables like `CC', `cache_file', and `prefix'.
|
||||
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
||||
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
||||
`CONFIG_SITE' environment variable to the location of the site script.
|
||||
@@ -182,7 +183,7 @@ A warning: not all `configure' scripts look for a site script.
|
||||
Defining Variables
|
||||
==================
|
||||
|
||||
Variables not defined in a site shell script can be set in the
|
||||
Variables not defined in a site shell script can be set in the
|
||||
environment passed to `configure'. However, some packages may run
|
||||
configure again during the build, and the customized values of these
|
||||
variables may be lost. In order to avoid this problem, you should set
|
||||
@@ -190,18 +191,14 @@ them in the `configure' command line, using `VAR=value'. For example:
|
||||
|
||||
./configure CC=/usr/local2/bin/gcc
|
||||
|
||||
causes the specified `gcc' to be used as the C compiler (unless it is
|
||||
will cause the specified gcc to be used as the C compiler (unless it is
|
||||
overridden in the site shell script).
|
||||
|
||||
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
||||
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
||||
|
||||
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
||||
|
||||
`configure' Invocation
|
||||
======================
|
||||
|
||||
`configure' recognizes the following options to control how it operates.
|
||||
`configure' recognizes the following options to control how it
|
||||
operates.
|
||||
|
||||
`--help'
|
||||
`-h'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
EXTRA_DIST = GNUMakefile INSTALL.W32 win32
|
||||
EXTRA_DIST = GNUMakefile README.W32 win32
|
||||
|
||||
SUBDIRS = $(subdirs) src obs
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
FLAIMSQL README file
|
||||
====================
|
||||
|
||||
NOTE: This README file covers platform-independant, and GNU/Linux and
|
||||
Unix specific information. For information on building and installing
|
||||
on Windows platforms, please see the README.W32 file.
|
||||
|
||||
Contents
|
||||
--------
|
||||
1. What is FLAIMSQL?
|
||||
|
||||
@@ -1,6 +1,17 @@
|
||||
Building on Windows
|
||||
===================
|
||||
Visual C++ 2008 Express is good, but more to the point, it's free.
|
||||
flaim-projects README.W32 file
|
||||
==============================
|
||||
|
||||
Contents:
|
||||
--------
|
||||
1. Tools for Building on Windows
|
||||
2. FLAIM 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).
|
||||
@@ -40,15 +51,16 @@ 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
|
||||
-------------------------
|
||||
|
||||
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
|
||||
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
|
||||
@@ -57,7 +69,7 @@ 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
|
||||
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
|
||||
@@ -67,7 +79,7 @@ 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
|
||||
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
|
||||
@@ -75,9 +87,59 @@ 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:
|
||||
|
||||
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:
|
||||
|
||||
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.
|
||||
|
||||
Legacy Makefile
|
||||
===============
|
||||
There is also a legacy makefile (GNUMakefile) that has been hand written
|
||||
---------------
|
||||
|
||||
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
|
||||
@@ -107,3 +169,4 @@ CAVEAT: We're trying to phase out the legacy GNU makefile build system, so:
|
||||
2) Don't be surprised if it doesn't work all the time
|
||||
|
||||
Enjoy!
|
||||
|
||||
Reference in New Issue
Block a user