Created SILC GIT repository.
[silc.git] / includes / silc.h.in
1 /*
2
3   silc.h
4
5   Author: Pekka Riikonen <priikone@silcnet.org>
6
7   Copyright (C) 1997 - 2008 Pekka Riikonen
8
9   This program is free software; you can redistribute it and/or modify
10   it under the terms of the GNU General Public License as published by
11   the Free Software Foundation; version 2 of the License.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18 */
19 /*
20   This file includes common definitions for SILC. This file MUST be included
21   by all files in SILC (directly or through other global include file).
22 */
23
24 #ifndef SILC_H
25 #define SILC_H
26
27 /* Version check macro.  Use this to check that package is of specific
28    version compile time.  Use the __SILC_XXX_VERSION below in comparison.
29    Example:
30
31    #if __SILC_TOOLKIT_VERSION < SILC_VERSION(1,2,0)
32      ...
33    #endif
34 */
35 #ifndef SILC_VERSION
36 #define SILC_VERSION(a, b, c) (((a) << 24) + ((b) << 16) + ((c) << 8)
37 #endif /* !SILC_VERSION */
38
39 /* SILC Crypto Toolkit version */
40 @__SILC_PACKAGE_VERSION@
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46 /* We except all systems to have these include files */
47 #include <stdio.h>
48 #include <stdlib.h>
49 #include <string.h>
50
51 #if defined(HAVE_SILCDEFS_H)
52 /* Automatically generated configuration header.  These are included only
53    when the SILC Toolkit itself is compiled. */
54 #ifndef SILC_SYMBIAN
55 #include "silcdefs.h"
56 #else
57 #include "../../symbian/silcdefs.h"
58 #endif /* SILC_SYMBIAN */
59 #include "silcdistdefs.h"
60 #include "silccompile.h"
61 #endif /* HAVE_CRYPTODEFS_H */
62
63 /* SRT and SCT include */
64 #include <silcruntime.h>
65 #include <silccrypto.h>
66
67 #include <silcversion.h>
68
69 #ifdef SILC_DIST_VCARD
70 #include <silcvcard.h>
71 #endif /* SILC_DIST_VCARD */
72
73 /* SILC core library includes */
74 #include <silcargument.h>
75 #include <silcstatus.h>
76 #include <silcid.h>
77 #include <silccommand.h>
78 #include <silcauth.h>
79 #include <silcmessage.h>
80 #include <silcchannel.h>
81 #include <silcpacket.h>
82 #include <silcnotify.h>
83 #include <silcmode.h>
84 #include <silcattrs.h>
85 #include <silcpubkey.h>
86
87 /* Application utility includes */
88 #include <silcapputil.h>
89 #include <silcidcache.h>
90
91 /* SILC Key Exchange library includes */
92 #include <silcske.h>
93 #include <silcske_payload.h>
94 #include <silcske_groups.h>
95 #include <silcconnauth.h>
96
97 #ifdef SILC_DIST_SFTP
98 /* SILC SFTP library */
99 #include <silcsftp.h>
100 #include <silcsftp_fs.h>
101 #endif /* SILC_DIST_SFTP */
102
103 #ifdef SILC_DIST_HTTP
104 /* SILC HTTP library */
105 #include <silchttpserver.h>
106 #include <silchttpphp.h>
107 #endif /* SILC_DIST_HTTP */
108
109 #ifdef __cplusplus
110 }
111 #endif
112
113 #endif /* SILC_H */