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.     dgux*)
  85. SHLIB_CFLAGS="-K PIC"
  86. SHLIB_LD="cc -G"
  87. SHLIB_LD_LIBS=""
  88. SHLIB_SUFFIX=".so"
  89. DL_LIBS="-ldl"
  90. DL_LD_FLAGS=""
  91. DL_LD_SEARCH_FLAGS=""
  92. ;;
  93.     HP-UX-*.08.*|HP-UX-*.09.*|HP-UX-*.10.*)
  94. AC_CHECK_LIB(dld, shl_load, dl_ok=yes, dl_ok=no)
  95. if test "$dl_ok" = yes; then
  96.     SHLIB_CFLAGS="+z"
  97.     SHLIB_LD="ld -b"
  98.     SHLIB_LD_LIBS=""
  99.     SHLIB_SUFFIX=".sl"
  100.     DL_LIBS="-ldld"
  101.     DL_LD_FLAGS="-Wl,-E"
  102.     DL_LD_SEARCH_FLAGS='-Wl,+b,${SHLIB_RUNTIME_DIR}:.'
  103. fi
  104. ;;
  105.     IRIX-4.*)
  106. SHLIB_CFLAGS="-G 0"
  107. SHLIB_SUFFIX=".a"
  108. SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r -G 0"
  109. SHLIB_LD_LIBS="$V_LIB"
  110. DL_LIBS=""
  111. DL_LD_FLAGS="-Wl,-D,08000000"
  112. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  113. ;;
  114.     IRIX-5.*|IRIX-6.*)
  115. SHLIB_CFLAGS=""
  116. SHLIB_LD="ld -shared -rdata_shared"
  117. SHLIB_LD_LIBS=""
  118. SHLIB_SUFFIX=".so"
  119. DL_LIBS=""
  120. DL_LD_FLAGS=""
  121. DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}'
  122. ;;
  123.     IRIX64-6.*)
  124. SHLIB_CFLAGS=""
  125. SHLIB_LD="ld -32 -shared -rdata_shared -rpath /usr/local/lib"
  126. SHLIB_LD_LIBS=""
  127. SHLIB_SUFFIX=".so"
  128. DL_LIBS=""
  129. DL_LD_FLAGS=""
  130. DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}'
  131. ;;
  132.     Linux*)
  133. SHLIB_CFLAGS="-fPIC"
  134. SHLIB_LD_LIBS=""
  135. SHLIB_SUFFIX=".so"
  136. if test "$have_dl" = yes; then
  137.     SHLIB_LD="${CC} -shared"
  138.     DL_LIBS="-ldl"
  139.     DL_LD_FLAGS="-rdynamic"
  140.     DL_LD_SEARCH_FLAGS=""
  141. else
  142.     AC_CHECK_HEADER(dld.h, [
  143. SHLIB_LD="ld -shared"
  144. DL_LIBS="-ldld"
  145. DL_LD_FLAGS=""
  146. DL_LD_SEARCH_FLAGS=""])
  147. fi
  148. ;;
  149.     MP-RAS-02*)
  150. SHLIB_CFLAGS="-K PIC"
  151. SHLIB_LD="cc -G"
  152. SHLIB_LD_LIBS=""
  153. SHLIB_SUFFIX=".so"
  154. DL_LIBS="-ldl"
  155. DL_LD_FLAGS=""
  156. DL_LD_SEARCH_FLAGS=""
  157. ;;
  158.     MP-RAS-*)
  159. SHLIB_CFLAGS="-K PIC"
  160. SHLIB_LD="cc -G"
  161. SHLIB_LD_LIBS=""
  162. SHLIB_SUFFIX=".so"
  163. DL_LIBS="-ldl"
  164. DL_LD_FLAGS="-Wl,-Bexport"
  165. DL_LD_SEARCH_FLAGS=""
  166. ;;
  167.     NetBSD-*|FreeBSD-*|OpenBSD-*)
  168. # Not available on all versions:  check for include file.
  169. AC_CHECK_HEADER(dlfcn.h, [
  170.     SHLIB_CFLAGS="-fpic"
  171.     SHLIB_LD="ld -Bshareable -x"
  172.     SHLIB_LD_LIBS=""
  173.     SHLIB_SUFFIX=".so"
  174.     DL_LIBS=""
  175.     DL_LD_FLAGS=""
  176.     DL_LD_SEARCH_FLAGS=""
  177. ], [
  178.     SHLIB_CFLAGS=""
  179.     SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r"
  180.     SHLIB_LD_LIBS='$V_LIB'
  181.     SHLIB_SUFFIX=".a"
  182.     DL_LIBS=""
  183.     DL_LD_FLAGS=""
  184.     DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  185. ])
  186. ;;
  187.     NEXTSTEP-*)
  188. SHLIB_CFLAGS=""
  189. SHLIB_LD="cc -nostdlib -r"
  190. SHLIB_LD_LIBS=""
  191. SHLIB_SUFFIX=".so"
  192. DL_LIBS=""
  193. DL_LD_FLAGS=""
  194. DL_LD_SEARCH_FLAGS=""
  195. ;;
  196.     OSF1-1.0|OSF1-1.1|OSF1-1.2)
  197. # OSF/1 1.[012] from OSF, and derivatives, including Paragon OSF/1
  198. SHLIB_CFLAGS=""
  199. # Hack: make package name same as library name
  200. SHLIB_LD='ld -R -export $@:'
  201. SHLIB_LD_LIBS=""
  202. SHLIB_SUFFIX=".so"
  203. DL_LIBS=""
  204. DL_LD_FLAGS=""
  205. DL_LD_SEARCH_FLAGS=""
  206. ;;
  207.     OSF1-1.*)
  208. # OSF/1 1.3 from OSF using ELF, and derivatives, including AD2
  209. SHLIB_CFLAGS="-fpic"
  210. SHLIB_LD="ld -shared"
  211. SHLIB_LD_LIBS=""
  212. SHLIB_SUFFIX=".so"
  213. DL_LIBS=""
  214. DL_LD_FLAGS=""
  215. DL_LD_SEARCH_FLAGS=""
  216. ;;
  217.     OSF1-V*)
  218.         # Digital OSF/1
  219. SHLIB_CFLAGS=""
  220. SHLIB_LD='ld -shared -expect_unresolved "*"'
  221. SHLIB_LD_LIBS=""
  222. SHLIB_SUFFIX=".so"
  223. DL_LIBS=""
  224. DL_LD_FLAGS=""
  225. DL_LD_SEARCH_FLAGS='-Wl,-rpath,${SHLIB_RUNTIME_DIR}'
  226. ;;
  227.     RISCos-*)
  228. SHLIB_CFLAGS="-G 0"
  229. SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r -G 0"
  230. SHLIB_LD_LIBS='$V_LIB'
  231. SHLIB_SUFFIX=".a"
  232. DL_LIBS=""
  233. DL_LD_FLAGS="-Wl,-D,08000000"
  234. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  235. ;;
  236.     SCO_SV-3.2*)
  237.         # Note, dlopen is available only on SCO 3.2.5 and greater.  However,
  238.         # this test works, since "uname -s" was non-standard in 3.2.4 and
  239.         # below.
  240. SHLIB_CFLAGS="-Kpic -belf"
  241. SHLIB_LD="ld -G"
  242. SHLIB_LD_LIBS=""
  243. SHLIB_SUFFIX=".so"
  244. DL_LIBS=""
  245. DL_LD_FLAGS="-belf -Wl,-Bexport"
  246. DL_LD_SEARCH_FLAGS=""
  247. ;;
  248.      SINIX*5.4*)
  249. SHLIB_CFLAGS="-K PIC"
  250. SHLIB_LD="cc -G"
  251. SHLIB_LD_LIBS=""
  252. SHLIB_SUFFIX=".so"
  253. DL_LIBS="-ldl"
  254. DL_LD_FLAGS=""
  255. DL_LD_SEARCH_FLAGS=""
  256. ;;
  257.     SunOS-4*)
  258. SHLIB_CFLAGS="-PIC"
  259. SHLIB_LD="ld"
  260. SHLIB_LD_LIBS=""
  261. SHLIB_SUFFIX=".so"
  262. DL_LIBS="-ldl"
  263. DL_LD_FLAGS=""
  264. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  265. ;;
  266.     SunOS-5*)
  267. SHLIB_CFLAGS="-fpic"
  268. SHLIB_LD="/usr/ccs/bin/ld -G -z text"
  269. # Note: need the LIBS below, otherwise Tk won't find Tcl's
  270. # symbols when dynamically loaded into tclsh.
  271. SHLIB_LD_LIBS='$V_LIB'
  272. SHLIB_SUFFIX=".so"
  273. DL_LIBS="-ldl"
  274. DL_LD_FLAGS=""
  275. DL_LD_SEARCH_FLAGS='-R ${SHLIB_RUNTIME_DIR}'
  276. ;;
  277.     ULTRIX-4.*)
  278. SHLIB_CFLAGS="-G 0"
  279. SHLIB_SUFFIX=".a"
  280. SHLIB_LD="echo tclLdAout $CC {$SHLIB_CFLAGS} | $local_TCLSH -r -G 0"
  281. SHLIB_LD_LIBS='$V_LIB'
  282. DL_LIBS=""
  283. DL_LD_FLAGS="-Wl,-D,08000000"
  284. DL_LD_SEARCH_FLAGS='-L${SHLIB_RUNTIME_DIR}'
  285. ;;
  286.     UNIX_SV*)
  287. SHLIB_CFLAGS="-KPIC"
  288. SHLIB_LD="cc -G"
  289. SHLIB_LD_LIBS=""
  290. SHLIB_SUFFIX=".so"
  291. DL_LIBS="-ldl"
  292. # Some UNIX_SV* systems (unixware 1.1.2 for example) have linkers
  293. # that don't grok the -Bexport option.  Test that it does.
  294. hold_ldflags=$LDFLAGS
  295. AC_MSG_CHECKING(for ld accepts -Bexport flag)
  296. LDFLAGS="${LDFLAGS} -Wl,-Bexport"
  297. AC_TRY_LINK(, [int i;], found=yes, found=no)
  298. LDFLAGS=$hold_ldflags
  299. AC_MSG_RESULT($found)
  300. if test $found = yes; then
  301.   SH_LD_FLAGS="-Wl,-Bexport"
  302. else
  303.   SH_LD_FLAGS=""
  304. fi
  305. SH_LD_SEARCH_FLAGS=""
  306. ;;
  307. esac
  308. # Step 4: disable dynamic loading if requested via a command-line switch.
  309. #
  310. #XXX:if test $enable_shlib = "no" ; then
  311. #    echo "Disabling dynamic loading and shared libraries"
  312. #    SHLIB_CFLAGS=""
  313. #    SHLIB_LD=""
  314. #    SHLIB_SUFFIX=""
  315. #    DL_LIBS=""
  316. #    DL_LD_FLAGS=""
  317. #    DL_LD_SEARCH_FLAGS=""
  318. #fi
  319. # If we're running gcc, then change the C flags for compiling shared
  320. # libraries to the right flags for gcc, instead of those for the
  321. # standard manufacturer compiler.
  322. ####XXX:if test "enable_shlib" != "no" ; then
  323.     if test "$CC" = "gcc" -o `$CC -v 2>&1 | grep -c gcc` != "0" ; then
  324. case $system in
  325.     AIX-*)
  326. ;;
  327.     BSD/OS*)
  328. ;;
  329.     IRIX*)
  330. ;;
  331.     NetBSD-*|FreeBSD-*|OpenBSD-*)
  332. ;;
  333.     RISCos-*)
  334. ;;
  335.     ULTRIX-4.*)
  336. ;;
  337.     *)
  338. SHLIB_CFLAGS="-fPIC"
  339. ;;
  340. esac
  341.     fi
  342. ####fi
  343. if test "$enable_shlib" != "no" ; then
  344.         PKG_SHLIB_CFLAGS=$SHLIB_CFLAGS
  345. else
  346.         PKG_SHLIB_CFLAGS=""
  347. fi
  348. AC_SUBST(DL_LIBS)
  349. AC_SUBST(DL_LD_FLAGS)
  350. AC_SUBST(DL_LD_SEARCH_FLAGS)
  351. AC_SUBST(SHLIB_CFLAGS)
  352. AC_SUBST(SHLIB_LD)
  353. AC_SUBST(SHLIB_LD_LIBS)
  354. AC_SUBST(SHLIB_SUFFIX)
  355. AC_SUBST(PKG_SHLIB_CFLAGS)