<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >OS-specific Issues</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="How to build: Configure and make" HREF="config.htm"><LINK REL="NEXT" TITLE="Install FreeTDS" HREF="install.htm"><LINK REL="STYLESHEET" TYPE="text/css" HREF="userguide.css"></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="config.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="install.htm" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="OSISSUES" >OS-specific Issues</A ></H1 ><TABLE CLASS="SIDEBAR" BORDER="1" CELLPADDING="5" ><TR ><TD ><DIV CLASS="SIDEBAR" ><P ></P ><A NAME="AEN612" ></A ><P >If you've recently built and installed <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > and noticed steps peculiar to your OS, we'll happily include your comments here. </P ><P >One thing that can be said, if it's not too obvious: check with your vendor or favorite download site. <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > is routinely rolled up into OS install packages. We know of packages for <SPAN CLASS="PRODUCTNAME" >Debian</SPAN >, <SPAN CLASS="PRODUCTNAME" >Red Hat</SPAN >, <SPAN CLASS="PRODUCTNAME" >FreeBSD</SPAN >, and <SPAN CLASS="PRODUCTNAME" >NetBSD</SPAN >. The installation through the package management systems in these environments may well reduce your work to simply <B CLASS="COMMAND" >make install</B >. </P ><P ></P ></DIV ></TD ></TR ></TABLE ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="WINDOWS" ></A ></H2 ><P >The <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > ODBC driver compiles under <P ></P ><UL ><LI ><P >VC++; <TT CLASS="FILENAME" >.dsw</TT > and <TT CLASS="FILENAME" >.dsp</TT > files are included in the <TT CLASS="FILENAME" >win32</TT > directory. </P ></LI ><LI ><P >Dev-C++</P ></LI ><LI ><P >MingW</P ></LI ><LI ><P ><SPAN CLASS="APPLICATION" >gcc</SPAN > under <SPAN CLASS="APPLICATION" >cygwin</SPAN >. </P ></LI ><LI ><P >The Borland Builder 6.0 compiler is also reported to work, but requires some tweaking of the <TT CLASS="LITERAL" >#include</TT > statements. We would apply any patches that make this work cleanly.</P ></LI ></UL > Threadsafe operation will not be enabled. </P ><P >From the Department of Double Emulation: <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > builds as a <TT CLASS="FILENAME" >.dll</TT > under <SPAN CLASS="PRODUCTNAME" >WINE</SPAN > and as a <TT CLASS="FILENAME" >.a</TT > under <SPAN CLASS="PRODUCTNAME" >Interix</SPAN >. See the mailing list archives (second half of 2003) for details. </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="VMS" >VMS®</A ></H2 ><P ><SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > will probably build and run on most versions of OpenVMS Alpha 7.0 and later with DEC/Compaq C 6.0 or later. Other prerequisites: <P ></P ><TABLE BORDER="0" ><TBODY ><TR ><TD ><SPAN CLASS="APPLICATION" >gunzip</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="APPLICATION" >vmstar</SPAN ></TD ></TR ><TR ><TD ><SPAN CLASS="APPLICATION" >MMS</SPAN > or <SPAN CLASS="APPLICATION" >MMK</SPAN ></TD ></TR ></TBODY ></TABLE ><P ></P > </P ><DIV CLASS="SECT3" ><H3 CLASS="SECT3" ><A NAME="AEN661" >Build Instructions</A ></H3 ><P >Decompress and unpack the source archive using gunzip and vmstar. If you are untarring on an ODS-5 disk, you should use the <CODE CLASS="PARAMETER" >/ODS2</CODE > or <CODE CLASS="PARAMETER" >-o</CODE > option to create universally VMS-friendly filenames; otherwise the build will fail to locate some files.</P ><P >Set default to the top-level source directory and run the configuration script:</P ><PRE CLASS="SCREEN" > <SAMP CLASS="PROMPT" >$</SAMP > <KBD CLASS="USERINPUT" >@[.vms]configure</KBD ></PRE ><P > This creates a <TT CLASS="FILENAME" >descrip.mms</TT > in the top-level source directory which you may execute by simply running MMS (if you have the Module Management System that is part of DECset) or MMK (a freeware MMS alternative available from <A HREF="http://www.madgoat.com" TARGET="_top" >www.madgoat.com</A >).</P ><P >Further information can be found in the <TT CLASS="FILENAME" ></TT > in the source distribution. </P ></DIV ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="OSX" >OS X®</A ></H2 ><P >As of this writing ($Date: 2008/03/23 21:02:52 $), the regular distribution compiles on OS X. Releases prior to 0.63 either did not compile or required patching. </P ><DIV CLASS="SECT3" ><H3 CLASS="SECT3" ><A NAME="OSX.BUILD.UPDATE" >Alternative build procedure</A ></H3 ><P >On 11 March 2004, <CODE CLASS="EMAIL" ><<A HREF="mailto:Dmitri Fedortchenko" ><A HREF="mailto:dimo@angelhill.net" TARGET="_top" >Dmitri Fedortchenko</A ></A >></CODE > offered the following approach, using a local <B CLASS="COMMAND" >libtool</B >. It is included here as a source of clues, in case you encounter trouble. </P ><DIV CLASS="PROCEDURE" ><P ><B ><A NAME="OSX.NEW.LIBTOOL" ></A >Installing with libtool 1.5.2</B ></P ><OL TYPE="1" ><LI CLASS="STEP" ><P >Install the latest <B CLASS="COMMAND" >libtool</B > from GNU into <TT CLASS="FILENAME" >/usr/local</TT >, so as not to interfere with the Apple-original. </P ></LI ><LI CLASS="STEP" ><P >Make sure <TT CLASS="FILENAME" >/usr/local/bin</TT > is in your <CODE CLASS="ENVAR" >PATH</CODE > and <TT CLASS="FILENAME" >/usr/local/lib</TT > is in your <CODE CLASS="ENVAR" >LIBRARY_PATH</CODE >. </P ></LI ><LI CLASS="STEP" ><P >Go to the <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN > source directory and generate the <TT CLASS="FILENAME" >Makefile</TT >s <PRE CLASS="SCREEN" > <SAMP CLASS="PROMPT" >$ </SAMP ><KBD CLASS="USERINPUT" >./configure --disable-libiconv --disable-odbc</KBD > </PRE > </P ></LI ><LI CLASS="STEP" ><P >Overwrite FreeTDS's <TT CLASS="FILENAME" >libtool</TT > with a symbolic link to your (better) one <PRE CLASS="SCREEN" > <A NAME="AEN707" HREF="#FTN.AEN707" ><SPAN CLASS="footnote" >[1]</SPAN ></A > <SAMP CLASS="PROMPT" >$ </SAMP ><KBD CLASS="USERINPUT" >ln -sf /usr/local/bin/libtool</KBD > </PRE ></P ></LI ><LI CLASS="STEP" ><P >To check that you've done everything correctly up to this point, <PRE CLASS="SCREEN" > <SAMP CLASS="PROMPT" >$ </SAMP ><KBD CLASS="USERINPUT" >./libtool --version</KBD > </PRE > <B CLASS="COMMAND" >libtool</B > should report version 1.5.2 (or whatever version you downloaded, and <SPAN CLASS="emphasis" ><I CLASS="EMPHASIS" >not</I ></SPAN > 1.4). </P ></LI ><LI CLASS="STEP" ><P >And finally, of course <PRE CLASS="SCREEN" > <SAMP CLASS="PROMPT" >$ </SAMP ><KBD CLASS="USERINPUT" >make && make install</KBD > </PRE > </P ></LI ></OL ></DIV ></DIV ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="AIX" >AIX®</A ></H2 ><P >AIX® can induce linker indigestion. libtool doesn't always understand that a <TT CLASS="FILENAME" >.a</TT > file can be a shared library. One solution is to build only static libraries with the <CODE CLASS="OPTION" >--disable-shared</CODE > configure option. </P ><P >Another problem seems to be that the linker isn't asked to pull in all the requisite libraries. Cf. this helpful <A HREF="http://lists.ibiblio.org/pipermail/freetds/2004q3/016748.html" TARGET="_top" >mailing list message</A >. </P ></DIV ><DIV CLASS="SECT2" ><H2 CLASS="SECT2" ><A NAME="RPM" >GNU/Linux distributions that use RPMs</A ></H2 ><P >You may find it convenient to make an RPM from the source distribution, in which case you'll be glad to know it is easily done: <PRE CLASS="SCREEN" > <SAMP CLASS="PROMPT" >$ </SAMP ><KBD CLASS="USERINPUT" >rpmbuild -ta freetds-0.63RC9.tar.gz</KBD > </PRE > </P ></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.AEN707" HREF="osissues.htm#AEN707" ><SPAN CLASS="footnote" >[1]</SPAN ></A ></TD ><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="95%" ><P > If you run <B CLASS="COMMAND" >configure</B > again, you'll need to perform this step again, because <B CLASS="COMMAND" >libtool</B > will have been regenerated in its fossilized state. </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="config.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="install.htm" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >How to build: Configure and make</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="build.htm" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Install <SPAN CLASS="PRODUCTNAME" >FreeTDS</SPAN ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >