Jack2  1.9.7
weakmacros.h
00001 /*
00002     Copyright (C) 2010 Paul Davis
00003 
00004     This program is free software; you can redistribute it and/or modify
00005     it under the terms of the GNU Lesser General Public License as published by
00006     the Free Software Foundation; either version 2.1 of the License, or
00007     (at your option) any later version.
00008 
00009     This program is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012     GNU Lesser General Public License for more details.
00013 
00014     You should have received a copy of the GNU Lesser General Public License
00015     along with this program; if not, write to the Free Software
00016     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00017 
00018 */
00019 
00020 #ifndef __weakmacros_h__
00021 #define __weakmacros_h__
00022 
00023 /*************************************************************
00024  * NOTE: JACK_WEAK_EXPORT ***MUST*** be used on every function
00025  * added to the JACK API after the 0.116.2 release.
00026  *
00027  * Functions that predate this release are marked with
00028  * JACK_WEAK_OPTIONAL_EXPORT which can be defined at compile
00029  * time in a variety of ways. The default definition is empty,
00030  * so that these symbols get normal linkage. If you wish to
00031  * use all JACK symbols with weak linkage, include
00032  * <jack/weakjack.h> before jack.h.
00033  *************************************************************/
00034 
00035 #ifndef JACK_WEAK_EXPORT
00036 #ifdef __GNUC__
00037 /* JACK_WEAK_EXPORT needs to be a macro which
00038    expands into a compiler directive. If non-null, the directive
00039    must tell the compiler to arrange for weak linkage of
00040    the symbol it used with. For this to work full may
00041    require linker arguments in the client as well.
00042 */
00043 #define JACK_WEAK_EXPORT __attribute__((weak))
00044 #else
00045 /* Add other things here for non-gcc platforms */
00046 
00047 #ifdef WIN32
00048 #define JACK_WEAK_EXPORT
00049 #endif
00050 
00051 #endif
00052 #endif
00053 
00054 #ifndef JACK_OPTIONAL_WEAK_EXPORT
00055 #define JACK_OPTIONAL_WEAK_EXPORT
00056 #endif
00057 
00058 #ifndef JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
00059 #ifdef __GNUC__
00060 #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT __attribute__((__deprecated__))
00061 #else
00062 /* Add other things here for non-gcc platforms */
00063 
00064 #ifdef WIN32
00065 #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
00066 #endif
00067 
00068 #endif /* __GNUC__ */
00069 #endif
00070 
00071 #endif /* __weakmacros_h__ */