libsmbios_c library
/builddir/build/BUILD/libsmbios-2.2.28/src/include/smbios_c/config/auto_link.h
Go to the documentation of this file.
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 */