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