dpkg (1.18.25) stretch; urgency=medium
[dpkg] / m4 / dpkg-libs.m4
CommitLineData
1479465f
GJ
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
5# DPKG_LIB_MD
6# -----------
7# Check for the message digest library.
8AC_DEFUN([DPKG_LIB_MD], [
9 AC_ARG_VAR([MD_LIBS], [linker flags for md library])
10 AC_ARG_WITH([libmd],
11 [AS_HELP_STRING([--with-libmd],
12 [use libmd library for message digest functions])],
13 [], [with_libmd=check])
14 have_libmd="no"
15 AS_IF([test "x$with_libmd" != "xno"], [
16 AC_CHECK_HEADERS([md5.h], [
17 dpkg_save_libmd_LIBS=$LIBS
18 AC_SEARCH_LIBS([MD5Init], [md], [have_libmd="yes"])
19 LIBS=$dpkg_save_libmd_LIBS
20 AS_IF([test "x$ac_cv_search_MD5Init" = "xnone required"], [
21 have_libmd="builtin"
22 ], [test "x$ac_cv_search_MD5Init" != "xno"], [
23 have_libmd="yes"
24 MD_LIBS="$ac_cv_search_MD5Init"
25 ])
26 ])
27 AS_IF([test "x$with_libmd" = "xyes" && test "x$have_libmd" = "xno"], [
28 AC_MSG_FAILURE([md5 digest functions not found])
29 ])
30 ])
31 AM_CONDITIONAL([HAVE_LIBMD_MD5], [test "x$have_libmd" != "xno"])
32])# DPKG_LIB_MD
33
34# DPKG_WITH_COMPRESS_LIB(NAME, HEADER, FUNC)
35# -------------------------------------------------
36# Check for availability of a compression library.
37AC_DEFUN([DPKG_WITH_COMPRESS_LIB], [
38 AC_ARG_VAR(AS_TR_CPP($1)[_LIBS], [linker flags for $1 library])
39 AC_ARG_WITH([lib$1],
40 [AS_HELP_STRING([--with-lib$1],
41 [use $1 library for compression and decompression])],
42 [], [with_lib$1=check])
43 have_lib$1="no"
44 AS_IF([test "x$with_lib$1" != "xno"], [
45 AC_CHECK_LIB([$1], [$3], [
46 AC_CHECK_HEADER([$2], [
47 have_lib$1="yes"
48 ])
49 ])
50
51 AS_IF([test "x$with_lib$1" != "xno"], [
52 AS_IF([test "x$have_lib$1" = "xyes"], [
53 AC_DEFINE([WITH_LIB]AS_TR_CPP($1), 1,
54 [Define to 1 to use $1 library rather than console tool])
55 AS_IF([test "x$with_lib$1" = "xstatic"], [
56 dpkg_$1_libs="-Wl,-Bstatic -l$1 -Wl,-Bdynamic"
57 ], [
58 dpkg_$1_libs="-l$1"
59 ])
60 AS_TR_CPP($1)_LIBS="${AS_TR_CPP($1)_LIBS:+$AS_TR_CPP($1)_LIBS }$dpkg_$1_libs"
61 ], [
62 AS_IF([test "x$with_lib$1" != "xcheck"], [
63 AC_MSG_FAILURE([lib$1 library or header not found])
64 ])
65 ])
66 ])
67 ])
68])# DPKG_WITH_COMPRESS_LIB
69
70# DPKG_LIB_Z
71# -------------
72# Check for z library.
73AC_DEFUN([DPKG_LIB_Z], [
74 DPKG_WITH_COMPRESS_LIB([z], [zlib.h], [gzdopen])
75])# DPKG_LIB_Z
76
77# DPKG_LIB_LZMA
78# -------------
79# Check for lzma library.
80AC_DEFUN([DPKG_LIB_LZMA], [
81 DPKG_WITH_COMPRESS_LIB([lzma], [lzma.h], [lzma_alone_decoder])
82 AC_CHECK_LIB([lzma], [lzma_stream_encoder_mt], [
83 AC_DEFINE([HAVE_LZMA_MT], [1], [xz multithreaded compression support])
84 ])
85])# DPKG_LIB_LZMA
86
87# DPKG_LIB_BZ2
88# ------------
89# Check for bz2 library.
90AC_DEFUN([DPKG_LIB_BZ2], [
91 DPKG_WITH_COMPRESS_LIB([bz2], [bzlib.h], [BZ2_bzdopen])
92])# DPKG_LIB_BZ2
93
94# DPKG_LIB_SELINUX
95# ----------------
96# Check for selinux library.
97AC_DEFUN([DPKG_LIB_SELINUX], [
98 AC_REQUIRE([PKG_PROG_PKG_CONFIG])
99 m4_ifndef([PKG_PROG_PKG_CONFIG], [m4_fatal([missing pkg-config macros])])
100 AC_ARG_VAR([SELINUX_LIBS], [linker flags for selinux library])dnl
101 AC_ARG_WITH([libselinux],
102 [AS_HELP_STRING([--with-libselinux],
103 [use selinux library to set security contexts])],
104 [], [with_libselinux=check])
105 SELINUX_MIN_VERSION=2.0.99
106 have_libselinux="no"
107 AS_IF([test "x$with_libselinux" != "xno"], [
108 PKG_CHECK_MODULES([SELINUX], [libselinux >= $SELINUX_MIN_VERSION], [
109 AC_CHECK_HEADER([selinux/selinux.h], [
110 AC_DEFINE([WITH_LIBSELINUX], [1],
111 [Define to 1 to compile in SELinux support])
112 have_libselinux="yes"
113 ], [
114 AS_IF([test "x$with_libselinux" != "xcheck"], [
115 AC_MSG_FAILURE([libselinux header not found])
116 ])
117 ])
118 AC_CHECK_LIB([selinux], [setexecfilecon], [
119 AC_DEFINE([HAVE_SETEXECFILECON], [1],
120 [Define to 1 if SELinux setexecfilecon is present])
121 ])
122 ], [
123 AS_IF([test "x$with_libselinux" != "xcheck"], [
124 AC_MSG_FAILURE([libselinux at least $SELINUX_MIN_VERSION not found])
125 ])
126 ])
127 ])
128 AM_CONDITIONAL([WITH_LIBSELINUX], [test "x$have_libselinux" = "xyes"])
129 AM_CONDITIONAL([HAVE_SETEXECFILECON],
130 [test "x$ac_cv_lib_selinux_setexecfilecon" = "xyes"])
131])# DPKG_LIB_SELINUX
132
133# _DPKG_CHECK_LIB_CURSES_NARROW
134# -----------------------------
135# Check for narrow curses library.
136AC_DEFUN([_DPKG_CHECK_LIB_CURSES_NARROW], [
137 AC_CHECK_LIB([ncurses], [initscr], [
138 CURSES_LIBS="${CURSES_LIBS:+$CURSES_LIBS }-lncurses"
139 ], [
140 AC_CHECK_LIB([curses], [initscr], [
141 CURSES_LIBS="${CURSES_LIBS:+$CURSES_LIBS }-lcurses"
142 ], [
143 AC_MSG_ERROR([no curses library found])
144 ])
145 ])
146])# DPKG_CHECK_LIB_CURSES_NARROW
147
148# DPKG_LIB_CURSES
149# ---------------
150# Check for curses library.
151AC_DEFUN([DPKG_LIB_CURSES], [
152 AC_REQUIRE([DPKG_UNICODE])
153 AC_ARG_VAR([CURSES_LIBS], [linker flags for curses library])dnl
154 AC_CHECK_HEADERS([ncurses/ncurses.h ncurses.h curses.h ncurses/term.h term.h],
155 [have_curses_header=yes])
156 AS_IF([test "x$USE_UNICODE" = "xyes"], [
157 AC_CHECK_HEADERS([ncursesw/ncurses.h ncursesw/term.h],
158 [have_curses_header=yes])
159 AC_CHECK_LIB([ncursesw], [initscr], [
160 CURSES_LIBS="${CURSES_LIBS:+$CURSES_LIBS }-lncursesw"
161 ], [
162 _DPKG_CHECK_LIB_CURSES_NARROW()
163 ])
164 ], [
165 _DPKG_CHECK_LIB_CURSES_NARROW()
166 ])
167 AS_IF([test "x$have_curses_header" != "xyes"], [
168 AC_MSG_FAILURE([curses header not found])
169 ])
170 have_libcurses=yes
171])# DPKG_LIB_CURSES
172
173# DPKG_LIB_PS
174# -----------
175# Check for GNU/Hurd ps library
176AC_DEFUN([DPKG_LIB_PS], [
177 AC_ARG_VAR([PS_LIBS], [linker flags for ps library])dnl
178 AC_CHECK_LIB([ps], [proc_stat_list_create], [
179 PS_LIBS="-lps"
180 have_libps=yes
181 ])
182])# DPKG_LIB_PS
183
184# DPKG_LIB_KVM
185# ------------
186# Check for BSD kvm library
187AC_DEFUN([DPKG_LIB_KVM], [
188 AC_ARG_VAR([KVM_LIBS], [linker flags for kvm library])dnl
189 AC_CHECK_LIB([kvm], [kvm_openfiles], [
190 KVM_LIBS="-lkvm"
191 have_libkvm=yes
192 ])
193])# DPKG_LIB_KVM