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

通讯编程

开发平台:

Visual C++

  1. #--------------------------------------------------------------------
  2. # The statements below define a collection of symbols related to
  3. # dynamic loading and shared libraries:
  4. #
  5. # DL_LIBS - Library file(s) to include in tclsh and other base
  6. # applications in order for the "load" command to work.
  7. # DL_LD_FLAGS - Flags to pass to the compiler when linking object
  8. # files into an executable application binary such
  9. # as tclsh.
  10. # DL_LD_SEARCH_FLAGS-Flags to pass to ld, such as "-R /usr/local/tcl/lib"
  11. # that tell the run-time dynamic linker where to look
  12. # for shared libraries such as libtcl.so.  Depends on
  13. # the variable SHLIB_RUNTIME_DIR in the Makefile.
  14. # SHLIB_CFLAGS - Flags to pass to cc when compiling the components
  15. # of a shared library (may request position-independent
  16. # code, among other things).
  17. # SHLIB_LD - Base command to use for combining object files
  18. # into a shared library.
  19. # SHLIB_LD_LIBS - Dependent libraries for the linker to scan when
  20. # creating shared libraries.  This symbol typically
  21. # goes at the end of the "ld" commands that build
  22. # shared libraries. The value of the symbol is
  23. # "$V_LIB" if all of the dependent libraries should
  24. # be specified when creating a shared library.  If
  25. # dependent libraries should not be specified (as on
  26. # SunOS 4.x, where they cause the link to fail, or in
  27. # general if Tcl and Tk aren't themselves shared
  28. # libraries), then this symbol has an empty string
  29. # as its value.
  30. # SHLIB_SUFFIX - Suffix to use for the names of dynamically loadable
  31. # extensions.  An empty string means we don't know how
  32. # to use shared libraries on this platform.
  33. #--------------------------------------------------------------------
  34. ### XXX: AC_ARG_ENABLE(shlib, --enable-shlib          enable Makefile flags
  35. ###for building shared libraries, , enable_shlib="no")
  36. AC_ARG_ENABLE(shlib, --enable-shlib          enable Makefile targets for mash shared libraries, , enable_shlib="no")
  37. # Step 1: set the variable "system" to hold the name and version number
  38. # for the system.  This can usually be done via the "uname" command, but
  39. # there are a few systems, like Next, where this doesn't work.
  40. AC_MSG_CHECKING([system version (for dynamic loading)])
  41. if test -f /usr/lib/NextStep/software_version; then
  42.     system=NEXTSTEP-`awk '/3/,/3/' /usr/lib/NextStep/software_version`
  43. else
  44.     system=`uname -s`-`uname -r`
  45.     if test "$?" -ne 0 ; then
  46. AC_MSG_RESULT([unknown (can't find uname command)])
  47. system=unknown
  48.     else
  49. # Special check for weird MP-RAS system (uname returns weird
  50. # results, and the version is kept in special file).
  51.     
  52. if test -r /etc/.relid -a "X`uname -n`" = "X`uname -s`" ; then
  53.     system=MP-RAS-`awk '{print $3}' /etc/.relid'`
  54. fi
  55. if test "`uname -s`" = "AIX" ; then
  56.     system=AIX-`uname -v`.`uname -r`
  57. fi
  58. AC_MSG_RESULT($system)
  59.     fi
  60. fi
  61. # Step 2: check for existence of -ldl library.  This is needed because
  62. # Linux can use either -ldl or -ldld for dynamic loading.
  63. AC_CHECK_LIB(dl, dlopen, have_dl=yes, have_dl=no)
  64. if test -z "$V_TCLSH"
  65. then
  66. local_TCLSH=tclsh
  67. else
  68. local_TCLSH=$V_TCLSH
  69. fi
  70. # Step 3: set configuration options based on system name and version.
  71. case $system in
  72.     AIX-*)
  73. enable_dl="no"
  74. ;;
  75.     BSD/OS-2.1*|BSD/OS-3*)
  76. SHLIB_CFLAGS=""
  77. SHLIB_LD="shlicc -r"
  78. SHLIB_LD_LIBS="$V_LIB"
  79. SHLIB_SUFFIX=".so"
  80. DL_LIBS="-ldl"
  81. DL_LD_FLAGS=""
  82. DL_LD_SEARCH_FLAGS=""
  83. ;;
  84.     Darwin-5.*|Darwin-6.*|Darwin-7.*|Darwin-8.*)
  85. LDFLAGS="${LDFLAGS} -Wl,-bind_at_load"
  86. ;;
  87.     dgux*)
  88. SHLIB_CFLAGS="-K PIC"
  89. SHLIB_LD="cc -G"
  90. SHLIB_LD_LIBS=""
  91. SHLIB_SUFFIX=".so"
  92. DL_LIBS="-ldl"
  93. DL_LD_FLAGS=""
  94. DL_LD_SEARCH_FLAGS=""
  95. ;;
  96.     HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
  97. AC_CHECK_LIB(dld, shl_load, dl_ok=yes, dl_ok=no)
  98. if test "$dl_ok" = yes; then
  99.     SHLIB_CFLAGS="+z"
  100.     SHLIB_LD="ld -b"
  101.     SHLIB_LD_LIBS=""
  102.     SHLIB_SUFFIX=".sl"
  103.     DL_LIBS="-ldld"
  104.     DL_LD_FLAGS="-Wl,-E"
  105.     DL_LD_SEARCH_FLAGS='-Wl,+b,${SHLIB_RUNTIME_DIR}:.'
  106. fi
  107. ;;
  108.     IRIX-4.*)
  109. SHLIB_CFLAGS="-G 0"
  110. SHLIB_SUFFIX=".a"
  111. SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r -G 0"
  112. SHLIB_LD_LIBS="$V_LIB"
  113. DL_LIBS=""
  114. DL_LD_FLAGS="-Wl,-D,08000000"
  115. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  116. ;;
  117.     IRIX-5.*|IRIX-6.*)
  118. SHLIB_CFLAGS=""
  119. SHLIB_LD="ld -shared -rdata_shared"
  120. SHLIB_LD_LIBS=""
  121. SHLIB_SUFFIX=".so"
  122. DL_LIBS=""
  123. DL_LD_FLAGS=""
  124. DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}'
  125. ;;
  126.     IRIX64-6.*)
  127. SHLIB_CFLAGS=""
  128. SHLIB_LD="ld -32 -shared -rdata_shared -rpath /usr/local/lib"
  129. SHLIB_LD_LIBS=""
  130. SHLIB_SUFFIX=".so"
  131. DL_LIBS=""
  132. DL_LD_FLAGS=""
  133. DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}'
  134. ;;
  135.     Linux*)
  136. SHLIB_CFLAGS="-fPIC"
  137. SHLIB_LD_LIBS=""
  138. SHLIB_SUFFIX=".so"
  139. if test "$have_dl" = yes; then
  140.     SHLIB_LD="${CC} -shared"
  141.     DL_LIBS="-ldl"
  142.     DL_LD_FLAGS="-rdynamic"
  143.     DL_LD_SEARCH_FLAGS=""
  144. else
  145.     AC_CHECK_HEADER(dld.h, [
  146. SHLIB_LD="ld -shared"
  147. DL_LIBS="-ldld"
  148. DL_LD_FLAGS=""
  149. DL_LD_SEARCH_FLAGS=""])
  150. fi
  151. ;;
  152.     MP-RAS-02*)
  153. SHLIB_CFLAGS="-K PIC"
  154. SHLIB_LD="cc -G"
  155. SHLIB_LD_LIBS=""
  156. SHLIB_SUFFIX=".so"
  157. DL_LIBS="-ldl"
  158. DL_LD_FLAGS=""
  159. DL_LD_SEARCH_FLAGS=""
  160. ;;
  161.     MP-RAS-*)
  162. SHLIB_CFLAGS="-K PIC"
  163. SHLIB_LD="cc -G"
  164. SHLIB_LD_LIBS=""
  165. SHLIB_SUFFIX=".so"
  166. DL_LIBS="-ldl"
  167. DL_LD_FLAGS="-Wl,-Bexport"
  168. DL_LD_SEARCH_FLAGS=""
  169. ;;
  170.     NetBSD-*|FreeBSD-*|OpenBSD-*)
  171. # Not available on all versions:  check for include file.
  172. AC_CHECK_HEADER(dlfcn.h, [
  173.     SHLIB_CFLAGS="-fpic"
  174.     SHLIB_LD="ld -Bshareable -x"
  175.     SHLIB_LD_LIBS=""
  176.     SHLIB_SUFFIX=".so"
  177.     DL_LIBS=""
  178.     DL_LD_FLAGS=""
  179.     DL_LD_SEARCH_FLAGS=""
  180. ], [
  181.     SHLIB_CFLAGS=""
  182.     SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r"
  183.     SHLIB_LD_LIBS='$V_LIB'
  184.     SHLIB_SUFFIX=".a"
  185.     DL_LIBS=""
  186.     DL_LD_FLAGS=""
  187.     DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  188. ])
  189. ;;
  190.     NEXTSTEP-*)
  191. SHLIB_CFLAGS=""
  192. SHLIB_LD="cc -nostdlib -r"
  193. SHLIB_LD_LIBS=""
  194. SHLIB_SUFFIX=".so"
  195. DL_LIBS=""
  196. DL_LD_FLAGS=""
  197. DL_LD_SEARCH_FLAGS=""
  198. ;;
  199.     OSF1-1.0|OSF1-1.1|OSF1-1.2)
  200. # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1
  201. SHLIB_CFLAGS=""
  202. # Hack: make package name same as library name
  203. SHLIB_LD='ld -R -export $@:'
  204. SHLIB_LD_LIBS=""
  205. SHLIB_SUFFIX=".so"
  206. DL_LIBS=""
  207. DL_LD_FLAGS=""
  208. DL_LD_SEARCH_FLAGS=""
  209. ;;
  210.     OSF1-1.*)
  211. # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2
  212. SHLIB_CFLAGS="-fpic"
  213. SHLIB_LD="ld -shared"
  214. SHLIB_LD_LIBS=""
  215. SHLIB_SUFFIX=".so"
  216. DL_LIBS=""
  217. DL_LD_FLAGS=""
  218. DL_LD_SEARCH_FLAGS=""
  219. ;;
  220.     OSF1-V*)
  221.         # Digital OSF/1
  222. SHLIB_CFLAGS=""
  223. SHLIB_LD='ld -shared -expect_unresolved "*"'
  224. SHLIB_LD_LIBS=""
  225. SHLIB_SUFFIX=".so"
  226. DL_LIBS=""
  227. DL_LD_FLAGS=""
  228. DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}'
  229. ;;
  230.     RISCos-*)
  231. SHLIB_CFLAGS="-G 0"
  232. SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r -G 0"
  233. SHLIB_LD_LIBS='$V_LIB'
  234. SHLIB_SUFFIX=".a"
  235. DL_LIBS=""
  236. DL_LD_FLAGS="-Wl,-D,08000000"
  237. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  238. ;;
  239.     SCO_SV-3.2*)
  240.         # Note, dlopen is available only on SCO 3.2.5 and greater.  However,
  241.         # this test works, since "uname -s" was non-standard in 3.2.4 and
  242.         # below.
  243. SHLIB_CFLAGS="-Kpic -belf"
  244. SHLIB_LD="ld -G"
  245. SHLIB_LD_LIBS=""
  246. SHLIB_SUFFIX=".so"
  247. DL_LIBS=""
  248. DL_LD_FLAGS="-belf -Wl,-Bexport"
  249. DL_LD_SEARCH_FLAGS=""
  250. ;;
  251.      SINIX*5.4*)
  252. SHLIB_CFLAGS="-K PIC"
  253. SHLIB_LD="cc -G"
  254. SHLIB_LD_LIBS=""
  255. SHLIB_SUFFIX=".so"
  256. DL_LIBS="-ldl"
  257. DL_LD_FLAGS=""
  258. DL_LD_SEARCH_FLAGS=""
  259. ;;
  260.     SunOS-4*)
  261. SHLIB_CFLAGS="-PIC"
  262. SHLIB_LD="ld"
  263. SHLIB_LD_LIBS=""
  264. SHLIB_SUFFIX=".so"
  265. DL_LIBS="-ldl"
  266. DL_LD_FLAGS=""
  267. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  268. ;;
  269.     SunOS-5*)
  270. SHLIB_CFLAGS="-KPIC"
  271. SHLIB_LD="/usr/ccs/bin/ld -G -z text"
  272. # Note: need the LIBS below, otherwise Tk won't find Tcl's
  273. # symbols when dynamically loaded into tclsh.
  274. SHLIB_LD_LIBS='$V_LIB'
  275. SHLIB_SUFFIX=".so"
  276. DL_LIBS="-ldl"
  277. DL_LD_FLAGS=""
  278. DL_LD_SEARCH_FLAGS='-R ${SHLIB_RUNTIME_DIR}'
  279. ;;
  280.     ULTRIX-4.*)
  281. SHLIB_CFLAGS="-G 0"
  282. SHLIB_SUFFIX=".a"
  283. SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r -G 0"
  284. SHLIB_LD_LIBS='$V_LIB'
  285. DL_LIBS=""
  286. DL_LD_FLAGS="-Wl,-D,08000000"
  287. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  288. ;;
  289.     UNIX_SV*)
  290. SHLIB_CFLAGS="-KPIC"
  291. SHLIB_LD="cc -G"
  292. SHLIB_LD_LIBS=""
  293. SHLIB_SUFFIX=".so"
  294. DL_LIBS="-ldl"
  295. # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
  296. # that don't grok the -Bexport option.  Test that it does.
  297. hold_ldflags=$LDFLAGS
  298. AC_MSG_CHECKING(for ld accepts -Bexport flag)
  299. LDFLAGS="${LDFLAGS} -Wl,-Bexport"
  300. AC_TRY_LINK(, [int i;], found=yes, found=no)
  301. LDFLAGS=$hold_ldflags
  302. AC_MSG_RESULT($found)
  303. if test $found = yes; then
  304.   SH_LD_FLAGS="-Wl,-Bexport"
  305. else
  306.   SH_LD_FLAGS=""
  307. fi
  308. SH_LD_SEARCH_FLAGS=""
  309. ;;
  310. esac
  311. # Step 4: disable dynamic loading if requested via a command-line switch.
  312. #
  313. #XXX:if test $enable_shlib = "no" ; then
  314. #    echo "Disabling dynamic loading and shared libraries"
  315. #    SHLIB_CFLAGS=""
  316. #    SHLIB_LD=""
  317. #    SHLIB_SUFFIX=""
  318. #    DL_LIBS=""
  319. #    DL_LD_FLAGS=""
  320. #    DL_LD_SEARCH_FLAGS=""
  321. #fi
  322. # If we're running gcc, then change the C flags for compiling shared
  323. # libraries to the right flags for gcc, instead of those for the
  324. # standard manufacturer compiler.
  325. ####XXX:if test "enable_shlib" != "no" ; then
  326.     if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then
  327. case $system in
  328.     AIX-*)
  329. ;;
  330.     BSD/OS*)
  331. ;;
  332.     IRIX*)
  333. ;;
  334.     NetBSD-*|FreeBSD-*|OpenBSD-*)
  335. ;;
  336.     RISCos-*)
  337. ;;
  338.     ULTRIX-4.*)
  339. ;;
  340.     *)
  341. SHLIB_CFLAGS="-fPIC"
  342. ;;
  343. esac
  344.     fi
  345. ####fi
  346. if test "$enable_shlib" != "no" ; then
  347.         PKG_SHLIB_CFLAGS=$SHLIB_CFLAGS
  348. else
  349.         PKG_SHLIB_CFLAGS=""
  350. fi
  351. AC_SUBST(DL_LIBS)
  352. AC_SUBST(DL_LD_FLAGS)
  353. AC_SUBST(DL_LD_SEARCH_FLAGS)
  354. AC_SUBST(LDFLAGS)
  355. AC_SUBST(SHLIB_CFLAGS)
  356. AC_SUBST(SHLIB_LD)
  357. AC_SUBST(SHLIB_LD_LIBS)
  358. AC_SUBST(SHLIB_SUFFIX)
  359. AC_SUBST(PKG_SHLIB_CFLAGS)