HMSBEAGLE  1.0.0
libhmsbeagle/platform.h
00001 /*
00002  *  platform.h
00003  *  Definitions and compiler support for platform-specific features
00004  *
00005  * Copyright 2009 Phylogenetic Likelihood Working Group
00006  *
00007  * This file is part of BEAGLE.
00008  *
00009  * BEAGLE is free software: you can redistribute it and/or modify
00010  * it under the terms of the GNU Lesser General Public License as
00011  * published by the Free Software Foundation, either version 3 of
00012  * the License, or (at your option) any later version.
00013  *
00014  * BEAGLE is distributed in the hope that it will be useful,
00015  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00016  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00017  * GNU Lesser General Public License for more details.
00018  *
00019  * You should have received a copy of the GNU Lesser General Public
00020  * License along with BEAGLE.  If not, see
00021  * <http://www.gnu.org/licenses/>.
00022  * 
00023  * @author Aaron Darling
00024  */
00025 
00026 #ifndef __beagle_platform__
00027 #define __beagle_platform__
00028 
00029 #ifdef _WIN32
00030 // needed to export library symbols
00031 #ifdef _EXPORTING
00032 #define BEAGLE_DLLEXPORT __declspec(dllexport) 
00033 #else
00034 #define BEAGLE_DLLEXPORT __declspec(dllimport) 
00035 #endif
00036 /*
00037 // automatically include the appropriate beagle library
00038         #ifdef _WIN64
00039                 #ifdef _DEBUG
00040                 #pragma comment( lib, "libhmsbeagle64d" )
00041                 #else
00042                 #pragma comment( lib, "libhmsbeagle64" )
00043                 #endif
00044         #else
00045                 #ifdef _DEBUG
00046                 #pragma comment( lib, "libhmsbeagle32d" )
00047                 #else
00048                 #pragma comment( lib, "libhmsbeagle32" )
00049                 #endif
00050         #endif
00051 */
00052 
00053 #ifndef M_LN2
00054 /* math.h in VC++ doesn't seem to have this (how Microsoft is that?) */
00055 #define M_LN2 0.69314718055994530942
00056 #endif
00057 
00058 #else // not windows
00059 #define BEAGLE_DLLEXPORT
00060 #endif
00061 
00062 #endif
00063