/usr/include/plplot/pldll.h is in libplplot-dev 5.13.0+dfsg-6ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | #ifndef __PL_DLL_H
#define __PL_DLL_H
// In some cases, this header is #included without #including
// plplot_config.h which normally #defines ENABLE_DYNDRIVERS (or not).
#ifndef ENABLE_DYNDRIVERS
// Define if there is support for dynamically loaded drivers
#define ENABLE_DYNDRIVERS
#endif
#ifdef USINGDLL
#if defined ( WIN32 )
// Visual C/C++, Borland, MinGW and Watcom
#if defined ( __VISUALC__ ) || defined ( _MSC_VER ) || defined ( __BORLANDC__ ) || defined ( __GNUC__ ) || defined ( __WATCOMC__ )
#define PLDLLEXPORT __declspec( dllexport )
#define PLDLLIMPORT __declspec( dllimport )
#else
#define PLDLLEXPORT
#define PLDLLIMPORT
#endif
#elif defined ( __CYGWIN__ )
#define PLDLLEXPORT __declspec( dllexport )
#define PLDLLIMPORT __declspec( dllimport )
#elif defined ( __GNUC__ ) && __GNUC__ > 3
// Follow ideas in http://gcc.gnu.org/wiki/Visibility for GCC version 4.x
// The following forces exported symbols specifically designated with
// PLDLLEXPORT to be visible.
#define PLDLLEXPORT __attribute__ ( ( visibility( "default" ) ) )
#define PLDLLIMPORT
#endif
#endif
// For an unknown compiler or static built we clear the macros
#ifndef PLDLLEXPORT
#define PLDLLEXPORT
#define PLDLLIMPORT
#endif
// The IMPEXP macros will always be set to DLLIMPORT (even for
// the static library, but DLLIMPORT is empty in this case), if
// cmake didn't set the corresponding macro xxxx_EXPORTS when the
// corresponding library is built (DLLIMPEXP is set to DLLEXPORT
// then)
#if defined ( plplot_EXPORTS )
#define PLDLLIMPEXP PLDLLEXPORT
#define PLDLLIMPEXP_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP PLDLLIMPORT
#define PLDLLIMPEXP_DATA( type ) PLDLLIMPORT type
#endif
// for dynamic drivers set the macros correctly. If a shared library is built,
// but dyanmic drivers disabled, the driver dll macros are the same as the
// plplot dll macros
#ifdef ENABLE_DYNDRIVERS
#if defined ( aqt_EXPORTS ) || defined ( cairo_EXPORTS ) || defined ( cgm_EXPORTS ) || \
defined ( gd_EXPORTS ) || \
defined ( mem_EXPORTS ) || \
defined ( ntk_EXPORTS ) || defined ( null_EXPORTS ) || \
defined ( pdf_EXPORTS ) || defined ( plmeta_EXPORTS ) || defined ( ps_EXPORTS ) || \
defined ( pstex_EXPORTS ) || defined ( psttf_EXPORTS ) || defined ( svg_EXPORTS ) || \
defined ( tk_EXPORTS ) || defined ( tkwin_EXPORTS ) || \
defined ( wingcc_EXPORTS ) || defined ( wxwidgets_EXPORTS ) || defined ( xfig_EXPORTS ) || \
defined ( xwin_EXPORTS ) || defined ( qt_EXPORTS ) || defined ( wingdi_EXPORTS )
#define PLDLLIMPEXP_DRIVER PLDLLEXPORT
#define PLDLLIMPEXP_DRIVER_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_DRIVER PLDLLIMPORT
#define PLDLLIMPEXP_DRIVER_DATA( type ) PLDLLIMPORT type
#endif
#else
#define PLDLLIMPEXP_DRIVER PLDLLIMPEXP
#define PLDLLIMPEXP_DRIVER_DATA( type ) PLDLLIMPEXP_DATA( type )
#endif
#if defined ( plplotcxx_EXPORTS )
#define PLDLLIMPEXP_CXX PLDLLEXPORT
#define PLDLLIMPEXP_CXX_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_CXX PLDLLIMPORT
#define PLDLLIMPEXP_CXX_DATA( type ) PLDLLIMPORT type
#endif
#if defined ( plplotfortranc_EXPORTS )
#define PLDLLIMPEXP_FORTRANC PLDLLEXPORT
#define PLDLLIMPEXP_FORTRANC_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_FORTRANC PLDLLIMPORT
#define PLDLLIMPEXP_FORTRANC_DATA( type ) PLDLLIMPORT type
#endif
#if defined ( plplotwxwidgets_EXPORTS )
#define PLDLLIMPEXP_WX PLDLLEXPORT
#define PLDLLIMPEXP_WX_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_WX PLDLLIMPORT
#define PLDLLIMPEXP_WX_DATA( type ) PLDLLIMPORT type
#endif
// Note for the case when ENABLE_DYNDRIVERS is not defined, the
// libplplot build specifically includes the tclmatrix code (see
// cmake/modules/tk.cmake).
#if defined ( tclmatrix_EXPORTS ) || ( !defined ( ENABLE_DYNDRIVERS ) && defined ( plplot_EXPORTS ) )
#define PLDLLIMPEXP_TCLMAT PLDLLEXPORT
#define PLDLLIMPEXP_TCLMAT_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_TCLMAT PLDLLIMPORT
#define PLDLLIMPEXP_TCLMAT_DATA( type ) PLDLLIMPORT type
#endif
// Note for the case when ENABLE_DYNDRIVERS is not defined, the
// libplplot build specifically includes the plplottcltk code (see
// cmake/modules/tk.cmake).
#if defined ( plplottcltk_Main_EXPORTS ) || defined ( plplottcltk_EXPORTS ) || ( !defined ( ENABLE_DYNDRIVERS ) && defined ( plplot_EXPORTS ) )
#define PLDLLIMPEXP_TCLTK PLDLLEXPORT
#define PLDLLIMPEXP_TCLTK_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_TCLTK PLDLLIMPORT
#define PLDLLIMPEXP_TCLTK_DATA( type ) PLDLLIMPORT type
#endif
// Note for the case when ENABLE_DYNDRIVERS is not defined, the
// libplplot build specifically includes bindings/qt-gui/plqt.cpp (see
// cmake/modules/qt.cmake).
#if defined ( plplotqt_EXPORTS ) || ( !defined ( ENABLE_DYNDRIVERS ) && defined ( plplot_EXPORTS ) )
#define PLDLLIMPEXP_QT PLDLLEXPORT
#define PLDLLIMPEXP_QT_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_QT PLDLLIMPORT
#define PLDLLIMPEXP_QT_DATA( type ) PLDLLIMPORT type
#endif
#if defined ( plplot_pyqt4_EXPORTS )
#define PLDLLIMPEXP_PYQT4 PLDLLEXPORT
#define PLDLLIMPEXP_PYQT4_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_PYQT4 PLDLLIMPORT
#define PLDLLIMPEXP_PYQT4_DATA( type ) PLDLLIMPORT type
#endif
#if defined ( plplot_pyqt5_EXPORTS )
#define PLDLLIMPEXP_PYQT5 PLDLLEXPORT
#define PLDLLIMPEXP_PYQT5_DATA( type ) PLDLLEXPORT type
#else
#define PLDLLIMPEXP_PYQT5 PLDLLIMPORT
#define PLDLLIMPEXP_PYQT5_DATA( type ) PLDLLIMPORT type
#endif
#endif // __PL_DLL_H
|