Git init
[external/xmlsec1.git] / docs / api / xmlsec-notes-compiling-unix.html
1 <html>
2 <head>
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 {
11     background: #eeeeee;
12     border: solid 1px #aaaaaa;
13     padding: 0.5em;
14 }
15 .programlisting {
16     background: #eeeeff;
17     border: solid 1px #aaaaff;
18     padding: 0.5em;
19 }
20 .variablelist {
21     padding: 4px;
22     margin-left: 3em;
23 }
24 .navigation {
25     background: #ffeeee;
26     border: solid 1px #ffaaaa;
27     margin-top: 0.5em;
28     margin-bottom: 0.5em;
29 }
30 .navigation a {
31     color: #770000;
32 }
33 .navigation a:visited {
34     color: #550000;
35 }
36 .navigation .title {
37     font-size: 200%;
38 }</style>
39 </head>
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>
43 <ul>
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>
48 <ul>
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>
53 </ul>
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>
62 </ul>
63 <table width="100%">
64 <tr>
65 <td width="15"></td>
66 <td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
67 </tr>
68 <tr>
69 <td width="15"></td>
70 <td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
71 </tr>
72 <tr>
73 <td width="15"></td>
74 <td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
75 </tr>
76 <!--Links - start--><!--Links - end-->
77 </table>
78 </td>
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>
86 </tr></table>
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.
93         
94         </p>
95 <p></p>
96 <ul>
97 <li>
98 <p>PKG_CHECK_MODULES() macro
99                 </p>
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
105 dnl
106 PKG_CHECK_MODULES(XMLSEC, xmlsec1-openssl &gt;= 1.0.0 xml2 libxslt,,exit)
107 CFLAGS="$CFLAGS $XMLSEC_CFLAGS"
108 CPPFLAGS="$CPPFLAGS $XMLSEC_CFLAGS"
109 LDFLAGS="$LDFLAGS $XMLSEC_LIBS"
110                     </pre>
111 </div>
112
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
118 dnl
119 PKG_CHECK_MODULES(XMLSEC, xmlsec1 &gt;= 1.0.0 xml2 libxslt,,exit)
120 CFLAGS="$CFLAGS $XMLSEC_CFLAGS"
121 CPPFLAGS="$CPPFLAGS $XMLSEC_CFLAGS"
122 LDFLAGS="$LDFLAGS $XMLSEC_LIBS"
123                     </pre>
124 </div>
125
126             </li>
127 <li>
128 <p>pkg-config script
129                 </p>
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
135
136 CFLAGS  += -g $(shell pkg-config --cflags xmlsec1-nss)
137 LDFLAGS += -g
138 LIBS    += $(shell pkg-config --libs xmlsec1-nss) 
139
140 all: $(PROGRAM)
141
142 %: %.c 
143         $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
144
145 clean:
146         @rm -rf $(PROGRAM)
147                     </pre>
148 </div>
149
150
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
156
157 CFLAGS  += -g $(shell pkg-config --cflags xmlsec1)
158 LDFLAGS += -g
159 LIBS    += $(shell pkg-config --libs xmlsec1) 
160
161 all: $(PROGRAM)
162
163 %: %.c 
164         $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
165
166 clean:
167         @rm -rf $(PROGRAM)
168                     </pre>
169 </div>
170
171             </li>
172 <li>
173 <p>xmlsec1-config script
174                 </p>
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
180
181 CFLAGS  += -g $(shell xmlsec1-config --crypto gnutls --cflags)
182 LDFLAGS += -g
183 LIBS    += $(shell xmlsec1-config --crypto gnutls --libs) 
184
185 all: $(PROGRAM)
186
187 %: %.c 
188         $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
189
190 clean:
191         @rm -rf $(PROGRAM)
192                     </pre>
193 </div>
194
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
200
201 CFLAGS  += -g $(shell xmlsec1-config --cflags)
202 LDFLAGS += -g
203 LIBS    += $(shell xmlsec1-config --libs) 
204
205 all: $(PROGRAM)
206
207 %: %.c 
208         $(cc) $(PROGRAM_FILES) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(LIBS)
209
210 clean:
211         @rm -rf $(PROGRAM)
212                     </pre>
213 </div>
214                 </li>
215 </ul>
216 </div>
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>&lt;&lt;&lt; Include files.</b></a></td>
219 <td align="right"><a accesskey="n" href="xmlsec-notes-compiling-windows.html"><b>Compiling and linking on Windows. &gt;&gt;&gt;</b></a></td>
220 </tr></table>
221 </td></tr></table></td>
222 </tr></table></body>
223 </html>