dpkg-libs.m4 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. # Copyright © 2004 Scott James Remnant <scott@netsplit.com>
  2. # Copyright © 2007 Nicolas François <nicolas.francois@centraliens.net>
  3. # Copyright © 2006, 2009-2012, 2014-2015 Guillem Jover <guillem@debian.org>
  4. # DPKG_LIB_MD
  5. # -----------
  6. # Check for the message digest library.
  7. AC_DEFUN([DPKG_LIB_MD], [
  8. AC_ARG_VAR([MD_LIBS], [linker flags for md library])
  9. AC_ARG_WITH([libmd],
  10. [AS_HELP_STRING([--with-libmd],
  11. [use libmd library for message digest functions])])
  12. AS_IF([test "x$with_libmd" != "xno"], [
  13. AC_CHECK_HEADERS([md5.h], [
  14. AC_CHECK_LIB([md], [MD5Init], [
  15. with_libmd="yes"
  16. ], [
  17. AC_MSG_FAILURE([md5 digest not found in libmd])
  18. ])
  19. ])
  20. ])
  21. AS_IF([test "x$with_libmd" = "xyes"], [MD_LIBS="-lmd"])
  22. AM_CONDITIONAL([HAVE_LIBMD_MD5], [test "x$ac_cv_lib_md_MD5Init" = "xyes"])
  23. ])# DPKG_LIB_MD
  24. # DPKG_WITH_COMPRESS_LIB(NAME, HEADER, FUNC)
  25. # -------------------------------------------------
  26. # Check for availability of a compression library.
  27. AC_DEFUN([DPKG_WITH_COMPRESS_LIB], [
  28. AC_ARG_VAR(AS_TR_CPP($1)[_LIBS], [linker flags for $1 library])
  29. AC_ARG_WITH([lib$1],
  30. [AS_HELP_STRING([--with-lib$1],
  31. [use $1 library for compression and decompression])])
  32. AS_IF([test "x$with_lib$1" != "xno"], [
  33. AC_CHECK_LIB([$1], [$3], [
  34. AC_DEFINE([WITH_LIB]AS_TR_CPP($1), 1,
  35. [Define to 1 to use $1 library rather than console tool])
  36. AS_IF([test "x$with_lib$1" = "xstatic"], [
  37. dpkg_$1_libs="-Wl,-Bstatic -l$1 -Wl,-Bdynamic"
  38. ], [
  39. dpkg_$1_libs="-l$1"
  40. ])
  41. AS_TR_CPP($1)_LIBS="${AS_TR_CPP($1)_LIBS:+$AS_TR_CPP($1)_LIBS }$dpkg_$1_libs"
  42. with_lib$1="yes"
  43. ], [
  44. AS_IF([test -n "$with_lib$1"], [
  45. AC_MSG_FAILURE([$1 library not found])
  46. ])
  47. ])
  48. AC_CHECK_HEADER([$2], [], [
  49. AS_IF([test -n "$with_lib$1"], [
  50. AC_MSG_FAILURE([lib$1 header not found])
  51. ])
  52. ])
  53. ])
  54. ])# DPKG_WITH_COMPRESS_LIB
  55. # DPKG_LIB_Z
  56. # -------------
  57. # Check for z library.
  58. AC_DEFUN([DPKG_LIB_Z], [
  59. DPKG_WITH_COMPRESS_LIB([z], [zlib.h], [gzdopen])
  60. ])# DPKG_LIB_Z
  61. # DPKG_LIB_LZMA
  62. # -------------
  63. # Check for lzma library.
  64. AC_DEFUN([DPKG_LIB_LZMA], [
  65. DPKG_WITH_COMPRESS_LIB([lzma], [lzma.h], [lzma_alone_decoder])
  66. AC_CHECK_LIB([lzma], [lzma_stream_encoder_mt], [
  67. AC_DEFINE([HAVE_LZMA_MT], [1], [xz multithreaded compression support])
  68. ])
  69. ])# DPKG_LIB_LZMA
  70. # DPKG_LIB_BZ2
  71. # ------------
  72. # Check for bz2 library.
  73. AC_DEFUN([DPKG_LIB_BZ2], [
  74. DPKG_WITH_COMPRESS_LIB([bz2], [bzlib.h], [BZ2_bzdopen])
  75. ])# DPKG_LIB_BZ2
  76. # DPKG_LIB_SELINUX
  77. # ----------------
  78. # Check for selinux library.
  79. AC_DEFUN([DPKG_LIB_SELINUX], [
  80. AC_REQUIRE([PKG_PROG_PKG_CONFIG])
  81. m4_ifndef([PKG_PROG_PKG_CONFIG], [m4_fatal([missing pkg-config macros])])
  82. AC_ARG_VAR([SELINUX_LIBS], [linker flags for selinux library])dnl
  83. AC_ARG_WITH([libselinux],
  84. [AS_HELP_STRING([--with-libselinux],
  85. [use selinux library to set security contexts])])
  86. AS_IF([test "x$with_libselinux" != "xno"], [
  87. AC_CHECK_LIB([selinux], [is_selinux_enabled], [
  88. AC_DEFINE([WITH_LIBSELINUX], [1],
  89. [Define to 1 to compile in SELinux support])
  90. PKG_CHECK_EXISTS([libselinux], [
  91. AS_IF([test "x$with_selinux" = "xstatic"], [
  92. dpkg_selinux_libs="-Wl,-Bstatic "$($PKG_CONFIG --static --libs libselinux)" -Wl,-Bdynamic"
  93. ], [
  94. dpkg_selinux_libs=$($PKG_CONFIG --libs libselinux)
  95. ])
  96. ], [
  97. AS_IF([test "x$with_libselinux" = "xstatic"], [
  98. dpkg_selinux_libs="-Wl,-Bstatic -lselinux -lsepol -Wl,-Bdynamic"
  99. ], [
  100. dpkg_selinux_libs="-lselinux"
  101. ])
  102. ])
  103. SELINUX_LIBS="${SELINUX_LIBS:+$SELINUX_LIBS }$dpkg_selinux_libs"
  104. with_libselinux="yes"
  105. ], [
  106. AS_IF([test -n "$with_libselinux"], [
  107. AC_MSG_FAILURE([selinux library not found])
  108. ])
  109. ])
  110. AC_CHECK_LIB([selinux], [setexecfilecon], [
  111. AC_DEFINE([HAVE_SETEXECFILECON], [1],
  112. [Define to 1 if SELinux setexecfilecon is present])
  113. ])
  114. AC_CHECK_HEADER([selinux/selinux.h], [], [
  115. AS_IF([test -n "$with_libselinux"], [
  116. AC_MSG_FAILURE([selinux header not found])
  117. ])
  118. ])
  119. ])
  120. AM_CONDITIONAL([WITH_LIBSELINUX], [test "x$with_libselinux" = "xyes"])
  121. AM_CONDITIONAL([HAVE_SETEXECFILECON],
  122. [test "x$ac_cv_lib_selinux_setexecfilecon" = "xyes"])
  123. ])# DPKG_LIB_SELINUX
  124. # _DPKG_CHECK_LIB_CURSES_NARROW
  125. # -----------------------------
  126. # Check for narrow curses library.
  127. AC_DEFUN([_DPKG_CHECK_LIB_CURSES_NARROW], [
  128. AC_CHECK_LIB([ncurses], [initscr], [
  129. CURSES_LIBS="${CURSES_LIBS:+$CURSES_LIBS }-lncurses"
  130. ], [
  131. AC_CHECK_LIB([curses], [initscr], [
  132. CURSES_LIBS="${CURSES_LIBS:+$CURSES_LIBS }-lcurses"
  133. ], [
  134. AC_MSG_ERROR([no curses library found])
  135. ])
  136. ])
  137. ])# DPKG_CHECK_LIB_CURSES_NARROW
  138. # DPKG_LIB_CURSES
  139. # ---------------
  140. # Check for curses library.
  141. AC_DEFUN([DPKG_LIB_CURSES], [
  142. AC_REQUIRE([DPKG_UNICODE])
  143. AC_ARG_VAR([CURSES_LIBS], [linker flags for curses library])dnl
  144. AC_CHECK_HEADERS([ncurses/ncurses.h ncurses.h curses.h ncurses/term.h term.h],
  145. [have_curses_header=yes])
  146. AS_IF([test "x$USE_UNICODE" = "xyes"], [
  147. AC_CHECK_HEADERS([ncursesw/ncurses.h ncursesw/term.h],
  148. [have_curses_header=yes])
  149. AC_CHECK_LIB([ncursesw], [initscr], [
  150. CURSES_LIBS="${CURSES_LIBS:+$CURSES_LIBS }-lncursesw"
  151. ], [
  152. _DPKG_CHECK_LIB_CURSES_NARROW()
  153. ])
  154. ], [
  155. _DPKG_CHECK_LIB_CURSES_NARROW()
  156. ])
  157. AS_IF([test "x$have_curses_header" != "xyes"], [
  158. AC_MSG_FAILURE([curses header not found])
  159. ])
  160. have_libcurses=yes
  161. ])# DPKG_LIB_CURSES
  162. # DPKG_LIB_PS
  163. # -----------
  164. # Check for GNU/Hurd ps library
  165. AC_DEFUN([DPKG_LIB_PS], [
  166. AC_ARG_VAR([PS_LIBS], [linker flags for ps library])dnl
  167. AC_CHECK_LIB([ps], [proc_stat_list_create], [
  168. PS_LIBS="-lps"
  169. have_libps=yes
  170. ])
  171. ])# DPKG_LIB_PS
  172. # DPKG_LIB_KVM
  173. # ------------
  174. # Check for BSD kvm library
  175. AC_DEFUN([DPKG_LIB_KVM], [
  176. AC_ARG_VAR([KVM_LIBS], [linker flags for kvm library])dnl
  177. AC_CHECK_LIB([kvm], [kvm_openfiles], [
  178. KVM_LIBS="-lkvm"
  179. have_libkvm=yes
  180. ])
  181. ])# DPKG_LIB_KVM