19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* File used to define macros:
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * _STLP_USE_DYNAMIC_LIB: To signal use STLport as a dll or build of the
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *                        STLport dlls.
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * _STLP_USE_STATIC_LIB: To signal use of STLport as a static lib or build of
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *                       the STLport static libs.
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * _STLP_USING_CROSS_NATIVE_RUNTIME_LIB: Signal that we are using a native runtime
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *                                       in a version different from the STLport one.
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * If _STLP_USE_DYNAMIC_LIB or _STLP_USE_STATIC_LIB is alreday defined it means that
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * user forces use of a specific version. In this case _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * will surely be defined otherwise there is no need to force macro defines.
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Before including this file the compiler must define:
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * _STLP_DLL: If we are building a dll
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * _STLP_RUNTIME_DLL: If we are using native runtime as a dll
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if defined (__BUILDING_STLPORT)
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef _STLP_USE_DYNAMIC_LIB
189720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef _STLP_USE_STATIC_LIB
199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if defined (_STLP_DLL)
209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* We are building the STLport dll */
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_USE_DYNAMIC_LIB
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    if !defined (_STLP_RUNTIME_DLL)
239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
249720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  else
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_USE_STATIC_LIB
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    if defined (_STLP_RUNTIME_DLL)
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else
329720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NO_IOSTREAMS)
339720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* STLport use only depend on _STLP_RUNTIME_DLL as we are replacing
349720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * the native runtime.
359720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
369720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    if defined (_STLP_RUNTIME_DLL)
379720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      if !defined (_STLP_USE_STATIC_LIB)
389720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#        if !defined (_STLP_USE_DYNAMIC_LIB)
399720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#          define _STLP_USE_DYNAMIC_LIB
409720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#        endif
419720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      else
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* The user is forcing use of STLport as a dynamic library. We signal it so
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * that the STLport namespace will be modify to report such a combination
449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * and force the user to link with the rebuilt STLport library.
459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#        define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      endif
489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    else
499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      if !defined(_STLP_USE_DYNAMIC_LIB)
509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#        if !defined (_STLP_USE_STATIC_LIB)
519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#          define _STLP_USE_STATIC_LIB
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#        endif
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      else
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* Idem previous remark but the user forces use of the static native runtime.
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#        define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#      endif
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    endif
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  else
609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* If we do not build and use STLport libs we consider that we are in a static lib
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * mode as only dynamic lib needs additional export/import specifier.
629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_USE_STATIC_LIB
649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* we don't have a static native runtime library on evc3/evc4 */
689720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifdef _STLP_WCE
699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef _STLP_USING_CROSS_NATIVE_RUNTIME_LIB
709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
71e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott
72e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#if !defined (_STLP_USE_DYNAMIC_LIB) && !defined (_STLP_USE_STATIC_LIB)
73e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  error Unknown STLport usage config (dll/lib?)
74e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#endif
75