1 /* Hey EMACS -*- linux-c -*- */
2 /* $Id$ */
3 
4 /*  libtifiles - file format library, a part of the TiLP project
5  *  Copyright (C) 1999-2005  Romain Lievin
6  *
7  *  This program is free software; you can redistribute it and/or modify
8  *  it under the terms of the GNU General Public License as published by
9  *  the Free Software Foundation; either version 2 of the License, or
10  *  (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with this program; if not, write to the Free Software Foundation,
19  *  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef __TIFILES_EXPORT__
23 #define __TIFILES_EXPORT__
24 
25 #ifdef HAVE_CONFIG_H
26 #  include <config.h>
27 #endif
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 /*
34 	Calling convention: default
35 */
36 # define TICALL
37 
38 /*
39 	Symbols exporting
40 */
41 #if defined(HAVE_FVISIBILITY)	// GCC 4.0 has introduced the -fvisibility flag (similar to declspec)
42 # define TIEXPORT2 __attribute__ ((visibility("default")))
43 
44 #elif defined(__WIN32__)
45 # if defined(__BORLANDC__)		// BCC32 v5.x (or C++Builder)
46 #  if __BORLANDC__ >= 0x0500	// (c) 2001 Thomas Wolf (two@chello.at)
47 #   define TIEXPORT2
48 #  else
49 #   define TIEXPORT2
50 #  endif
51 
52 # elif defined(_MSC_VER)		// MSVC 5.0 mini
53 #  if defined(TIFILES_EXPORTS)
54 #   define TIEXPORT2 __declspec(dllexport)
55 #  else
56 #   define TIEXPORT2 __declspec(dllimport)
57 #  endif
58 
59 # elif defined(__MINGW32__)		// MinGW - GCC for Windows, (c) 2002 Kevin Kofler
60 #  if defined(TIFILES_EXPORTS)	// defined by the configure script
61 #   define TIEXPORT2 __declspec(dllexport)
62 #  else
63 #   define TIEXPORT2 __declspec(dllimport)
64 #  endif
65 # endif
66 
67 #else
68 # define TIEXPORT2				// default
69 #endif
70 
71 #ifdef __cplusplus
72 }
73 #endif
74 
75 /*
76 	Symbols deprecating
77 */
78 #ifndef TILIBS_DEPRECATED
79 # ifdef __GNUC__
80 #  if (__GNUC__>3) || (__GNUC__==3 && __GNUC_MINOR__>=3)
81 #   define TILIBS_DEPRECATED __attribute__((deprecated))
82 #  else /* not GCC >= 3.3 */
83 #   define TILIBS_DEPRECATED
84 #  endif /* GCC >= 3.3 */
85 # else /* not __GNUC__ */
86 #  ifdef _MSC_VER
87 #   if _MSC_VER >= 1300
88 #    define TILIBS_DEPRECATED __declspec(deprecated)
89 #   else /* not _MSC_VER >= 1300 */
90 #    define TILIBS_DEPRECATED
91 #   endif /* _MSC_VER >= 1300 */
92 #  else /* not _MSC_VER */
93 #   define TILIBS_DEPRECATED
94 #  endif /* _MSC_VER */
95 # endif /* __GNUC__ */
96 #endif /* TILIBS_DEPRECATED */
97 
98 #endif
99