chiark / gitweb /
awful debugging hacking
[dpkg] / m4 / dpkg-libs.m4
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.
8 AC_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.
37 AC_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.
73 AC_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.
80 AC_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.
90 AC_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.
97 AC_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.
136 AC_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.
151 AC_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
176 AC_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
187 AC_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