Jack2 1.9.6

JackCompilerDeps_os.h

00001 /*
00002  Copyright (C) 2004-2008 Grame
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 
00021 #ifndef __JackCompilerDeps_WIN32__
00022 #define __JackCompilerDeps_WIN32__
00023 
00024 #if __GNUC__
00025     #ifndef POST_PACKED_STRUCTURE
00026         /* POST_PACKED_STRUCTURE needs to be a macro which
00027         expands into a compiler directive. The directive must
00028         tell the compiler to arrange the preceding structure
00029         declaration so that it is packed on byte-boundaries rather
00030         than use the natural alignment of the processor and/or
00031         compiler.
00032         */
00033         #if (__GNUC__< 4)  /* Does not seem to work with GCC 3.XX serie */
00034             #define POST_PACKED_STRUCTURE
00035         #elif defined(JACK_32_64)
00036             #define POST_PACKED_STRUCTURE __attribute__((__packed__))
00037         #else
00038             #define POST_PACKED_STRUCTURE
00039         #endif
00040     #endif
00041         #define MEM_ALIGN(x,y) x __attribute__((aligned(y)))
00042         #define EXPORT __declspec(dllexport)
00043     #ifdef SERVER_SIDE
00044         #define SERVER_EXPORT __declspec(dllexport)
00045     #else
00046         #define SERVER_EXPORT
00047     #endif
00048 #else
00049         #define MEM_ALIGN(x,y) x
00050         #define EXPORT __declspec(dllexport)
00051     #ifdef SERVER_SIDE
00052         #define SERVER_EXPORT __declspec(dllexport)
00053     #else
00054         #define SERVER_EXPORT
00055     #endif
00056 #endif
00057 
00058 #endif