Updated to release 1.7.8
[platform/upstream/eeze.git] / configure.ac
1 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
2 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
3 m4_define([v_maj], [1])
4 m4_define([v_min], [7])
5 m4_define([v_mic], [8])
6 m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
7 ##--   When released, remove the dnl on the below line
8 m4_undefine([v_rev])
9 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
10 m4_ifdef([v_rev], [m4_define([v_ver], [v_maj.v_min.v_mic.v_rev])], [m4_define([v_ver], [v_maj.v_min.v_mic])])
11 m4_define([lt_cur], m4_eval(v_maj + v_min))
12 m4_define([lt_rev], v_mic)
13 m4_define([lt_age], v_min)
14 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
15 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
16
17 AC_INIT([eeze], [v_ver], [enlightenment-devel@lists.sourceforge.net])
18 AC_PREREQ([2.52])
19 AC_CONFIG_SRCDIR([configure.ac])
20 AC_CONFIG_MACRO_DIR([m4])
21
22 AC_CONFIG_HEADERS([config.h])
23 AH_TOP([
24 #ifndef EFL_CONFIG_H__
25 #define EFL_CONFIG_H__
26 ])
27 AH_BOTTOM([
28 #endif /* EFL_CONFIG_H__ */
29 ])
30
31 AM_INIT_AUTOMAKE([1.6 dist-bzip2])
32 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
33
34 define([AC_LIBTOOL_LANG_CXX_CONFIG], [:])dnl
35 define([AC_LIBTOOL_LANG_F77_CONFIG], [:])dnl
36 AC_PROG_LIBTOOL
37
38 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
39 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
40 m4_ifdef([v_rev], , [m4_define([v_rev], [0])])
41 m4_ifdef([v_rel], , [m4_define([v_rel], [])])
42 AC_DEFINE_UNQUOTED(VMAJ, [v_maj], [Major version])
43 AC_DEFINE_UNQUOTED(VMIN, [v_min], [Minor version])
44 AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
45 AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
46 version_info="lt_cur:lt_rev:lt_age"
47 release_info="v_rel"
48 AC_SUBST(version_info)
49 AC_SUBST(release_info)
50 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
51 ##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
52 VMAJ=v_maj
53 AC_SUBST(VMAJ)
54
55 ### Needed information
56
57 AC_CANONICAL_BUILD
58 AC_CANONICAL_HOST
59
60 requirement_eeze="ecore >= 1.7.8 eina >= 1.7.8 libudev"
61
62
63 ### Checks for programs
64 AC_PROG_CC
65 AM_PROG_CC_C_O
66 AC_C___ATTRIBUTE__
67
68 # pkg-config
69 PKG_PROG_PKG_CONFIG
70
71 # Check whether pkg-config supports Requires.private
72 AS_IF(
73    [$PKG_CONFIG --atleast-pkgconfig-version 0.22],
74       [pkgconfig_requires_private="Requires.private"],
75    [pkgconfig_requires_private="Requires"]
76 )
77 AC_SUBST(pkgconfig_requires_private)
78
79 # doxygen program for documentation building
80
81 EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
82
83
84 ### Checks for libraries
85
86 PKG_CHECK_MODULES([EEZE], [${requirement_eeze}])
87
88 udev_version=$(pkg-config libudev --modversion)
89
90 if test $udev_version -lt 143;then
91   AC_MSG_ERROR([udev version is too old!])
92 elif test $udev_version -lt 148;then
93   AC_MSG_WARN([Old udev version detected, enabling compat code])
94   AC_DEFINE([OLD_UDEV_RRRRRRRRRRRRRR],[1],[compat functionality for udev < 148])
95 fi
96
97 eeze_mount=
98 PKG_CHECK_EXISTS([mount >= 2.18.0],
99   [
100      AC_DEFINE([HAVE_EEZE_MOUNT], [1], [Eeze is mount-capable])
101      AM_CONDITIONAL([HAVE_EEZE_MOUNT], [true])
102      eeze_mount="yes"
103   ],
104   AM_CONDITIONAL([HAVE_EEZE_MOUNT], [false])
105 )
106
107 if test "x$eeze_mount" = "xyes";then
108   AC_ARG_WITH([mount], [AS_HELP_STRING([--with-mount], [specify mount bin @<:@default=detect@:>@])], [with_mount=$withval], [with_mount="detect"])
109   AC_ARG_WITH([umount], [AS_HELP_STRING([--with-umount], [specify umount bin @<:@default=detect@:>@])], [with_umount=$withval], [with_umount="detect"])
110   AC_ARG_WITH([eject], [AS_HELP_STRING([--with-eject], [specify eject bin @<:@default=detect@:>@])], [with_eject=$withval], [with_eject="detect"])
111   PKG_CHECK_MODULES([LIBMOUNT], [mount >= 2.18.0])
112   mount_v=$(pkg-config --modversion mount)
113   PKG_CHECK_MODULES([ECORE_FILE], [ecore-file >= 1.7.8])
114   PKG_CHECK_MODULES([EET], [eet >= 1.7.8])
115   PKG_CHECK_MODULES([ECORE_CON], [ecore-con >= 1.7.8])
116
117   if test "x$with_mount" = "xdetect";then
118     AC_PATH_PROG([with_mount], [mount], [])
119   fi
120   if test -z "$with_mount" ; then
121     AC_DEFINE_UNQUOTED([MOUNTABLE], [0], [whether mount is available])
122   else
123     AC_DEFINE_UNQUOTED([MOUNTABLE], [1], [whether mount is available])
124   fi
125   AC_DEFINE_UNQUOTED([EEZE_MOUNT_BIN], ["$with_mount"], [mount bin to use])
126
127   if test "x$with_umount" = "xdetect";then
128     AC_PATH_PROG([with_umount], [umount], [])
129   fi
130   if test -z "$with_umount" ; then
131     AC_DEFINE_UNQUOTED([UNMOUNTABLE], [0], [whether umount is available])
132   else
133     AC_DEFINE_UNQUOTED([UNMOUNTABLE], [1], [whether umount is available])
134   fi
135   AC_DEFINE_UNQUOTED([EEZE_UNMOUNT_BIN], ["$with_umount"], [umount bin to use])
136
137   if test "x$with_eject" = "xdetect";then
138     AC_PATH_PROG([with_eject], [eject], [])
139   fi
140   if test -z "$with_eject" ; then
141     AC_DEFINE_UNQUOTED([EJECTABLE], [0], [whether eject is available])
142   else
143     AC_DEFINE_UNQUOTED([EJECTABLE], [1], [whether eject is available])
144   fi
145   AC_DEFINE_UNQUOTED([EEZE_EJECT_BIN], ["$with_eject"], [eject bin to use])
146 fi
147
148 want_mtab=
149 AC_ARG_ENABLE([mtab],
150    [AC_HELP_STRING([--enable-mtab],
151        [force use of mtab for mount info @<:@default=detect@:>@])],
152    [
153     if test "x${enableval}" = "xyes" ; then
154        want_mtab="yes"
155     else
156        want_mtab="no"
157     fi],
158    [want_mtab="auto"])
159
160
161 if test "x${want_mtab}" = "xyes" ; then
162   AM_CONDITIONAL([OLD_LIBMOUNT], [false])
163   AM_CONDITIONAL([NEW_LIBMOUNT], [false])
164 else
165   if test -n "$mount_v";then
166     AM_CONDITIONAL([OLD_LIBMOUNT], [test "$(echo $mount_v | cut -d'.' -f2)" -lt 19])
167     AM_CONDITIONAL([NEW_LIBMOUNT], [test "$(echo $mount_v | cut -d'.' -f2)" -gt 19])
168   else
169     AM_CONDITIONAL([OLD_LIBMOUNT], [false])
170     AM_CONDITIONAL([NEW_LIBMOUNT], [false])
171   fi
172 fi
173 AM_COND_IF([OLD_LIBMOUNT], [
174      AC_DEFINE_UNQUOTED([OLD_LIBMOUNT], [1], [using first version of libmount])
175   ],[])
176
177 AC_CHECK_HEADERS([netinet/in.h])
178 want_ipv6="yes"
179 have_ipv6="no"
180
181 AC_ARG_ENABLE([ipv6],
182    [AC_HELP_STRING([--disable-ipv6],
183        [disable ipv6 functionality @<:@default=detect@:>@])],
184    [
185     if test "x${enableval}" = "xyes" ; then
186        want_ipv6="yes"
187     else
188        want_ipv6="no"
189     fi],
190    [want_ipv6="auto"])
191
192 # Verify IPV6 availability in headers
193 if test "x${want_ipv6}" != "xno" ; then
194    AC_CHECK_TYPES([struct ipv6_mreq],
195       [have_ipv6="yes"],
196       [have_ipv6="no"],
197       [[
198 #ifdef HAVE_NETINET_IN_H
199 # include <netinet/in.h>
200 #endif
201       ]])
202 fi
203
204 if test "x${have_ipv6}" = "xyes" ; then
205    AC_DEFINE(HAVE_IPV6, 1, [Define if IPV6 is supported])
206 fi
207
208 ### Checks for header files
209
210
211 ### Checks for types
212
213
214 ### Checks for structures
215
216
217 ### Checks for compiler characteristics
218
219 AC_HEADER_STDC
220
221 if ! test "x${VMIC}" = "x" ; then
222    EFL_COMPILER_FLAG([-Wall])
223    EFL_COMPILER_FLAG([-W])
224 fi
225
226 EFL_COMPILER_FLAG([-Wshadow])
227
228
229 ### Binary
230
231 EFL_ENABLE_BIN([eeze-udev-test], ["yes"])
232 EFL_ENABLE_BIN([eeze-mount], ["yes"])
233 EFL_ENABLE_BIN([eeze-disk-ls], ["yes"])
234 EFL_ENABLE_BIN([eeze-umount], ["yes"])
235 EFL_ENABLE_BIN([eeze-scanner], ["yes"])
236
237 AC_SUBST(requirement_eeze)
238
239
240 AC_OUTPUT([
241 Makefile
242 doc/eeze.dox
243 doc/Makefile
244 doc/Doxyfile
245 src/Makefile
246 src/lib/Makefile
247 src/bin/Makefile
248 eeze.pc
249 eeze.spec
250 ])
251
252
253 #####################################################################
254 ## Info
255
256 echo
257 echo
258 echo
259 echo "------------------------------------------------------------------------"
260 echo "$PACKAGE $VERSION"
261 echo "------------------------------------------------------------------------"
262 echo
263 echo "Configuration Options Summary:"
264 if test "x$eeze_mount" = "xyes";then
265   echo
266   echo "Mount..................: ${with_mount}"
267   echo "Umount.................: ${with_umount}"
268   echo "Eject..................: ${with_eject}"
269   echo
270 fi
271 echo "Tests..................: ${have_eeze_udev_test}"
272 echo
273 echo "Demos..................:"
274 echo "  eeze_mount...........: ${have_eeze_mount}"
275 echo "  eeze_umount..........: ${have_eeze_umount}"
276 echo "  eeze_disk_ls.........: ${have_eeze_disk_ls}"
277 echo
278 echo "Utilities..............:"
279 echo "  eeze_scanner.........: ${have_eeze_scanner}"
280 echo
281 echo "IPv6...................: ${have_ipv6}"
282 echo
283 echo "Documentation..........: ${build_doc}"
284 if test "x${build_doc}" = "xyes" ; then
285 echo "    Installation.......: make install-doc"
286 fi
287 echo
288 echo "Compilation............: make (or gmake)"
289 echo "  CPPFLAGS.............: $CPPFLAGS"
290 echo "  CFLAGS...............: $CFLAGS"
291 echo "  LDFLAGS..............: $LDFLAGS"
292 echo
293 echo "Installation...........: make install (as root if needed, with 'su' or 'sudo')"
294 echo "  prefix...............: $prefix"
295 echo
296