1*b1cdbd2cSJim Jagielski /************************************************************** 2*b1cdbd2cSJim Jagielski * 3*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one 4*b1cdbd2cSJim Jagielski * or more contributor license agreements. See the NOTICE file 5*b1cdbd2cSJim Jagielski * distributed with this work for additional information 6*b1cdbd2cSJim Jagielski * regarding copyright ownership. The ASF licenses this file 7*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the 8*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance 9*b1cdbd2cSJim Jagielski * with the License. You may obtain a copy of the License at 10*b1cdbd2cSJim Jagielski * 11*b1cdbd2cSJim Jagielski * http://www.apache.org/licenses/LICENSE-2.0 12*b1cdbd2cSJim Jagielski * 13*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing, 14*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an 15*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*b1cdbd2cSJim Jagielski * KIND, either express or implied. See the License for the 17*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations 18*b1cdbd2cSJim Jagielski * under the License. 19*b1cdbd2cSJim Jagielski * 20*b1cdbd2cSJim Jagielski *************************************************************/ 21*b1cdbd2cSJim Jagielski 22*b1cdbd2cSJim Jagielski 23*b1cdbd2cSJim Jagielski 24*b1cdbd2cSJim Jagielski #ifndef _SAL_CONFIG_H_ 25*b1cdbd2cSJim Jagielski #define _SAL_CONFIG_H_ 26*b1cdbd2cSJim Jagielski 27*b1cdbd2cSJim Jagielski #ifdef __cplusplus 28*b1cdbd2cSJim Jagielski extern "C" { 29*b1cdbd2cSJim Jagielski #endif 30*b1cdbd2cSJim Jagielski 31*b1cdbd2cSJim Jagielski #ifdef __cplusplus 32*b1cdbd2cSJim Jagielski } 33*b1cdbd2cSJim Jagielski #endif 34*b1cdbd2cSJim Jagielski 35*b1cdbd2cSJim Jagielski #ifndef INCLUDED_STDLIB_H 36*b1cdbd2cSJim Jagielski #include <stdlib.h> 37*b1cdbd2cSJim Jagielski #define INCLUDED_STDLIB_H 38*b1cdbd2cSJim Jagielski #endif 39*b1cdbd2cSJim Jagielski 40*b1cdbd2cSJim Jagielski #ifdef WIN32 41*b1cdbd2cSJim Jagielski #define SAL_W32 42*b1cdbd2cSJim Jagielski #define SAL_DLLEXTENSION ".dll" 43*b1cdbd2cSJim Jagielski #define SAL_PRGEXTENSION ".exe" 44*b1cdbd2cSJim Jagielski #define SAL_PATHSEPARATOR ';' 45*b1cdbd2cSJim Jagielski #define SAL_PATHDELIMITER '\\' 46*b1cdbd2cSJim Jagielski #define SAL_CONFIGFILE( name ) name ".ini" 47*b1cdbd2cSJim Jagielski #define SAL_SYSCONFIGFILE( name ) name ".ini" 48*b1cdbd2cSJim Jagielski 49*b1cdbd2cSJim Jagielski #ifdef _MSC_VER 50*b1cdbd2cSJim Jagielski 51*b1cdbd2cSJim Jagielski #ifndef _USE_MATH_DEFINES 52*b1cdbd2cSJim Jagielski #define _USE_MATH_DEFINES // needed by Visual C++ for math constants 53*b1cdbd2cSJim Jagielski #endif 54*b1cdbd2cSJim Jagielski 55*b1cdbd2cSJim Jagielski /* warnings ought to be disabled using /wd:n option of msvc.net compiler */ 56*b1cdbd2cSJim Jagielski #if _MSC_VER < 1300 57*b1cdbd2cSJim Jagielski /* no performance warning: int to bool */ 58*b1cdbd2cSJim Jagielski #pragma warning( disable : 4800 ) 59*b1cdbd2cSJim Jagielski 60*b1cdbd2cSJim Jagielski /* No warning for: C++ Exception Specification ignored */ 61*b1cdbd2cSJim Jagielski #pragma warning( disable : 4290 ) 62*b1cdbd2cSJim Jagielski 63*b1cdbd2cSJim Jagielski #if OSL_DEBUG_LEVEL > 0 64*b1cdbd2cSJim Jagielski /* No warning for: identifier was truncated to '255' characters in the browser information */ 65*b1cdbd2cSJim Jagielski #pragma warning( disable : 4786 ) 66*b1cdbd2cSJim Jagielski #endif 67*b1cdbd2cSJim Jagielski #endif /* defined _MSC_VER < 1300 */ 68*b1cdbd2cSJim Jagielski 69*b1cdbd2cSJim Jagielski #endif /* defined _MSC_VER */ 70*b1cdbd2cSJim Jagielski 71*b1cdbd2cSJim Jagielski /* Provide ISO C99 compatible versions of snprint and vsnprintf */ 72*b1cdbd2cSJim Jagielski #ifdef __MINGW32__ 73*b1cdbd2cSJim Jagielski #define _SNPRINTF_DLLIMPORT 74*b1cdbd2cSJim Jagielski #endif 75*b1cdbd2cSJim Jagielski #ifndef _SNPRINTF_H 76*b1cdbd2cSJim Jagielski #include <systools/win32/snprintf.h> 77*b1cdbd2cSJim Jagielski #endif 78*b1cdbd2cSJim Jagielski 79*b1cdbd2cSJim Jagielski #endif /* defined WIN32 */ 80*b1cdbd2cSJim Jagielski 81*b1cdbd2cSJim Jagielski /* BR: 16bit fuer Borland-Compiler */ 82*b1cdbd2cSJim Jagielski #ifdef __BORLANDC__ 83*b1cdbd2cSJim Jagielski #define SAL_W16 84*b1cdbd2cSJim Jagielski #define SAL_DLLEXTENSION ".dll" 85*b1cdbd2cSJim Jagielski #endif 86*b1cdbd2cSJim Jagielski /* BR: 16bit fuer Borland-Compiler */ 87*b1cdbd2cSJim Jagielski 88*b1cdbd2cSJim Jagielski #ifdef OS2 89*b1cdbd2cSJim Jagielski #define SAL_OS2 90*b1cdbd2cSJim Jagielski #define SAL_DLLEXTENSION ".dll" 91*b1cdbd2cSJim Jagielski #define SAL_PRGEXTENSION ".exe" 92*b1cdbd2cSJim Jagielski #define SAL_PATHSEPARATOR ';' 93*b1cdbd2cSJim Jagielski #define SAL_PATHDELIMITER '/' 94*b1cdbd2cSJim Jagielski #define SAL_CONFIGFILE( name ) name ".ini" 95*b1cdbd2cSJim Jagielski #define SAL_SYSCONFIGFILE( name ) name ".ini" 96*b1cdbd2cSJim Jagielski #endif 97*b1cdbd2cSJim Jagielski 98*b1cdbd2cSJim Jagielski #if defined(SOLARIS) || defined(LINUX) || defined(NETBSD) || defined(FREEBSD) || defined(SCO) 99*b1cdbd2cSJim Jagielski #define SAL_UNX 100*b1cdbd2cSJim Jagielski #define SAL_DLLEXTENSION ".so" 101*b1cdbd2cSJim Jagielski #define SAL_DLLPREFIX "lib" 102*b1cdbd2cSJim Jagielski #define SAL_PRGEXTENSION ".bin" 103*b1cdbd2cSJim Jagielski #define SAL_PATHSEPARATOR ':' 104*b1cdbd2cSJim Jagielski #define SAL_PATHDELIMITER '/' 105*b1cdbd2cSJim Jagielski #define SAL_CONFIGFILE( name ) name "rc" 106*b1cdbd2cSJim Jagielski #define SAL_SYSCONFIGFILE( name ) "." name "rc" 107*b1cdbd2cSJim Jagielski #endif 108*b1cdbd2cSJim Jagielski 109*b1cdbd2cSJim Jagielski #ifdef MACOSX 110*b1cdbd2cSJim Jagielski #define SAL_UNX 111*b1cdbd2cSJim Jagielski #define SAL_DLLEXTENSION ".dylib" 112*b1cdbd2cSJim Jagielski #define SAL_DLLPREFIX "lib" 113*b1cdbd2cSJim Jagielski #define SAL_PRGEXTENSION ".bin" 114*b1cdbd2cSJim Jagielski #define SAL_PATHSEPARATOR ':' 115*b1cdbd2cSJim Jagielski #define SAL_PATHDELIMITER '/' 116*b1cdbd2cSJim Jagielski #define SAL_CONFIGFILE( name ) name "rc" 117*b1cdbd2cSJim Jagielski #define SAL_SYSCONFIGFILE( name ) "." name "rc" 118*b1cdbd2cSJim Jagielski #endif 119*b1cdbd2cSJim Jagielski 120*b1cdbd2cSJim Jagielski #ifdef HPUX 121*b1cdbd2cSJim Jagielski #define SAL_UNX 122*b1cdbd2cSJim Jagielski #define SAL_DLLEXTENSION ".sl" 123*b1cdbd2cSJim Jagielski #define SAL_DLLPREFIX "lib" 124*b1cdbd2cSJim Jagielski #define SAL_PRGEXTENSION ".bin" 125*b1cdbd2cSJim Jagielski #define SAL_CONFIGFILE( name ) name "rc" 126*b1cdbd2cSJim Jagielski #define SAL_SYSCONFIGFILE( name ) "." name "rc" 127*b1cdbd2cSJim Jagielski #endif 128*b1cdbd2cSJim Jagielski 129*b1cdbd2cSJim Jagielski #ifdef sun 130*b1cdbd2cSJim Jagielski #undef sun 131*b1cdbd2cSJim Jagielski #define sun sun 132*b1cdbd2cSJim Jagielski #endif 133*b1cdbd2cSJim Jagielski 134*b1cdbd2cSJim Jagielski /* This is to work around a gcc 3.3 error that fixing actually breaks other 135*b1cdbd2cSJim Jagielski * compilers. This will create a dummy variable specifically for gcc 3.3 that 136*b1cdbd2cSJim Jagielski * allows it to compile and not break the others. Other compilers may follow 137*b1cdbd2cSJim Jagielski * with this eror later. */ 138*b1cdbd2cSJim Jagielski #if defined __GNUC__ 139*b1cdbd2cSJim Jagielski #if ((__GNUC__ == 3) && (__GNUC_MINOR__ > 2)) 140*b1cdbd2cSJim Jagielski # define SAL_ISO_CONST const 141*b1cdbd2cSJim Jagielski #else 142*b1cdbd2cSJim Jagielski # define SAL_ISO_CONST 143*b1cdbd2cSJim Jagielski #endif 144*b1cdbd2cSJim Jagielski #endif 145*b1cdbd2cSJim Jagielski 146*b1cdbd2cSJim Jagielski #endif /*_SAL_CONFIG_H_ */ 147*b1cdbd2cSJim Jagielski 148*b1cdbd2cSJim Jagielski 149