Jack2 1.9.8
|
00001 /* 00002 Copyright (C) 2004-2005 Grame 00003 00004 This program is free software; you can redistribute it and/or modify 00005 it under the terms of the GNU General Public License as published by 00006 the Free Software Foundation; either version 2 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 General Public License for more details. 00013 00014 You should have received a copy of the GNU General Public License 00015 along with this program; if not, write to the Free Software 00016 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00017 00018 */ 00019 00020 #ifndef __JackCompilerDeps_POSIX__ 00021 #define __JackCompilerDeps_POSIX__ 00022 00023 #include "JackConstants.h" 00024 00025 #if __GNUC__ 00026 #define PRE_PACKED_STRUCTURE 00027 00028 #ifndef POST_PACKED_STRUCTURE 00029 /* POST_PACKED_STRUCTURE needs to be a macro which 00030 expands into a compiler directive. The directive must 00031 tell the compiler to arrange the preceding structure 00032 declaration so that it is packed on byte-boundaries rather 00033 than use the natural alignment of the processor and/or 00034 compiler. 00035 */ 00036 #if (__GNUC__< 4) /* Does not seem to work with GCC 3.XX serie */ 00037 #define POST_PACKED_STRUCTURE 00038 #elif defined(JACK_32_64) 00039 #define POST_PACKED_STRUCTURE __attribute__((__packed__)) 00040 #else 00041 #define POST_PACKED_STRUCTURE 00042 #endif 00043 #endif 00044 #define MEM_ALIGN(x,y) x __attribute__((aligned(y))) 00045 #define LIB_EXPORT __attribute__((visibility("default"))) 00046 #ifdef SERVER_SIDE 00047 #if (__GNUC__< 4) 00048 #define SERVER_EXPORT 00049 #else 00050 #define SERVER_EXPORT __attribute__((visibility("default"))) 00051 #endif 00052 #else 00053 #define SERVER_EXPORT __attribute__((visibility("hidden"))) 00054 #endif 00055 #else 00056 #define MEM_ALIGN(x,y) x 00057 #define LIB_EXPORT 00058 #define SERVER_EXPORT 00059 /* Add other things here for non-gcc platforms for PRE and POST_PACKED_STRUCTURE */ 00060 #endif 00061 00062 #endif 00063