resetting manifest requested domain to floor
[platform/upstream/libexif.git] / m4m / gp-check-popt.m4
1 dnl @synopsis GP_CHECK_POPT(FLAG)
2 dnl
3 dnl Check whether libpopt is available.
4 dnl FLAG must be one of
5 dnl    "mandatory"
6 dnl    "default-enabled"
7 dnl    "default-disabled"
8 dnl
9 AC_DEFUN([GP_CHECK_POPT],[
10 #
11 # [GP_CHECK_POPT]
12 #
13 AC_REQUIRE([GP_CONFIG_MSG])dnl
14 m4_if([$1],[mandatory],        [_GP_CHECK_POPT([mandatory])],
15       [$1],[default-enabled],  [_GP_CHECK_POPT([disable])],
16       [$1],[default-disabled], [_GP_CHECK_POPT([enable])],
17       [m4_errprint(__file__:__line__:[ Error:
18 Illegal argument to $0: `$1'
19 Valid values are: mandatory, default-enabled, default-disabled
20 ])m4_exit(1)])dnl
21 ])dnl
22 dnl
23 AC_DEFUN([_GP_CHECK_POPT],[
24 m4_if([$1],[mandatory],[
25 try_popt=yes
26 require_popt=yes
27 ],[
28 try_popt=auto
29 require_popt=no
30 AC_ARG_ENABLE([popt],
31 [AS_HELP_STRING([--$1-popt],[Do not use popt])],
32 [ if   test "x$withval" = no \
33     || test "x$withval" = off \
34     || test "x$withval" = false; 
35   then
36     try_popt=no
37     require_popt=no
38   elif test "x$withval" = yes \
39     || test "x$withval" = on \
40     || test "x$withval" = true
41   then
42     try_popt=yes
43     require_popt=yes
44   fi
45 ])dnl
46 ])dnl
47
48 AC_MSG_CHECKING([whether popt is required])
49 AC_MSG_RESULT([${require_popt}])
50
51 if test "$require_popt" != yes; then
52         AC_MSG_CHECKING([whether popt is requested])
53         AC_MSG_RESULT([${try_popt}])
54 fi
55
56 dnl Implicit AC_SUBST
57 AC_ARG_VAR([POPT_CFLAGS],[CPPFLAGS to compile with libpopt])dnl
58 AC_ARG_VAR([POPT_LIBS],[LDFLAGS to link with libpopt])dnl
59
60 have_popt=no
61
62 if test "x$POPT_CFLAGS" = "x" && test "x$POPT_LIBS" = "x"; then
63
64         # try to find options to compile popt.h
65         CPPFLAGS_save="$CPPFLAGS"
66         popth_found=no
67         for popt_prefix in "" /usr /usr/local
68         do
69                 if test -n "${popt_prefix}"; then
70                         :
71                 elif test -d "${popt_prefix}/include"; then
72                         CPPFLAGS="-I${popt_prefix}/include ${CPPFLAGS}"
73                 else
74                         continue
75                 fi
76                 ac_cv_header_popt_h=""
77                 unset ac_cv_header_popt_h
78                 AC_CHECK_HEADER([popt.h], [popth_found=yes])
79                 if test "$popth_found" = yes; then break; fi
80         done
81         CPPFLAGS="$CPPFLAGS_save"
82         if test "$popth_found" = "yes"; then
83                 if test "$popt_prefix" = ""; then
84                         POPT_CFLAGS=""
85                 else
86                         POPT_CFLAGS="-I${popt_prefix}/include"
87                 fi
88         else
89                 AC_MSG_ERROR([
90 * Cannot autodetect popt.h
91 *
92 * Set POPT_CFLAGS and POPT_LIBS correctly.
93 ])
94         fi
95
96         # try to find options to link against popt
97         LDFLAGS_save="$LDFLAGS"
98         popt_links=no
99         for popt_prefix in /usr "" /usr/local; do
100                 # We could have "/usr" and "lib64" at the beginning of the
101                 # lists. Then the first tested location would
102                 # incidentally be the right one on 64bit systems, and
103                 # thus work around a bug in libtool on 32bit systems:
104                 #
105                 # 32bit libtool doesn't know about 64bit systems, and so the
106                 # compilation will fail when linking a 32bit library from
107                 # /usr/lib to a 64bit binary.
108                 #
109                 # This hack has been confirmed to workwith a
110                 # 32bit Debian Sarge and 64bit Fedora Core 3 system.
111                 for ldir in lib64 "" lib; do
112                         popt_libdir="${popt_prefix}/${ldir}"
113                         if test "${popt_libdir}" = "/"; then
114                                 popt_libdir=""
115                         elif test -d "${popt_libdir}"; then
116                                 LDFLAGS="-L${popt_libdir} ${LDFLAGS}"
117                         else
118                                 continue
119                         fi
120                         # Avoid caching of results
121                         ac_cv_lib_popt_poptStuffArgs=""
122                         unset ac_cv_lib_popt_poptStuffArgs
123                         AC_CHECK_LIB([popt], [poptStuffArgs], [popt_links=yes])
124                         if test "$popt_links" = yes; then break; fi
125                 done
126                 if test "$popt_links" = yes; then break; fi
127         done
128         LDFLAGS="$LDFLAGS_save"
129         if test "$popt_links" = "yes"; then
130                 if test "$popt_libdir" = ""; then
131                         POPT_LIBS="-lpopt"
132                 else
133                         POPT_LIBS="-L${popt_libdir} -lpopt"
134                 fi
135         else
136                 AC_MSG_ERROR([
137 * Cannot autodetect library directory containing popt
138 *
139 * Set POPT_CFLAGS and POPT_LIBS correctly.
140 ])
141         fi
142         have_popt=yes
143 elif test "x$POPT_CFLAGS" != "x" && test "x$POPT_LIBS" != "x"; then
144     # just use the user specivied option
145     popt_msg="yes (user specified)"
146     have_popt=yes
147 else
148         AC_MSG_ERROR([
149 * Fatal: Either set both POPT_CFLAGS and POPT_LIBS or neither.
150 ])
151 fi
152
153 AC_MSG_CHECKING([if popt is functional])
154 if test "$require_popt$have_popt" = "yesno"; then
155         AC_MSG_RESULT([no, but required])
156         AC_MSG_ERROR([
157 * popt library not found
158 * Fatal: ${PACKAGE_NAME} (${PACKAGE_TARNAME}) requires popt
159 * Please install it and/or set POPT_CFLAGS and POPT_LIBS.
160 ])
161 fi
162 AC_MSG_RESULT([${have_popt}])
163
164 GP_CONFIG_MSG([use popt library], [${have_popt}])
165 if test "$have_popt" = "yes"; then
166         AC_DEFINE([HAVE_POPT],[1],[whether the popt library is available])
167         GP_CONFIG_MSG([popt libs],[${POPT_LIBS}])
168         GP_CONFIG_MSG([popt cppflags],[${POPT_CFLAGS}])
169 fi
170 AM_CONDITIONAL([HAVE_POPT],[test "$have_popt" = "yes"])
171 ])dnl
172 dnl
173 dnl Please do not remove this:
174 dnl filetype: 7595380e-eff3-49e5-90ab-e40f1d544639
175 dnl I use this to find all the different instances of this file which 
176 dnl are supposed to be synchronized.
177 dnl
178 dnl Local Variables:
179 dnl mode: autoconf
180 dnl End: