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