CXXR (C++ R) API
libextern.h
1 /*CXXR $Id: libextern.h 1348 2013-02-25 17:49:03Z arr $
2  *CXXR
3  *CXXR This file is part of CXXR, a project to refactor the R interpreter
4  *CXXR into C++. It may consist in whole or in part of program code and
5  *CXXR documentation taken from the R project itself, incorporated into
6  *CXXR CXXR (and possibly MODIFIED) under the terms of the GNU General Public
7  *CXXR Licence.
8  *CXXR
9  *CXXR CXXR is Copyright (C) 2008-13 Andrew R. Runnalls, subject to such other
10  *CXXR copyrights and copyright restrictions as may be stated below.
11  *CXXR
12  *CXXR CXXR is not part of the R project, and bugs and other issues should
13  *CXXR not be reported via r-bugs or other R project channels; instead refer
14  *CXXR to the CXXR website.
15  *CXXR */
16 
17 /*
18  * R : A Computer Language for Statistical Data Analysis
19  * Copyright (C) 2001, 2004 The R Core Team.
20  *
21  * This program is free software; you can redistribute it and/or modify
22  * it under the terms of the GNU Lesser General Public License as published by
23  * the Free Software Foundation; either version 2.1 of the License, or
24  * (at your option) any later version.
25  *
26  * This program is distributed in the hope that it will be useful,
27  * but WITHOUT ANY WARRANTY; without even the implied warranty of
28  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29  * GNU Lesser General Public License for more details.
30  *
31  * You should have received a copy of the GNU Lesser General Public License
32  * along with this program; if not, a copy is available at
33  * http://www.r-project.org/Licenses/
34  */
35 
36 /* don't disallow including this one more than once */
37 
38 /* This is intended to be called from other header files, so not callable
39  from C++ */
40 
41 #undef LibExtern
42 #undef LibImport
43 #undef LibExport
44 
45 /* Don't try to include CYGWIN here: decorating some symbols breaks
46  the auto-export that it relies on, even if R_DLL_BUILD were set. */
47 #ifdef WIN32 /* WIN32 as does not depend on config.h */
48 #define LibImport __declspec(dllimport)
49 #define LibExport __declspec(dllexport)
50 #else
51 #define LibImport
52 #define LibExport
53 #endif
54 
55 #if defined(R_DLL_BUILD)
56 #define LibExtern extern
57 #else
58 #define LibExtern extern LibImport
59 #endif