jack2 codebase
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.4KB

  1. /*
  2. Copyright (C) 2010 Paul Davis
  3. This program is free software; you can redistribute it and/or modify
  4. it under the terms of the GNU Lesser General Public License as published by
  5. the Free Software Foundation; either version 2.1 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU Lesser General Public License for more details.
  11. You should have received a copy of the GNU Lesser General Public License
  12. along with this program; if not, write to the Free Software
  13. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  14. */
  15. #ifndef __weakmacros_h__
  16. #define __weakmacros_h__
  17. /*************************************************************
  18. * NOTE: JACK_WEAK_EXPORT ***MUST*** be used on every function
  19. * added to the JACK API after the 0.116.2 release.
  20. *
  21. * Functions that predate this release are marked with
  22. * JACK_WEAK_OPTIONAL_EXPORT which can be defined at compile
  23. * time in a variety of ways. The default definition is empty,
  24. * so that these symbols get normal linkage. If you wish to
  25. * use all JACK symbols with weak linkage, include
  26. * <jack/weakjack.h> before jack.h.
  27. *************************************************************/
  28. #ifndef JACK_WEAK_EXPORT
  29. #ifdef __GNUC__
  30. /* JACK_WEAK_EXPORT needs to be a macro which
  31. expands into a compiler directive. If non-null, the directive
  32. must tell the compiler to arrange for weak linkage of
  33. the symbol it used with. For this to work full may
  34. require linker arguments in the client as well.
  35. */
  36. #ifdef WIN32
  37. /*
  38. Not working with __declspec(dllexport) so normal linking
  39. Linking with JackWeakAPI.cpp will be the preferred way.
  40. */
  41. #define JACK_WEAK_EXPORT
  42. #else
  43. #define JACK_WEAK_EXPORT __attribute__((weak))
  44. #endif
  45. #else
  46. /* Add other things here for non-gcc platforms */
  47. #ifdef WIN32
  48. #define JACK_WEAK_EXPORT
  49. #endif
  50. #endif
  51. #endif
  52. #ifndef JACK_OPTIONAL_WEAK_EXPORT
  53. #define JACK_OPTIONAL_WEAK_EXPORT
  54. #endif
  55. #ifndef JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
  56. #ifdef __GNUC__
  57. #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT __attribute__((__deprecated__))
  58. #else
  59. /* Add other things here for non-gcc platforms */
  60. #ifdef WIN32
  61. #define JACK_OPTIONAL_WEAK_DEPRECATED_EXPORT
  62. #endif
  63. #endif /* __GNUC__ */
  64. #endif
  65. #endif /* __weakmacros_h__ */