1 /* $Id$
2  *
3 
4  * This file may be included many times.
5  *
6  * Declare compiler-specific macro:
7  *
8  * HUSKYEXT - external variables & external functions call modifier
9  *            used for export/import functions for dll (shared library) build
10  *            (May by set to 'extern' or stay empty for static linkage)
11  *            Use DLLEXPORT macro to switch export or import functions
12  *            modifier set.
13  */
14 
15 #include "compiler.h"  /* compiler see directory of this .h file */
16 
17 #if defined(DLLEXPORT) && defined(DLLIMPORT)
18 # error "DLLEXPORT and DLLIMPORT can't be defined simultaneously!"
19 #endif
20 
21 #undef HUSKYEXT
22 #ifdef _MAKE_DLL
23 #  if defined(__MSVC__) || defined(__MINGW32__)
24 #    if defined(DLLEXPORT) && !defined(DLLIMPORT)
25 #        define HUSKYEXT __declspec(dllexport)
26 #    else
27 #        define HUSKYEXT __declspec(dllimport)
28 #    endif /* DLLEXPORT */
29 #  else
30 #      define HUSKYEXT extern
31 #  endif
32 #else
33 #  define HUSKYEXT extern
34 #endif
35