<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Adding libdbi to your project</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Database Independent Abstraction Layer for C" HREF="index.html"><LINK REL="UP" TITLE="libdbi in a Nutshell (Quickstart Guide)" HREF="quickstart.html"><LINK REL="PREVIOUS" TITLE="Using libdbi in multithreaded applications" HREF="threads.html"><LINK REL="NEXT" TITLE="Error Handling" HREF="errorhandling.html"></HEAD ><BODY CLASS="SECTION" 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" >Database Independent Abstraction Layer for C: libdbi Programmer's Guide</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="threads.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Chapter 3. libdbi in a Nutshell (Quickstart Guide)</TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="errorhandling.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECTION" ><H1 CLASS="SECTION" ><A NAME="ADDTOPROJECT" >3.5. Adding libdbi to your project</A ></H1 ><P >If your project uses autoconf to manage the build process on the target machine, you should add some tests to your <TT CLASS="FILENAME" >./configure</TT > script to check for the presence and usability of libdbi. The following example shows how this can be done:</P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" WIDTH="100%" ><TR ><TD ><FONT COLOR="#000000" ><PRE CLASS="PROGRAMLISTING" >dnl check for dynamic linking functions AC_CHECK_LIB(dl,dlopen) dnl check for the libdbi library AC_CHECK_LIB(dbi,dbi_initialize) dnl to check for the availability and function of a particular dnl driver we need a runtime check (since the driver is loaded dnl dynamically). This example checks for the mysql driver AC_MSG_CHECKING("for libdbi mysql driver (dynamic load)") AC_RUN_IFELSE( [AC_LANG_PROGRAM(, [[dbi_initialize(0); return(dbi_conn_new("mysql") ? 0 : 1);]])], [AC_MSG_RESULT("yes")], [AC_MSG_FAILURE("mysql driver not installed?")])</PRE ></FONT ></TD ></TR ></TABLE ><P >The first two tests add the appropriate flags to the <CODE CLASS="VARNAME" >LIBS</CODE > variable to link against the required libraries.</P ><P >In addition, you have to make sure that both the directory which contains the libdbi header file directory (usually <TT CLASS="FILENAME" >/usr/include</TT > or <TT CLASS="FILENAME" >/usr/local/include</TT >) as well as the directory which contains the libdbi library (usually <TT CLASS="FILENAME" >/usr/lib</TT > or <TT CLASS="FILENAME" >/usr/local/lib</TT >) are accessible to the compiler and to the linker by using the <CODE CLASS="OPTION" >-I</CODE > and <CODE CLASS="OPTION" >-L</CODE > compiler flags, respectively.</P ></DIV ><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="threads.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="errorhandling.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >Using libdbi in multithreaded applications</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="quickstart.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Error Handling</TD ></TR ></TABLE ></DIV ></BODY ></HTML >