Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > b12db5622413300f28189571403ac3d5 > files > 57

freetds-0.91-1.fc14.x86_64.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML
><HEAD
><TITLE
>How to build: Configure and make</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="FreeTDS User Guide"
HREF="index.htm"><LINK
REL="UP"
TITLE="Build FreeTDS"
HREF="build.htm"><LINK
REL="PREVIOUS"
TITLE="What to build: Packages, Tarballs, and the CVS repository"
HREF="packages.htm"><LINK
REL="NEXT"
TITLE="OS-specific Issues"
HREF="osissues.htm"><LINK
REL="STYLESHEET"
TYPE="text/css"
HREF="userguide.css"><META
HTTP-EQUIV="Content-Type"
CONTENT="text/html; charset=utf-8"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
><SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> User Guide: A Guide to Installing, Configuring, and Running <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
></TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="packages.htm"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 2. Build <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="osissues.htm"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CONFIG"
>How to build: Configure and make</A
></H1
><P
>If you've built other <ACRONYM
CLASS="ACRONYM"
>GNU</ACRONYM
> projects, building <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> is a fairly straightforward process. We have a terse and verbose description.</P
><DIV
CLASS="NOTE"
><P
></P
><TABLE
CLASS="NOTE"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/note.gif"
HSPACE="5"
ALT="Note"></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
><SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
>  is known to build with <ACRONYM
CLASS="ACRONYM"
>GNU</ACRONYM
> and <ACRONYM
CLASS="ACRONYM"
>BSD</ACRONYM
> <SPAN
CLASS="APPLICATION"
>make</SPAN
>.  If you encounter a large number of build errors, and your operating system's <SPAN
CLASS="APPLICATION"
>make</SPAN
> is not <ACRONYM
CLASS="ACRONYM"
>GNU</ACRONYM
> <SPAN
CLASS="APPLICATION"
>make</SPAN
> (as is the case on most non-<ACRONYM
CLASS="ACRONYM"
>GNU</ACRONYM
>/Linux systems), you may wish to install <ACRONYM
CLASS="ACRONYM"
>GNU</ACRONYM
> <SPAN
CLASS="APPLICATION"
>make</SPAN
> from <A
HREF="ftp://ftp.gnu.org/gnu/make/"
TARGET="_top"
>ftp.gnu.org</A
>.</P
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="EXPERTS"
>For Experts</A
></H2
><PRE
CLASS="SCREEN"
>	<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>./configure --prefix=/usr/local</KBD
>
	<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make</KBD
>
	<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>su root</KBD
>
	<SAMP
CLASS="PROMPT"
>Password: </SAMP
>
	<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>make install</KBD
></PRE
><P
>Building from CVS is described in the file <TT
CLASS="FILENAME"
>INSTALL.CVS</TT
>.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="EVERYONE"
>For Everyone Else</A
></H2
><P
>The <ACRONYM
CLASS="ACRONYM"
>GNU</ACRONYM
> development system can generate code for a wide variety of hardware architectures and operating systems, virtually all of which can run <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> in consequence.  The work of building and installing the <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> libraries begins with the command <B
CLASS="COMMAND"
>configure</B
>, which generates the <TT
CLASS="FILENAME"
>Makefile</TT
> that governs how the code is compiled, linked, and installed.  Once you've <SPAN
CLASS="QUOTE"
>"configured"</SPAN
> the project, <B
CLASS="COMMAND"
>make</B
> will manage the rest of the build.</P
><TABLE
CLASS="SIDEBAR"
BORDER="1"
CELLPADDING="5"
><TR
><TD
><DIV
CLASS="SIDEBAR"
><A
NAME="AEN435"
></A
><P
><B
>ODBC Preparation</B
></P
><P
>If you intend to build the <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> ODBC driver &mdash; and want to use a Driver Manager (DM), as most people do &mdash; install the Driver Manager before configuring <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
>.  <B
CLASS="COMMAND"
>configure</B
> will detect the the DM and use its header (<TT
CLASS="FILENAME"
>.h</TT
>) files for ODBC constants and such.  If your DM is installed in an unusual directory, you may have to provide the directory name as a parameter to <B
CLASS="COMMAND"
>configure</B
>.</P
><P
><SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> doesn't <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>require</I
></SPAN
> a DM.  You can build the ODBC driver without one, as long as you have the requisite header files: <TT
CLASS="FILENAME"
>sql.h</TT
>, <TT
CLASS="FILENAME"
>sqlext.h</TT
> and <TT
CLASS="FILENAME"
>sqltypes.h</TT
>.  These can be taken from either the iODBC or UnixODBC distributions. Put them wherever you like (e.g.,  <TT
CLASS="FILENAME"
>/usr/local/include</TT
>).  Because <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> won't detect your (missing) DM, it won't automatically build the ODBC driver, so you'll have to tell <B
CLASS="COMMAND"
>configure</B
> what to do and where to look.  Cf. <A
HREF="config.htm#WITHODBCNODM"
><CODE
CLASS="OPTION"
>--with-odbc-nodm</CODE
></A
>.</P
></DIV
></TD
></TR
></TABLE
><P
>The simplest form of running <B
CLASS="COMMAND"
>configure</B
> is:
<PRE
CLASS="SCREEN"
>	<SAMP
CLASS="PROMPT"
>$ </SAMP
><KBD
CLASS="USERINPUT"
>./configure</KBD
></PRE
>
	and sometimes that's enough.  <B
CLASS="COMMAND"
>configure</B
> accepts command-line arguments, too, and you may need to provide some, depending on your environment.</P
><P
>There are a few optional arguments to <B
CLASS="COMMAND"
>configure</B
> that may be important to you.  For a complete list, see <B
CLASS="COMMAND"
>configure --help</B
>.</P
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="CONFIGURE.OPTIONS"
><B
CLASS="COMMAND"
>configure</B
> options</A
></H3
><P
></P
><DIV
CLASS="VARIABLELIST"
><P
><B
>Directories and TDS version</B
></P
><DL
><DT
><CODE
CLASS="OPTION"
>--prefix=<TT
CLASS="REPLACEABLE"
><I
>PREFIX</I
></TT
>
							</CODE
></DT
><DD
><P
>         install architecture-independent files in <CODE
CLASS="PARAMETER"
>PREFIX</CODE
>.  When you run <B
CLASS="COMMAND"
>make install</B
>, libraries will be placed in <CODE
CLASS="PARAMETER"
>PREFIX</CODE
><TT
CLASS="FILENAME"
>/lib</TT
>, executables in <CODE
CLASS="PARAMETER"
>PREFIX</CODE
><TT
CLASS="FILENAME"
>/bin</TT
>, and so on.</P
><P
>The default is <TT
CLASS="FILENAME"
>/usr/local</TT
> if this argument is not passed to <B
CLASS="COMMAND"
>configure</B
>.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--sysconfdir=<TT
CLASS="REPLACEABLE"
><I
>DIR</I
></TT
>
							</CODE
></DT
><DD
><P
> read-only single-machine data in <CODE
CLASS="PARAMETER"
>DIR</CODE
></P
><P
>The default is <TT
CLASS="REPLACEABLE"
><I
>PREFIX/etc</I
></TT
> (<CODE
CLASS="PARAMETER"
>PREFIX</CODE
> being the value of <CODE
CLASS="OPTION"
>--prefix=<TT
CLASS="REPLACEABLE"
><I
>PREFIX</I
></TT
></CODE
>, above) if this argument is not passed to <B
CLASS="COMMAND"
>configure</B
>.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--with-libiconv-prefix=<TT
CLASS="REPLACEABLE"
><I
>DIR</I
></TT
>
							</CODE
></DT
><DD
><P
>Specifies the location of the iconv library to use.  <B
CLASS="COMMAND"
>configure</B
> will search for libiconv in the usual places; use <CODE
CLASS="OPTION"
>--with-libiconv-prefix</CODE
>  if it's unsuccessful (assuming you want to use iconv, of course).  Overridden by <CODE
CLASS="OPTION"
>--disable-libiconv</CODE
>, below.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--with-tdsver=<TT
CLASS="REPLACEABLE"
><I
>VER</I
></TT
>
							</CODE
></DT
><DD
><P
>Specifies the default <ACRONYM
CLASS="ACRONYM"
>TDS</ACRONYM
> version.  (There are a couple of ways to set the <ACRONYM
CLASS="ACRONYM"
>TDS</ACRONYM
> version at run-time.  This parameter takes effect if no run-time settings are provided.) Acceptable values of <CODE
CLASS="PARAMETER"
>VER</CODE
> are <TT
CLASS="LITERAL"
>4.2</TT
>, <TT
CLASS="LITERAL"
>4.6</TT
>, <TT
CLASS="LITERAL"
>5.0</TT
>, <TT
CLASS="LITERAL"
>7.0</TT
>, <TT
CLASS="LITERAL"
>7.1</TT
> and <TT
CLASS="LITERAL"
>7.2</TT
>.</P
><P
>The default is <TT
CLASS="LITERAL"
>5.0</TT
> if this argument is not passed to <B
CLASS="COMMAND"
>configure</B
>.</P
></DD
></DL
></DIV
><P
></P
><DIV
CLASS="VARIABLELIST"
><P
><B
>ODBC Driver Managers</B
></P
><DL
><DT
><CODE
CLASS="OPTION"
>--with-iodbc=<TT
CLASS="REPLACEABLE"
><I
>DIR</I
></TT
>
							</CODE
