libsmbios_c library
|
00001 /* vim:expandtab:autoindent:tabstop=4:shiftwidth=4:filetype=c:cindent: 00002 */ 00003 /* 00004 * Copyright (C) 2005 Dell Inc. 00005 * by Michael Brown <Michael_E_Brown@dell.com> 00006 * Licensed under the Open Software License version 2.1 00007 * 00008 * Alternatively, you can redistribute it and/or modify 00009 * it under the terms of the GNU General Public License as published 00010 * by the Free Software Foundation; either version 2 of the License, 00011 * or (at your option) any later version. 00012 00013 * This program is distributed in the hope that it will be useful, but 00014 * WITHOUT ANY WARRANTY; without even the implied warranty of 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00016 * See the GNU General Public License for more details. 00017 */ 00018 00019 /* safe to include in C headers */ 00020 00021 #ifndef LIBSMBIOS_C_AUTO_LINK_H_INCLUDED 00022 #define LIBSMBIOS_C_AUTO_LINK_H_INCLUDED 00023 00024 #ifdef __cplusplus 00025 # ifndef LIBSMBIOS_C_CONFIG_H 00026 # include "smbios_c/config/get_config.h" 00027 # endif 00028 #elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__) 00029 /* 00030 * C language compatability (no, honestly) 00031 */ 00032 # define LIBSMBIOS_C_MSVC _MSC_VER 00033 # define LIBSMBIOS_C_STRINGIZE(X) LIBSMBIOS_C_DO_STRINGIZE(X) 00034 # define LIBSMBIOS_C_DO_STRINGIZE(X) #X 00035 #endif 00036 00037 #if (defined(LIBSMBIOS_C_PLATFORM_WIN32) || defined(LIBSMBIOS_C_PLATFORM_WIN64)) && defined(_MSC_VER) 00038 // The rest of the code in this file is used to automatically select which 00039 // version libsmbios library to link to. 00040 00041 // libsmbios-vc6 // single-thread (DLL) (non-debug) XXX 00042 // libsmbios-vc6-mt // multi-thread (DLL) (non-debug) mt-dll 00043 // libsmbios-vc6-gd // single-thread (DLL) (debug) XXX 00044 // libsmbios-vc6-mt-gd // multi-thread (DLL) (debug) d-mt-dll 00045 // libsmbios-vc6-s // single-thread (non-DLL) (non-debug) st 00046 // libsmbios-vc6-mt-s // multi-thread (non-DLL) (non-debug) mt 00047 // libsmbios-vc6-sgd // single-thread (non-DLL) (debug) d-st 00048 // libsmbios-vc6-mt-sgd // multi-thread (non-DLL) (debug) d-mt 00049 00050 00051 00052 #if !defined(LIBSMBIOS_C_ALL_NO_LIB) && !defined(LIBSMBIOS_SOURCE) 00053 00054 00055 #if defined(LIBSMBIOS_C_ALL_DYN_LINK) 00056 # define LIBSMBIOS_C_DYN_LINK 00057 #endif 00058 00059 // ============================== 00060 // 00061 // select toolset if not defined already: 00062 // 00063 #ifndef LIBSMBIOS_C_LIB_TOOLSET 00064 #if defined(LIBSMBIOS_C_MSVC) && (LIBSMBIOS_C_MSVC == 1200) 00065 00066 // vc6: 00067 # define LIBSMBIOS_C_LIB_TOOLSET "vc6" 00068 00069 #elif defined(LIBSMBIOS_C_MSVC) && (LIBSMBIOS_C_MSVC == 1300) 00070 00071 // vc7: 00072 # define LIBSMBIOS_C_LIB_TOOLSET "vc7" 00073 00074 #elif defined(LIBSMBIOS_C_MSVC) && (LIBSMBIOS_C_MSVC == 1310) 00075 00076 // vc71: 00077 # define LIBSMBIOS_C_LIB_TOOLSET "vc71" 00078 00079 #elif defined(LIBSMBIOS_C_MSVC) && (LIBSMBIOS_C_MSVC >= 1400) 00080 00081 // vc80: 00082 # define LIBSMBIOS_C_LIB_TOOLSET "vc80" 00083 #endif 00084 #endif 00085 00086 00087 // ============================== 00088 // 00089 // select linkage opt: 00090 // 00091 #if (defined(_DLL) || defined(_RTLDLL)) && defined(LIBSMBIOS_C_DYN_LINK) 00092 # define LIBSMBIOS_C_LIB_PREFIX 00093 #elif defined(LIBSMBIOS_C_DYN_LINK) 00094 # error "Mixing a dll boost library with a static runtime is a really bad idea..." 00095 #else 00096 # define LIBSMBIOS_C_LIB_PREFIX "lib" 00097 #endif 00098 00099 00100 // ============================== 00101 // 00102 // select thread opt: 00103 // 00104 #if defined(_MT) || defined(__MT__) 00105 # define LIBSMBIOS_C_LIB_THREAD_OPT "-mt" 00106 #else 00107 # define LIBSMBIOS_C_LIB_THREAD_OPT 00108 #endif 00109 00110 // ============================== 00111 // 00112 // select runtime opt: 00113 // 00114 #if defined(_MSC_VER) || defined(__MWERKS__) 00115 # ifdef _DLL 00116 # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) 00117 00118 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) 00119 # define LIBSMBIOS_C_LIB_RT_OPT "-gdp" 00120 # elif defined(_DEBUG) 00121 # define LIBSMBIOS_C_LIB_RT_OPT "-gdp" 00122 # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") 00123 # error "Build options aren't compatible with pre-built libraries" 00124 # else 00125 # define LIBSMBIOS_C_LIB_RT_OPT "-p" 00126 # endif 00127 00128 # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) 00129 00130 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) 00131 # define LIBSMBIOS_C_LIB_RT_OPT "-gdpn" 00132 # elif defined(_DEBUG) 00133 # define LIBSMBIOS_C_LIB_RT_OPT "-gdpn" 00134 # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") 00135 # error "Build options aren't compatible with pre-built libraries" 00136 # else 00137 # define LIBSMBIOS_C_LIB_RT_OPT "-pn" 00138 # endif 00139 00140 # else 00141 00142 # if defined(_DEBUG) 00143 # define LIBSMBIOS_C_LIB_RT_OPT "-gd" 00144 # else 00145 # define LIBSMBIOS_C_LIB_RT_OPT 00146 # endif 00147 00148 # endif 00149 # else 00150 00151 # if (defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION)) && (defined(_STLP_OWN_IOSTREAMS) || defined(__STL_OWN_IOSTREAMS)) 00152 00153 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) 00154 # define LIBSMBIOS_C_LIB_RT_OPT "-sgdp" 00155 # elif defined(_DEBUG) 00156 # define LIBSMBIOS_C_LIB_RT_OPT "-sgdp" 00157 # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") 00158 # error "Build options aren't compatible with pre-built libraries" 00159 # else 00160 # define LIBSMBIOS_C_LIB_RT_OPT "-sp" 00161 # endif 00162 00163 # elif defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) 00164 00165 # if defined(_DEBUG) && (defined(__STL_DEBUG) || defined(_STLP_DEBUG)) 00166 # define LIBSMBIOS_C_LIB_RT_OPT "-sgdpn" 00167 # elif defined(_DEBUG) 00168 # define LIBSMBIOS_C_LIB_RT_OPT "-sgdpn" 00169 # pragma message("warning: STLPort debug versions are built with /D_STLP_DEBUG=1") 00170 # error "Build options aren't compatible with pre-built libraries" 00171 # else 00172 # define LIBSMBIOS_C_LIB_RT_OPT "-spn" 00173 # endif 00174 00175 # else 00176 00177 # if defined(_DEBUG) 00178 # define LIBSMBIOS_C_LIB_RT_OPT "-sgd" 00179 # else 00180 # define LIBSMBIOS_C_LIB_RT_OPT "-s" 00181 # endif 00182 00183 # endif 00184 00185 # endif 00186 #endif 00187 00188 #define LIBSMBIOS_C_LIB_NAME smbios_c 00189 00190 #ifndef LIBSMBIOS_C_AUTO_LINK_NOMANGLE 00191 # pragma comment(lib, LIBSMBIOS_C_LIB_PREFIX LIBSMBIOS_C_STRINGIZE(LIBSMBIOS_C_LIB_NAME) "-" LIBSMBIOS_C_LIB_TOOLSET LIBSMBIOS_C_LIB_THREAD_OPT LIBSMBIOS_C_LIB_RT_OPT ".lib" ) 00192 # ifdef LIBSMBIOS_C_LIB_DIAGNOSTIC 00193 # pragma message ("Automatically Linking to lib file: " LIBSMBIOS_C_LIB_PREFIX LIBSMBIOS_C_STRINGIZE(LIBSMBIOS_C_LIB_NAME) "-" LIBSMBIOS_C_LIB_TOOLSET LIBSMBIOS_C_LIB_THREAD_OPT LIBSMBIOS_C_LIB_RT_OPT ".lib") 00194 # endif 00195 #else 00196 # pragma comment(lib, LIBSMBIOS_C_STRINGIZE(LIBSMBIOS_C_LIB_NAME) ".lib" ) 00197 # ifdef LIBSMBIOS_C_LIB_DIAGNOSTIC 00198 # pragma message ("Automatically Linking to lib file: " LIBSMBIOS_C_STRINGIZE(LIBSMBIOS_C_LIB_NAME) ".lib") 00199 # endif 00200 #endif 00201 00202 // //#include <config/auto_link.h> 00203 #endif /* !LIBSMBIOS_C_ALL_NO_LIB && ! LIBSMBIOS_C_SOURCE */ 00204 #endif /* LIBSMBIOS_C_PLATFORM_WIN32 */ 00205 00206 #ifdef LIBSMBIOS_C_LIB_PREFIX 00207 # undef LIBSMBIOS_C_LIB_PREFIX 00208 #endif 00209 #if defined(LIBSMBIOS_C_LIB_NAME) 00210 # undef LIBSMBIOS_C_LIB_NAME 00211 #endif 00212 #if defined(LIBSMBIOS_C_LIB_TOOLSET) 00213 # undef LIBSMBIOS_C_LIB_TOOLSET 00214 #endif 00215 #if defined(LIBSMBIOS_C_LIB_THREAD_OPT) 00216 # undef LIBSMBIOS_C_LIB_THREAD_OPT 00217 #endif 00218 #if defined(LIBSMBIOS_C_LIB_RT_OPT) 00219 # undef LIBSMBIOS_C_LIB_RT_OPT 00220 #endif 00221 #if defined(LIBSMBIOS_C_LIB_LINK_OPT) 00222 # undef LIBSMBIOS_C_LIB_LINK_OPT 00223 #endif 00224 #if defined(LIBSMBIOS_C_LIB_DEBUG_OPT) 00225 # undef LIBSMBIOS_C_LIB_DEBUG_OPT 00226 #endif 00227 #if defined(LIBSMBIOS_C_DYN_LINK) 00228 # undef LIBSMBIOS_C_DYN_LINK 00229 #endif 00230 #if defined(LIBSMBIOS_C_AUTO_LINK_NOMANGLE) 00231 # undef LIBSMBIOS_C_AUTO_LINK_NOMANGLE 00232 #endif 00233 00234 #endif /* AUTO_LINK_H */