1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Building QuickFIX</title>
<H1>Building QuickFIX</H1>
</head>
<UL>
<LI><A HREF="#Windows (C++)">Windows (C++)</A></LI>
<LI><A HREF="#Windows (.NET)">Windows (.NET)</A></LI>
<LI><A HREF="#Windows (Java)">Windows (Java)</A></LI>
<LI><A HREF="#Linux / Solaris / FreeBSD / Mac OS X (C++/Java)">Linux / Solaris / FreeBSD / Mac OS X (C++/Java)</A></LI>
</UL>
<body>
<A NAME="Windows (C++)"/>
<H3>Windows (C++)</H3>
<p>
Solution and project files are provided for building under Visual Studio. QuickFIX supports Visual Studio 7 (2003),
Visual Studio 8 (2005), Visual Studio 9 (2008) and Visual Studio 10 (2010). The solution files
provided for these versions are <B>quickfix_vs7.dsw</B>, <B>quickfix_vs8.sln</B>, <B>quickfix_vs9.sln</B>, and <B>quickfix_vs10.sln</B>
respectively.
</p>
<p>
Simply open the appropriate solution file and do a batch build of all the projects. This will create
<B>lib\quickfix.lib</B> and <B>lib\debug\quickfix.lib</B> which can be linked into your
applications. The header files will also be copied to the <I>include</I> directory.
</p>
<p>
Since windows does not have a standard system for storing header and library files, you
should organize them however best suits your build environment. Leaving them in the <I>lib</I>
and <I>include</I> directories they are placed into by the build is one option.
</p>
<p>
Compile time options are controlled from the <B>config_windows.h</B> file in the <I>src</I>
directory. The following options are supported:<br><br>
<FONT color="#0000FF">#define HAVE_STLPORT 1</FONT>
Compile with stlport instead of standard visual c++ STL implementation.<br/>
<FONT color="#0000FF">#define HAVE_JAVA 1</FONT>
Compiles JNI wrappers for QuickFIX library, allowing you to access QuickFIX from java.<br/>
<FONT color="#0000FF">#define HAVE_ODBC 1</FONT>
Compiles ODBC support into QuickFIX.<br/>
<FONT color="#0000FF">#define HAVE_MYSQL 1</FONT>
Compiles MySQL support into QuickFIX. If you enable this option, the mysql include and
library directories must be in the Visual Studio search paths.<br/>
<FONT color="#0000FF">#define HAVE_POSTGRESQL 1</FONT>
Compiles PostgreSQL support into QuickFIX. If you enable this option, the postgres include and
library directories must be in the Visual Studio search paths.<br/>
<FONT color="#0000FF">#define HAVE_LIBXML 1</FONT>
Compile and link XML parsing code against the libxml library instead of the default MSXML3.<br/>
<FONT color="#0000FF">#define ENABLE_CALLSTACK 1</FONT>
Tells QuickFIX to keep track of a C++ callstack that will be printed out in the event of a the process crashing. Only use this when trying to track down a repeatable problem.<br/>
</p>
<A NAME="Windows (.NET)"/>
<H3>Windows (.NET)</H3>
<p>
QuickFIX comes with a .NET wrapper written in managed C++. This enables any CLR based language (i.e., C#, VB.NET)
to access QuickFIX.
</p>
<p>
The instruction for building under .NET are the same as the instructions for windows listed above.
In addition to the quickfix lib files, DLLs named <B>quickfix_net.dll</B> and <B>quickfix_net_messages.dll</B>
will be placed into your <I>lib</I> and <I>lib\debug</I> directories.
</p>
<A NAME="Windows (Java)"/>
<H3>Windows (Java)</H3>
<p>
The QuickFIX JNI wrapper for Java has been deprecated. It is now recommended that you use <a href="http://www.quickfixj.org">QuickFIX/J</a>,
a native port of the QuickFIX engine. For those of you using the JNI interface, <B>quickfixj.jar</B> has
been provided for your convenience.
</p>
<A NAME="Linux / Solaris / FreeBSD / Mac OS X (C++/Java)"/>
<H3>Linux / Solaris / FreeBSD / Mac OS X (C++/Java)</H3>
<p>
QuickFIX uses GNU autotools (autoconf, automake, and libtool) in conjunction with make to
build on unix systems. If you also want to reuse our makefiles for developing your own application,
you will find it useful. Also note
that if your version of gcc does not come with sstream, you will need to download it from
the link above and put it in the correct include directory. Also please note for Solaris
you must use GNU make, the make that comes with Solaris will not work.
</p>
<p>
Building under *nix requires two steps. First, in the root quickfix directory, type
<B>./configure</B> This will probe your system to find out what functionality it supports
for use in determining how to build QuickFIX. After ./configure completes succesfully,
simply type <B>make</B> to build. If you run into problems running configure, you may
need to run the <B>./bootstrap</B> script first.
</p>
<p>
There are some options you can pass to <I>./configure</I> to enable compile time features.
These are:<br><br>
<FONT color="#0000FF">--with-java</FONT> - Build the Java examples against QuickFIX/J. JAVA_HOME will be used to find Java.<br>
<FONT color="#0000FF">--with-python=<include directory></FONT> - Build the Python API. Use directory which contains python headers.<br>
<FONT color="#0000FF">--with-ruby</FONT> - Build the Ruby API. Ruby interpreter in your path will be used.<br>
<FONT color="#0000FF">--with-mysql=<base directory></FONT> - Compile in mysql support<br>
<FONT color="#0000FF">--with-postgresql=<base directory></FONT> - Compile in postgresql support<br>
<FONT color="#0000FF">--with-stlport=<base directory></FONT> - Compile with stlport instead of
standard gcc STL implementation (recommended for multiprocessor machines running gcc 2.95.x)<br>
<FONT color="#0000FF">--enable-callstack</FONT> - Display C++ call stack after abnormal termination. Only use this when trying to track down a repeatable problem.<br>
</p>
<p>
If you are using the SUNPro compiler, you will need to set the following environment variables:<br/><br/>
<b>CC</b>=<i><full path to SUNPro CC binary></i><br/>
<b>CFLAGS</b>=<i>-g -xs</i><br/>
<b>CXX</b>=<i><full path to SUNPro CC binary></i><br/>
<b>CXXFLAGS</b>=<i>-g -xs</i><br/>
<b>LD</b>=<i><full path to SUNPro CC binary></i><br/>
<b>LDFLAGS</b>=<i>-g -xs -lCstd</i><br/>
<b>AR</b>=<i><full path to SUNPro CC binary></i><br/>
<b>AR_FLAGS</b>=<i>-g -xs -xar -o</i><br/>
</p>
<p>
After succesfully building QuickFIX, you should run <B>make install</B> as root.
This will place the library <B>libquickfix.so</B> and the quickfix header files into the appropriate directories. If you do not
have root access, you can also run configure with the
<FONT color="#0000FF">--prefix=<base directory></FONT> option, where the base directory
is some directory which your account has write
access. <B>note: </b> under Mac OS X, the library is named
called <B>libquickfix.dylib</B>
</p>
</body>
</html>
|