>, <CODE
CLASS="OPTION"
>--with-unixodbc=<TT
CLASS="REPLACEABLE"
><I
>DIR</I
></TT
>
							</CODE
></DT
><DD
><P
>Specify directory of <SPAN
CLASS="SYSTEMITEM"
>iODBC</SPAN
> or <SPAN
CLASS="SYSTEMITEM"
>unixODBC</SPAN
> support, and use it as the Driver Manager.
								As of version 0.62, the ODBC Driver Manager is detected by <B
CLASS="COMMAND"
>configure</B
>, so use this parameter only if yours is installed in a nonstandard path.
								(Requires <SPAN
CLASS="PRODUCTNAME"
>iODBC</SPAN
> or <SPAN
CLASS="SYSTEMITEM"
>unixODBC</SPAN
> to have already been installed.)</P
></DD
><DT
><A
NAME="WITHODBCNODM"
></A
><CODE
CLASS="OPTION"
>--with-odbc-nodm=<TT
CLASS="REPLACEABLE"
><I
>DIR</I
></TT
>
								</CODE
></DT
><DD
><P
>If you're building the ODBC driver and not using a Driver Manager, use this option to indicate the location of the <TT
CLASS="FILENAME"
>.h</TT
> files.  <B
CLASS="COMMAND"
>configure</B
> will not cause the ODBC driver to be built unless this option is used or a DM is detected/specified.</P
></DD
></DL
></DIV
><P
></P
><DIV
CLASS="VARIABLELIST"
><P
><B
>Things you can turn off</B
></P
><DL
><DT
><CODE
CLASS="OPTION"
>--disable-odbc
							</CODE
></DT
><DD
><P
>Do not attempt to detect ODBC, and do not build the ODBC driver. In case you don't care about ODBC.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--disable-apps
							</CODE
></DT
><DD
><P
>Do not attempt to build applications like tsql.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--disable-server
							</CODE
></DT
><DD
><P
>Do not attempt to build server stuff.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--disable-pool
							</CODE
></DT
><DD
><P
>Do not attempt to build pool stuff.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--disable-libiconv</CODE
></DT
><DD
><P
>By default, <B
CLASS="COMMAND"
>configure</B
> will search your system for an <SPAN
CLASS="SYSTEMITEM"
>iconv</SPAN
> library for use with Microsoft servers (because TDS 7.0 employs Unicode).  This switch prevents that search.  If no <SPAN
CLASS="SYSTEMITEM"
>iconv</SPAN
> library is used, <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> relies on its built-in iconv emulation, which is capable of converting ISO-8859-1 to UCS-2, sufficient for many applications.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--disable-threadsafe</CODE
></DT
><DD
><P
>Force <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> not to use threadsafe versions of functions such as <CODE
CLASS="FUNCTION"
>gethostbyname_r()</CODE
> where available.  Rely instead on the older and non-threadsafe ones such as <CODE
CLASS="FUNCTION"
>gethostbyname()</CODE
>. <B
CLASS="COMMAND"
>configure</B
> tests some of these functions.  If the tests are successful, <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> will use threadsafe functions throughout.</P
><P
>Threadsafe operation has been tested on Linux, FreeBSD, and HP-UX.  It should work on Solaris, Tru64, and (reportedly) IRIX.  Not expected to work on non-unixy systems.  It is a good idea to enable threadsafe operation if you configure Apache with multi-threading support.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--disable-debug</CODE
></DT
><DD
><P
>Debug-mode compiles are enabled by default, and will remain so at least until version 1.0.  You can speed things up ever so slightly by disabling it.</P
></DD
></DL
></DIV
><P
></P
><DIV
CLASS="VARIABLELIST"
><P
><B
>Things you can turn on</B
></P
><DL
><DT
><CODE
CLASS="OPTION"
>--enable-msdblib</CODE
></DT
><DD
><P
>Enable Microsoft behavior in the <SPAN
CLASS="SYSTEMITEM"
>DB-Library</SPAN
> <ACRONYM
CLASS="ACRONYM"
>API</ACRONYM
> where it diverges from Sybase's.  Use this option if you are replacing Microsoft's libraries with <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
></P
><P
>This option specifies default behavior. Programs can change the default at compile time by defining MSDBLIB or SYBDBLIB (for Microsoft or Sybase behavior, respectively).</P
></DD
><DT
><CODE
CLASS="OPTION"
>--enable-sybase-compat</CODE
></DT
><DD
><P
>Enable close compatibility with Sybase's ABI, at the expense of other features.  Currently, this enables the generation of a dbopen() entry point in <SPAN
CLASS="SYSTEMITEM"
>DB-Library</SPAN
>, which may clash with the <SPAN
CLASS="SYSTEMITEM"
>DBM</SPAN
> function with the same name.  Absolutely <SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>not required</I
></SPAN
> for use with other free software.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--enable-krb5</CODE
></DT
><DD
><P
>Enable Kerberos support. With Kerberos you can connect to server using your stored Kerberos ticket.  Obviously requires Kerberos be configured on the machine.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--enable-sspi</CODE
></DT
><DD
><P
>Enable SSPI support. SSPI is a Micrsoft library that allows you to use your current logged-in account for authentication.  With this option enabled, FreeTDS supports "trusted logins" for Win32/64, just as Microsoft's own implementations do.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--enable-extra-checks</CODE
></DT
><DD
><P
>Intended for debugging purposes, enables certain internal consistency checks against problems like memory corruption and buffer exhaustion.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--enable-developing</CODE
></DT
><DD
><P
>Enable some code still in development. Should be used only by a developer or a brave user :)</P
></DD
></DL
></DIV
><P
></P
><DIV
CLASS="VARIABLELIST"
><P
><B
>SSL support</B
></P
><DL
><DT
><CODE
CLASS="OPTION"
>--with-gnutls</CODE
></DT
><DD
><P
>Enable SSL using GnuTLS. Use version 1.2.3 or newer.</P
></DD
><DT
><CODE
CLASS="OPTION"
>--with-openssl=<TT
CLASS="REPLACEABLE"
><I
>DIR</I
></TT
></CODE
></DT
><DD
><P
>Enable SSL using OpenSSL. Unlike <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
>, OpenSSL does not use the LGPL.  Please read the <A
HREF="http://www.openssl.org/source/license.html"
TARGET="_top"
>OpenSSL license</A
> before distributing binaries compiled with this option.</P
></DD
></DL
></DIV
></DIV
><DIV
CLASS="SECT3"
><H3
CLASS="SECT3"
><A
NAME="AEN648"
><B
CLASS="COMMAND"
>Make</B
></A
></H3
><P
>Now you're ready to build.  Follow these easy steps.</P
><P
></P
><OL
TYPE="1"
><LI
><P
>Download the tarball and unpack it.</P
><P
>Alternatively, get the latest build from <SPAN
CLASS="PRODUCTNAME"
>CVS</SPAN
>
							<A
NAME="AEN657"
HREF="#FTN.AEN657"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
>
							.</P
></LI
><LI
><P
>Change to the <TT
CLASS="FILENAME"
>freetds</TT
> directory.</P
></LI
><LI
><P
>run <B
CLASS="COMMAND"
>./configure</B
> with any options you need.</P
></LI
><LI
><P
><B
CLASS="COMMAND"
>make; make install; make clean</B
></P
></LI
></OL
><P
>You normally need to be root to <B
CLASS="COMMAND"
>make install</B
>, unless you used the <CODE
CLASS="OPTION"
>--prefix</CODE
> option during configuration to install into your own directory.</P
><P
>With any luck, you've built and installed the <SPAN
CLASS="PRODUCTNAME"
>FreeTDS</SPAN
> libraries.</P
><P
><DIV
CLASS="TIP"
><P
></P
><TABLE
CLASS="TIP"
WIDTH="100%"
BORDER="0"
><TR
><TD
WIDTH="25"
ALIGN="CENTER"
VALIGN="TOP"
><IMG
SRC="../images/tip.gif"
HSPACE="5"
ALT="Tip"></TD
><TH
ALIGN="LEFT"
VALIGN="MIDDLE"
><B
>Two bits of advice, if you like to keep things tidy and keep track of what you did.</B
></TH
></TR
><TR
><TD
>&nbsp;</TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
><P
>Create a file to hold your configure options called, say, <TT
CLASS="FILENAME"
>.build_options</TT
>.</P
><P
>Create a build directory for the binaries, and invoke <B
CLASS="COMMAND"
>../configure $(cat ../.build_options)</B
>. </P
><P
>This approach lets you remove the binaries at any time and rebuild from scratch using the same options.</P
></TD
></TR
></TABLE
></DIV
></P
></DIV
></DIV
></DIV
><H3
CLASS="FOOTNOTES"
>Notes</H3
><TABLE
BORDER="0"
CLASS="FOOTNOTES"
WIDTH="100%"
><TR
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="5%"
><A
NAME="FTN.AEN657"
HREF="config.htm#AEN657"
><SPAN
CLASS="footnote"
>[1]</SPAN
></A
></TD
><TD
ALIGN="LEFT"
VALIGN="TOP"
WIDTH="95%"
><P
><SPAN
CLASS="PRODUCTNAME"
>CVS</SPAN
> users will need the GNU autotools: Autoconf, Automake, and libtool.</P
></TD
></TR
></TABLE
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="packages.htm"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.htm"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="osissues.htm"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>What to build: Packages, Tarballs, and the <SPAN
CLASS="PRODUCTNAME"
>CVS</SPAN
> repository</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="build.htm"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>OS-specific Issues</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>