3 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4 <title>Compiling and linking on Unix.</title>
5 <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
6 <link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
7 <link rel="UP" title="Building the application with XML Security Library." href="xmlsec-notes-compiling.html">
8 <link rel="PREVIOUS" title="Include files." href="xmlsec-notes-include-files.html">
9 <link rel="NEXT" title="Compiling and linking on Windows." href="xmlsec-notes-compiling-windows.html">
10 <style type="text/css">.synopsis, .classsynopsis {
12 border: solid 1px #aaaaaa;
17 border: solid 1px #aaaaff;
26 border: solid 1px #ffaaaa;
33 .navigation a:visited {
40 <body><table witdh="100%" valign="top"><tr valign="top">
41 <td valign="top" align="left" width="210">
42 <img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
44 <li><a href="../index.html">Home</a></li>
45 <li><a href="../download.html">Download</a></li>
46 <li><a href="../news.html">News</a></li>
47 <li><a href="../documentation.html">Documentation</a></li>
49 <li><a href="../faq.html">FAQ</a></li>
50 <li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
51 <li><a href="../api/xmlsec-reference.html">API reference</a></li>
52 <li><a href="../api/xmlsec-examples.html">Examples</a></li>
54 <li><a href="../xmldsig.html">XML Digital Signature</a></li>
55 <ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
56 <li><a href="../xmlenc.html">XML Encryption</a></li>
57 <li><a href="../c14n.html">XML Canonicalization</a></li>
58 <li><a href="../bugs.html">Reporting Bugs</a></li>
59 <li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
60 <li><a href="../related.html">Related</a></li>
61 <li><a href="../authors.html">Authors</a></li>
66 <td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
70 <td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
74 <td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
76 <!--Links - start--><!--Links - end-->
79 <td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
80 <table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
81 <td><a accesskey="p" href="xmlsec-notes-include-files.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
82 <td><a accesskey="u" href="xmlsec-notes-compiling.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
83 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
84 <th width="100%" align="center">XML Security Library Reference Manual</th>
85 <td><a accesskey="n" href="xmlsec-notes-compiling-windows.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
87 <br clear="all"><div class="SECT1">
88 <h1 class="SECT1"><a name="XMLSEC-NOTES-COMPILING-UNIX">Compiling and linking on Unix.</a></h1>
89 <p>There are several ways to get necessary compilation
90 and linking information on Unix and application can use
91 any of these methods to do crypto engine selection either
92 at linking or run time.
98 <p>PKG_CHECK_MODULES() macro
100 <div class="EXAMPLE">
101 <a name="AEN70"></a><p><b>Example 2. Using PKG_CHECK_MODULES() macro in a configure.in file
102 to select crypto engine (openssl) at linking time.</b></p>
103 <pre class="PROGRAMLISTING">dnl
104 dnl Check for xmlsec and friends
106 PKG_CHECK_MODULES(XMLSEC, xmlsec1-openssl >= 1.0.0 xml2 libxslt,,exit)
107 CFLAGS="$CFLAGS $XMLSEC_CFLAGS"
108 CPPFLAGS="$CPPFLAGS $XMLSEC_CFLAGS"
109 LDFLAGS="$LDFLAGS $XMLSEC_LIBS"
113 <div class="EXAMPLE">
114 <a name="AEN73"></a><p><b>Example 3. Using PKG_CHECK_MODULES() macro in a configure.in file
115 to enable dynamical loading of xmlsec-crypto library.</b></p>
116 <pre class="PROGRAMLISTING">dnl
117 dnl Check for xmlsec and friends
119 PKG_CHECK_MODULES(XMLSEC, xmlsec1 >= 1.0.0 xml2 libxslt,,exit)
120 CFLAGS="$CFLAGS $XMLSEC_CFLAGS"
121 CPPFLAGS="$CPPFLAGS $XMLSEC_CFLAGS"
122 LDFLAGS="$LDFLAGS $XMLSEC_LIBS"
130 <div class="EXAMPLE">
131 <a name="AEN78"></a><p><b>Example 4. Using pkg-config script in a Makefile
132 to select crypto engine (nss) at linking time.</b></p>
133 <pre class="PROGRAMLISTING">PROGRAM = test
134 PROGRAM_FILES = test.c
136 CFLAGS += -g $(shell pkg-config --cflags xmlsec1-nss)
138 LIBS += $(shell pkg-config --libs xmlsec1-nss)
143 $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
151 <div class="EXAMPLE">
152 <a name="AEN81"></a><p><b>Example 5. Using pkg-config script in a Makefile
153 to enable dynamical loading of xmlsec-crypto library.</b></p>
154 <pre class="PROGRAMLISTING">PROGRAM = test
155 PROGRAM_FILES = test.c
157 CFLAGS += -g $(shell pkg-config --cflags xmlsec1)
159 LIBS += $(shell pkg-config --libs xmlsec1)
164 $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
173 <p>xmlsec1-config script
175 <div class="EXAMPLE">
176 <a name="AEN86"></a><p><b>Example 6. Using xmlsec1-config script in a Makefile
177 to select crypto engine (gnutls) at linking time.</b></p>
178 <pre class="PROGRAMLISTING">PROGRAM = test
179 PROGRAM_FILES = test.c
181 CFLAGS += -g $(shell xmlsec1-config --crypto gnutls --cflags)
183 LIBS += $(shell xmlsec1-config --crypto gnutls --libs)
188 $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
195 <div class="EXAMPLE">
196 <a name="AEN89"></a><p><b>Example 7. Using xmlsec1-config script in a Makefile
197 to enable dynamical loading of xmlsec-crypto library.</b></p>
198 <pre class="PROGRAMLISTING">PROGRAM = test
199 PROGRAM_FILES = test.c
201 CFLAGS += -g $(shell xmlsec1-config --cflags)
203 LIBS += $(shell xmlsec1-config --libs)
208 $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
217 <table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
218 <td align="left"><a accesskey="p" href="xmlsec-notes-include-files.html"><b><<< Include files.</b></a></td>
219 <td align="right"><a accesskey="n" href="xmlsec-notes-compiling-windows.html"><b>Compiling and linking on Windows. >>></b></a></td>
221 </td></tr></table></td>