configure.in.stl
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. dnl
  2. dnl stl is a pain:
  3. dnl someone decided to use namespaces
  4. dnl
  5. dnl MIPSpro Compiler: Version 7.2.1 on Irix 6.5
  6. dnl wants "use namespace stl"
  7. dnl As of 25-Jul-03 we NO LONGER support that.
  8. dnl
  9. dnl The standard seems to be "use namespace std"
  10. dnl (supposedly gcc 3.0 works this way).
  11. dnl
  12. dnl As of gcc 3.2, using namespace std is REQUIRED,
  13. dnl and not just for stl, but for streams and other standard C++ stuff.
  14. dnl
  15. dnl Sigh.
  16. dnl
  17. dnl
  18. AC_LANG_SAVE
  19. AC_LANG_CPLUSPLUS
  20. cpp_namespace=no
  21. stl_namespace=no
  22. if test x$cpp_namespace = xno
  23. then
  24. AC_MSG_CHECKING(if C++ libraries work without any namespace)
  25. AC_TRY_COMPILE(
  26. #include <iostream>
  27. ,
  28. cout.fail();
  29. ,
  30. AC_MSG_RESULT(yes)
  31. cpp_namespace="none"
  32. ,
  33. AC_MSG_RESULT(no)
  34. )
  35. fi
  36. dnl
  37. if test x$cpp_namespace = xno
  38. then
  39. AC_MSG_CHECKING(if C++ libraries work with namespace std)
  40. AC_TRY_COMPILE(
  41. #include <iostream>
  42. using namespace std;
  43. ,
  44. cout.fail();
  45. ,
  46. AC_MSG_RESULT(yes)
  47. cpp_namespace=std
  48. ,
  49. AC_MSG_RESULT(no)
  50. )
  51. fi
  52. dnl
  53. dnl
  54. dnl do same check for stl
  55. dnl
  56. if test x$stl_namespace = xno
  57. then
  58. AC_MSG_CHECKING(if STL works without any namespace)
  59. AC_TRY_COMPILE(
  60. #include <list>
  61. ,
  62. list<int> test;
  63. ,
  64. AC_MSG_RESULT(yes)
  65. stl_namespace="none"
  66. ,
  67. AC_MSG_RESULT(no)
  68. )
  69. fi
  70. dnl
  71. if test x$stl_namespace = xno
  72. then
  73. AC_MSG_CHECKING(if STL works with namespace std)
  74. AC_TRY_COMPILE(
  75. #include <list>
  76. using namespace std;
  77. ,
  78. list<int> test;
  79. ,
  80. AC_MSG_RESULT(yes)
  81. stl_namespace=std
  82. ,
  83. AC_MSG_RESULT(no)
  84. )
  85. fi
  86. dnl
  87. if test x$stl_namespace = xno
  88. then
  89. AC_MSG_CHECKING(if STL works with namespace stl)
  90. AC_TRY_COMPILE(
  91. #include <list>
  92. using namespace stl;
  93. ,
  94. list<int> test;
  95. ,
  96. AC_MSG_RESULT(yes)
  97. stl_namespace=stl
  98. ,
  99. AC_MSG_RESULT(no)
  100. )
  101. fi
  102. AC_LANG_RESTORE
  103. AC_MSG_CHECKING(should use STL)
  104. AC_ARG_ENABLE(stl,
  105. [--enable-stl include code that needs the Standard Template Library],[
  106. enable_stl=$enableval
  107. AC_MSG_RESULT([user specified $enable_stl])
  108. ],[
  109. if test x$stl_namespace = xno
  110. then
  111. enable_stl=no
  112. AC_MSG_RESULT([no, couldn't find STL])
  113. else
  114. if test x$stl_namespace != x$cpp_namespace
  115. then
  116. dnl Give up, too hard.
  117. dnl MIPS people can upgrade their compiler.
  118. enable_stl=no
  119. AC_MSG_RESULT([std/STL namespaces are too hard for your system, abandoning STL])
  120. else
  121. enable_stl=yes
  122. AC_MSG_RESULT([yes])
  123. fi
  124. fi
  125. ])
  126. if test x$enable_stl = xno
  127. then
  128. V_STLOBJ=""
  129. V_NS_TCL_LIB_STL=""
  130. else
  131. V_STLOBJ='$(OBJ_STL)'
  132. V_NS_TCL_LIB_STL='$(NS_TCL_LIB_STL)'
  133. AC_DEFINE(HAVE_STL)
  134. fi
  135. if test x$cpp_namespace != xnone
  136. then
  137. AC_DEFINE(CPP_REQUIRES_NAMESPACE)
  138. fi
  139. CPP_NAMESPACE=$cpp_namespace
  140. AC_SUBST(CPP_NAMESPACE)
  141. dnl this also seems to require that the makefile include
  142. dnl -DCPP_NAMESPACE=@CPP_NAMESPACE@ in the compilation flags :-(