blob: f869b9da9eb785d974113ccb14e40befe469ed56 [file] [log] [blame]
Aleksander Morgadoa43cecb2013-06-13 09:48:10 +02001AC_PREREQ([2.63])
Tambet Ingocc314582008-07-31 09:43:00 +03002
Aleksander Morgadode9446e2015-02-20 10:14:58 +01003dnl-----------------------------------------------------------------------------
4dnl Package and library versioning support
5dnl
6
Aleksander Morgado5c68a362013-07-19 10:00:01 +02007m4_define([mm_major_version], [1])
Aleksander Morgado0c554ae2019-11-06 13:15:47 +01008m4_define([mm_minor_version], [13])
Aleksander Morgado9268d4f2019-01-17 16:14:25 +01009m4_define([mm_micro_version], [0])
Aleksander Morgadoa43cecb2013-06-13 09:48:10 +020010m4_define([mm_version],
11 [mm_major_version.mm_minor_version.mm_micro_version])
12
Aleksander Morgado2139e392013-06-13 10:56:04 +020013dnl libtool versioning for libmm-glib (-version-info c:r:a)
14dnl If the interface is unchanged, but the implementation has changed or
15dnl been fixed, then increment r.
16dnl Otherwise, increment c and zero r.
17dnl If the interface has grown (that is, the new library is compatible
18dnl with old code), increment a.
19dnl If the interface has changed in an incompatible way (that is,
20dnl functions have changed or been removed), then zero a.
Aleksander Morgado8c2a6622019-11-06 12:58:45 +010021m4_define([mm_glib_lt_current], [5])
Aleksander Morgado2139e392013-06-13 10:56:04 +020022m4_define([mm_glib_lt_revision], [0])
Aleksander Morgado8c2a6622019-11-06 12:58:45 +010023m4_define([mm_glib_lt_age], [5])
Aleksander Morgado2139e392013-06-13 10:56:04 +020024
Aleksander Morgadode9446e2015-02-20 10:14:58 +010025dnl-----------------------------------------------------------------------------
26dnl autoconf, automake, libtool initialization
27dnl
Aleksander Morgado56cce852013-06-13 11:35:57 +020028AC_INIT([ModemManager],[mm_version],[modemmanager-devel@lists.freedesktop.org],[ModemManager])
Sam Spilsburya0b95db2015-07-21 13:12:44 +080029AM_INIT_AUTOMAKE([1.11.2 subdir-objects tar-ustar no-dist-gzip dist-xz -Wno-portability])
Dan Williamsb4d3ab02010-08-05 22:10:33 -050030m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
Aleksander Morgadode9446e2015-02-20 10:14:58 +010031
Adrian Bunkf31ab092013-05-12 17:10:32 +030032AM_MAINTAINER_MODE([enable])
Aleksander Morgadode9446e2015-02-20 10:14:58 +010033
Aleksander Morgadoee41e572015-02-20 09:39:10 +010034AM_SILENT_RULES([yes])
Tambet Ingocc314582008-07-31 09:43:00 +030035
Michael Biebl22f6ab42010-01-27 15:48:10 -080036AC_CONFIG_MACRO_DIR([m4])
37
Tambet Ingocc314582008-07-31 09:43:00 +030038AC_CONFIG_HEADERS(config.h)
39
Aleksander Morgadoe68bf522011-03-28 11:30:10 +020040dnl Define system extensions for various things like strcasestr()
41AC_USE_SYSTEM_EXTENSIONS
42
Tambet Ingocc314582008-07-31 09:43:00 +030043dnl Required programs
44AC_PROG_CC
45AM_PROG_CC_C_O
46AC_PROG_INSTALL
Aleksander Morgado40e6fa42017-02-15 10:10:51 +010047AC_PROG_MKDIR_P
Aleksander Morgado641ec512011-03-28 18:09:48 +020048
49dnl Initialize libtool
50LT_PREREQ([2.2])
Aleksander Morgado9f700662015-02-20 09:40:09 +010051LT_INIT([disable-static])
Tambet Ingocc314582008-07-31 09:43:00 +030052
Aleksander Morgadode9446e2015-02-20 10:14:58 +010053dnl-----------------------------------------------------------------------------
54dnl Version definitions
55dnl
56
Aleksander Morgadoa43cecb2013-06-13 09:48:10 +020057dnl Version stuff
58MM_MAJOR_VERSION=mm_major_version
59MM_MINOR_VERSION=mm_minor_version
60MM_MICRO_VERSION=mm_micro_version
61MM_VERSION=mm_version
62AC_SUBST(MM_MAJOR_VERSION)
63AC_SUBST(MM_MINOR_VERSION)
64AC_SUBST(MM_MICRO_VERSION)
65AC_SUBST(MM_VERSION)
66
Aleksander Morgado2139e392013-06-13 10:56:04 +020067dnl libtool version stuff
68MM_GLIB_LT_CURRENT=mm_glib_lt_current
69MM_GLIB_LT_REVISION=mm_glib_lt_revision
70MM_GLIB_LT_AGE=mm_glib_lt_age
71AC_SUBST(MM_GLIB_LT_CURRENT)
72AC_SUBST(MM_GLIB_LT_REVISION)
73AC_SUBST(MM_GLIB_LT_AGE)
74
Aleksander Morgadode9446e2015-02-20 10:14:58 +010075dnl-----------------------------------------------------------------------------
Aleksander Morgado09f40c82011-11-22 11:33:35 +010076dnl Documentation
77dnl
Aleksander Morgadode9446e2015-02-20 10:14:58 +010078
Aleksander Morgado09f40c82011-11-22 11:33:35 +010079GTK_DOC_CHECK(1.0)
80
Aleksander Morgadode9446e2015-02-20 10:14:58 +010081dnl-----------------------------------------------------------------------------
82dnl i18n
Aleksander Morgado09f40c82011-11-22 11:33:35 +010083dnl
Aleksander Morgadode9446e2015-02-20 10:14:58 +010084
Aleksander Morgadobb7311f2011-10-12 00:15:11 +020085AM_GNU_GETTEXT([external])
Aleksander Morgado98462512017-08-25 21:35:18 +020086AM_GNU_GETTEXT_VERSION([0.19.8])
Aleksander Morgadobb7311f2011-10-12 00:15:11 +020087
Dan Williams9c958c92010-02-16 11:03:16 -080088GETTEXT_PACKAGE=ModemManager
89AC_SUBST(GETTEXT_PACKAGE)
90AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Gettext package])
Dan Williams9c958c92010-02-16 11:03:16 -080091
Aleksander Morgadode9446e2015-02-20 10:14:58 +010092dnl-----------------------------------------------------------------------------
93dnl Build dependencies
94dnl
95
Aleksander Morgado1bdb1a52016-01-24 15:26:12 +010096GLIB_MIN_VERSION=2.36.0
Aleksander Morgadoaf905062016-10-13 12:00:26 +020097GLIB_BUILD_SYMBOLS="-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36 -DGLIB_DISABLE_DEPRECATION_WARNINGS"
Aleksander Morgado1bdb1a52016-01-24 15:26:12 +010098
Aleksander Morgadodbb06b62011-10-10 11:58:28 +020099PKG_CHECK_MODULES(MM,
Aleksander Morgado1bdb1a52016-01-24 15:26:12 +0100100 glib-2.0 >= $GLIB_MIN_VERSION
Aleksander Morgadodbb06b62011-10-10 11:58:28 +0200101 gmodule-2.0
102 gobject-2.0
103 gio-2.0
Aleksander Morgado4804c372012-09-05 19:51:18 +0200104 gio-unix-2.0)
Aleksander Morgadoaf905062016-10-13 12:00:26 +0200105MM_CFLAGS="$MM_CFLAGS $GLIB_BUILD_SYMBOLS"
Dan Williams4fd62642012-01-27 15:13:42 -0600106AC_SUBST(MM_CFLAGS)
107AC_SUBST(MM_LIBS)
Dan Williams924814c2009-06-18 14:25:30 -0400108
Aleksander Morgadodc8d9df2012-06-26 13:01:39 +0200109PKG_CHECK_MODULES(LIBMM_GLIB,
Aleksander Morgado1bdb1a52016-01-24 15:26:12 +0100110 glib-2.0 >= $GLIB_MIN_VERSION
Aleksander Morgadoba0e4ca2011-10-26 21:08:21 +0200111 gobject-2.0
Aleksander Morgadob6d628b2012-10-02 15:08:46 +0200112 gio-2.0
113 gio-unix-2.0)
Aleksander Morgadoaf905062016-10-13 12:00:26 +0200114LIBMM_GLIB_CFLAGS="$LIBMM_GLIB_CFLAGS $GLIB_BUILD_SYMBOLS"
Aleksander Morgadodc8d9df2012-06-26 13:01:39 +0200115AC_SUBST(LIBMM_GLIB_CFLAGS)
116AC_SUBST(LIBMM_GLIB_LIBS)
Aleksander Morgadoba0e4ca2011-10-26 21:08:21 +0200117
Aleksander Morgado8f450d82011-08-17 18:14:26 +0200118PKG_CHECK_MODULES(MMCLI,
Aleksander Morgado1bdb1a52016-01-24 15:26:12 +0100119 glib-2.0 >= $GLIB_MIN_VERSION
Aleksander Morgado8f450d82011-08-17 18:14:26 +0200120 gobject-2.0
121 gio-2.0)
Aleksander Morgadoaf905062016-10-13 12:00:26 +0200122MMCLI_CFLAGS="$MMCLI_CFLAGS $GLIB_BUILD_SYMBOLS"
Aleksander Morgado8f450d82011-08-17 18:14:26 +0200123AC_SUBST(MMCLI_CFLAGS)
Aleksander Morgado6512fde2016-03-20 17:38:38 +0100124AC_SUBST(MMCLI_LIBS)
Aleksander Morgado8f450d82011-08-17 18:14:26 +0200125
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100126dnl Some required utilities
Aleksander Morgado596c9ea2013-02-06 13:55:04 +0100127GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
128AC_SUBST(GLIB_MKENUMS)
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100129
Aleksander Morgadoff4e4572014-06-13 16:54:06 +0200130GDBUS_CODEGEN=`$PKG_CONFIG --variable=gdbus_codegen gio-2.0`
Aleksander Morgado6313f572014-06-11 17:14:18 +0200131AC_SUBST(GDBUS_CODEGEN)
Tambet Ingoa93f0842008-08-13 10:05:31 +0300132
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100133dnl-----------------------------------------------------------------------------
134dnl Testing support
135dnl
136
137dnl Code coverage (disabled by default)
Jakub Sitnicki75520302015-01-11 15:07:22 +0100138AX_CODE_COVERAGE
139
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100140dnl-----------------------------------------------------------------------------
141dnl Introspection and bindings
142dnl
143
144dnl GObject Introspection
Christian Perschb8838b82013-08-04 13:51:27 +0200145GOBJECT_INTROSPECTION_CHECK([0.9.6])
146
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100147dnl Vala bindings
Christian Perschbfae8632013-08-06 23:12:26 +0200148VAPIGEN_CHECK(0.18)
Christian Persch81194332013-08-14 12:32:17 +0200149if test "x$enable_vala" = "xyes" -a ! -f "$VAPIGEN_MAKEFILE"; then
150 AC_MSG_ERROR([Vala bindings enabled but Makefile.vapigen not found. Install vala-devel, or pass --disable-vala])
151fi
152
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100153dnl-----------------------------------------------------------------------------
154dnl System paths
155dnl
156
157dnl DBus system directory
Aleksander Morgado596c9ea2013-02-06 13:55:04 +0100158AC_ARG_WITH(dbus-sys-dir, AS_HELP_STRING([--with-dbus-sys-dir=DIR], [where D-BUS system.d directory is]))
Tambet Ingoa93f0842008-08-13 10:05:31 +0300159if test -n "$with_dbus_sys_dir" ; then
160 DBUS_SYS_DIR="$with_dbus_sys_dir"
161else
162 DBUS_SYS_DIR="${sysconfdir}/dbus-1/system.d"
163fi
164AC_SUBST(DBUS_SYS_DIR)
165
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100166dnl udev base directory
Dan Williams50105ae2009-07-07 10:45:44 -0400167AC_ARG_WITH(udev-base-dir, AS_HELP_STRING([--with-udev-base-dir=DIR], [where udev base directory is]))
Dan Williams50105ae2009-07-07 10:45:44 -0400168if test -n "$with_udev_base_dir" ; then
169 UDEV_BASE_DIR="$with_udev_base_dir"
170else
171 UDEV_BASE_DIR="/lib/udev"
172fi
173AC_SUBST(UDEV_BASE_DIR)
174
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100175dnl systemd system unit directory
Aleksander Morgado222825d2013-02-06 15:40:28 +0100176AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [where systemd service files are]),
177 [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
178if test "x$with_systemdsystemunitdir" != xno; then
179 AC_SUBST([SYSTEMD_UNIT_DIR], [$with_systemdsystemunitdir])
180fi
181AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$SYSTEMD_UNIT_DIR" -a "$SYSTEMD_UNIT_DIR" != xno ])
182
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100183dnl-----------------------------------------------------------------------------
Aleksander Morgado58c955f2016-09-28 19:46:12 +0200184dnl udev support (enabled by default)
185dnl
186
187GUDEV_VERSION=147
188
189AC_ARG_WITH(udev, AS_HELP_STRING([--without-udev], [Build without udev support]), [], [with_udev=yes])
190AM_CONDITIONAL(WITH_UDEV, test "x$with_udev" = "xyes")
191case $with_udev in
192 yes)
193 PKG_CHECK_MODULES(GUDEV, [gudev-1.0 >= $GUDEV_VERSION], [have_gudev=yes],[have_gudev=no])
194 if test "x$have_gudev" = "xno"; then
195 AC_MSG_ERROR([Couldn't find gudev >= $GUDEV_VERSION. Install it, or otherwise configure using --without-udev to disable udev support.])
196 else
197 AC_DEFINE(WITH_UDEV, 1, [Define if you want udev support])
198 AC_SUBST(GUDEV_CFLAGS)
199 AC_SUBST(GUDEV_LIBS)
200 fi
201 ;;
202 *)
203 with_udev=no
204 ;;
205esac
206
207dnl-----------------------------------------------------------------------------
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100208dnl Suspend/resume support
209dnl
210
Aleksander Morgado1f139092016-04-01 13:06:55 +0200211PKG_CHECK_MODULES(LIBSYSTEMD, [libsystemd >= 209],[have_libsystemd=yes],[have_libsystemd=no])
212PKG_CHECK_MODULES(LIBSYSTEMD_LOGIN, [libsystemd-login >= 183],[have_libsystemd_login=yes],[have_libsystemd_login=no])
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200213AC_ARG_WITH(systemd-suspend-resume,
214 AS_HELP_STRING([--with-systemd-suspend-resume=no|yes],
215 [Enable systemd suspend/resume support [[default=auto]]]),,
216 [with_systemd_suspend_resume=auto])
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100217
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200218if test "x$with_systemd_suspend_resume" = "xauto"; then
Aleksander Morgado1f139092016-04-01 13:06:55 +0200219 if test "x$have_libsystemd" = "xyes" || test "x$have_libsystemd_login" = "xyes"; then
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200220 with_systemd_suspend_resume=yes
Aleksander Morgado1f139092016-04-01 13:06:55 +0200221 else
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200222 with_systemd_suspend_resume=no
Aleksander Morgado1f139092016-04-01 13:06:55 +0200223 fi
Aleksander Morgadoa92b6f22015-01-15 11:53:03 +0100224fi
225
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200226case $with_systemd_suspend_resume in
227 yes)
Aleksander Morgado1f139092016-04-01 13:06:55 +0200228 if test "x$have_libsystemd" = "xno" && test "x$have_libsystemd_login" = "xno"; then
229 AC_MSG_ERROR(libsystemd or libsystemd-login development headers are required)
230 fi
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200231 AC_DEFINE(WITH_SYSTEMD_SUSPEND_RESUME, 1, [Define if you have systemd suspend-resume support])
Aleksander Morgadoa92b6f22015-01-15 11:53:03 +0100232 ;;
233 *)
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200234 with_systemd_suspend_resume=no
Aleksander Morgadoa92b6f22015-01-15 11:53:03 +0100235 ;;
236esac
237
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200238AM_CONDITIONAL(WITH_SYSTEMD_SUSPEND_RESUME, test "x$with_systemd_suspend_resume" = "xyes")
Aleksander Morgadoa92b6f22015-01-15 11:53:03 +0100239
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100240dnl-----------------------------------------------------------------------------
Torsten Hilbrichfd0bed12017-06-21 12:59:35 +0200241dnl systemd journal support
242dnl
243
244AC_ARG_WITH(systemd-journal,
245 AS_HELP_STRING([--with-systemd-journal=no|yes|auto],
246 [Enable systemd journal support [[default=auto]]]),,
247 [with_systemd_journal=auto])
248
249if test "x$with_systemd_journal" = "xauto"; then
250 if test "x$have_libsystemd" = "xyes"; then
251 with_systemd_journal=yes
252 else
253 with_systemd_journal=no
254 fi
255fi
256
257case $with_systemd_journal in
Torsten Hilbrichfd0bed12017-06-21 12:59:35 +0200258 yes)
259 if test "x$have_libsystemd" = "xno"; then
260 AC_MSG_ERROR(libsystemd development headers are required)
Aleksander Morgado34155552017-06-22 10:30:48 +0200261 fi
Torsten Hilbrichfd0bed12017-06-21 12:59:35 +0200262 AC_DEFINE(WITH_SYSTEMD_JOURNAL, 1, [Define if you want systemd journal support])
263 ;;
264 *)
Aleksander Morgado34155552017-06-22 10:30:48 +0200265 with_systemd_journal=no
Torsten Hilbrichfd0bed12017-06-21 12:59:35 +0200266 ;;
267esac
268
269AM_CONDITIONAL(WITH_SYSTEMD_JOURNAL, test "x$with_systemd_journal" = "xyes")
270
271dnl-----------------------------------------------------------------------------
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100272dnl PolicyKit
273dnl
274
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200275PKG_CHECK_MODULES(POLKIT, [polkit-gobject-1 >= 0.97], [have_polkit=yes],[have_polkit=no])
276AC_ARG_WITH(polkit,
Aleksander Morgado0e5fdad2016-04-01 12:58:55 +0200277 AS_HELP_STRING([--with-polkit=(strict|permissive|no)],
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200278 [Enable PolicyKit support [[default=auto]]]),,
279 [with_polkit=auto])
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100280
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200281if test "x$with_polkit" = "xauto"; then
282 if test "x$have_polkit" = "xno"; then
Aleksander Morgado0e5fdad2016-04-01 12:58:55 +0200283 with_polkit="no"
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200284 else
285 with_polkit="strict"
286 fi
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200287elif test "x$with_polkit" = "xyes"; then
288 with_polkit=strict
289fi
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100290
Aleksander Morgado55c3f7d2019-09-25 13:23:42 +0200291MM_POLKIT_SERVICE=""
Aleksander Morgadoacf36f22017-06-22 10:26:12 +0200292if test "x$with_polkit" != "xno"; then
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200293 if test "x$have_polkit" = "xno"; then
294 AC_MSG_ERROR(PolicyKit development headers are required)
295 fi
Dan Williams67d936e2010-09-01 17:20:57 -0500296
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200297 case "x$with_polkit" in
298 "xpermissive")
299 MM_DEFAULT_USER_POLICY="yes"
Aleksander Morgado55c3f7d2019-09-25 13:23:42 +0200300 MM_POLKIT_SERVICE="polkit.service"
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200301 ;;
302 "xstrict")
303 MM_DEFAULT_USER_POLICY="auth_self_keep"
Aleksander Morgado55c3f7d2019-09-25 13:23:42 +0200304 MM_POLKIT_SERVICE="polkit.service"
Aleksander Morgado0c7265d2013-06-10 18:30:12 +0200305 ;;
306 *)
307 AC_MSG_ERROR([Wrong value for --with-polkit: $with_polkit])
308 ;;
309 esac
310
311 AC_DEFINE(WITH_POLKIT, 1, [Define if you have PolicyKit support])
312 AC_SUBST(POLKIT_CFLAGS)
313 AC_SUBST(POLKIT_LIBS)
314 AC_SUBST(MM_DEFAULT_USER_POLICY)
315fi
316
Aleksander Morgado55c3f7d2019-09-25 13:23:42 +0200317AC_SUBST(MM_POLKIT_SERVICE)
Aleksander Morgado0e5fdad2016-04-01 12:58:55 +0200318AM_CONDITIONAL(WITH_POLKIT, [test "x$with_polkit" != "xno"])
Dan Williams438a0472010-02-26 18:01:55 -0800319
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100320dnl-----------------------------------------------------------------------------
Aleksander Morgadoc78ba5e2019-06-01 10:23:15 +0200321dnl AT command via DBus support (disabled by default unless running in --debug)
322dnl
323dnl It is suggested that this option is only enabled in custom built systems and
324dnl only if truly required.
325dnl
326
327AC_ARG_WITH(at_command_via_dbus,
328 AS_HELP_STRING([--with-at-command-via-dbus],
329 [Build with Modem.Command() interface enabled always]),
330 [],
331 [with_at_command_via_dbus=no])
332
333if test "x$with_at_command_via_dbus" = "xyes"; then
334 AC_DEFINE(WITH_AT_COMMAND_VIA_DBUS, 1, [Define if you want to enable AT commands via DBus])
335fi
336
337dnl-----------------------------------------------------------------------------
Aleksander Morgado5b3392e2013-07-14 17:12:55 +0200338dnl MBIM support (enabled by default)
Aleksander Morgadodd5680d2013-04-06 19:23:14 +0200339dnl
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100340
Aleksander Morgadoe826a242019-01-08 15:35:16 +0100341LIBMBIM_VERSION=1.18.0
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100342
Aleksander Morgado5b3392e2013-07-14 17:12:55 +0200343AC_ARG_WITH(mbim, AS_HELP_STRING([--without-mbim], [Build without MBIM support]), [], [with_mbim=yes])
344AM_CONDITIONAL(WITH_MBIM, test "x$with_mbim" = "xyes")
345case $with_mbim in
346 yes)
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100347 PKG_CHECK_MODULES(MBIM, [mbim-glib >= $LIBMBIM_VERSION], [have_mbim=yes],[have_mbim=no])
Aleksander Morgado5b3392e2013-07-14 17:12:55 +0200348 if test "x$have_mbim" = "xno"; then
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100349 AC_MSG_ERROR([Couldn't find libmbim-glib >= $LIBMBIM_VERSION. Install it, or otherwise configure using --without-mbim to disable MBIM support.])
Aleksander Morgado0e60d962013-04-17 15:34:23 +0200350 else
Aleksander Morgado5b3392e2013-07-14 17:12:55 +0200351 AC_DEFINE(WITH_MBIM, 1, [Define if you want MBIM support])
352 AC_SUBST(MBIM_CFLAGS)
353 AC_SUBST(MBIM_LIBS)
Aleksander Morgado0e60d962013-04-17 15:34:23 +0200354 fi
Aleksander Morgado5b3392e2013-07-14 17:12:55 +0200355 ;;
356 *)
357 with_mbim=no
358 ;;
359esac
Aleksander Morgadodd5680d2013-04-06 19:23:14 +0200360
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100361dnl-----------------------------------------------------------------------------
Aleksander Morgado4804c372012-09-05 19:51:18 +0200362dnl QMI support (enabled by default)
Aleksander Morgadodd5680d2013-04-06 19:23:14 +0200363dnl
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100364
Aleksander Morgadod7d2b912019-11-12 10:55:06 +0100365LIBQMI_VERSION=1.25.1
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100366
Aleksander Morgado4804c372012-09-05 19:51:18 +0200367AC_ARG_WITH(qmi, AS_HELP_STRING([--without-qmi], [Build without QMI support]), [], [with_qmi=yes])
368AM_CONDITIONAL(WITH_QMI, test "x$with_qmi" = "xyes")
369case $with_qmi in
370 yes)
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100371 PKG_CHECK_MODULES(QMI, [qmi-glib >= $LIBQMI_VERSION], [have_qmi=yes],[have_qmi=no])
Aleksander Morgadoac588e92013-07-14 17:04:26 +0200372 if test "x$have_qmi" = "xno"; then
Aleksander Morgado30cbf722015-10-25 15:41:08 +0100373 AC_MSG_ERROR([Couldn't find libqmi-glib >= $LIBQMI_VERSION. Install it, or otherwise configure using --without-qmi to disable QMI support.])
Aleksander Morgadoac588e92013-07-14 17:04:26 +0200374 else
375 AC_DEFINE(WITH_QMI, 1, [Define if you want QMI support])
376 AC_SUBST(QMI_CFLAGS)
377 AC_SUBST(QMI_LIBS)
378 fi
Aleksander Morgado4804c372012-09-05 19:51:18 +0200379 ;;
380 *)
381 with_qmi=no
382 ;;
383esac
384
Michael Biebl22e68782010-01-27 15:48:55 -0800385NM_COMPILER_WARNINGS
386
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100387dnl-----------------------------------------------------------------------------
Dan Williamsafebde42010-05-21 09:43:47 -0700388dnl Distribution version string
389dnl
390AC_ARG_WITH(dist-version, AS_HELP_STRING([--with-dist-version=<mm-dist-version>], [Define the custom version (like distribution package name and revision)]), ac_distver=$withval, ac_distver="")
391if ! test x"$ac_distver" = x""; then
392 AC_DEFINE_UNQUOTED(MM_DIST_VERSION, "$ac_distver", [Define the distribution version string])
393fi
394
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100395dnl-----------------------------------------------------------------------------
396dnl Protocol libs
397dnl
398
Dan Williams4fd62642012-01-27 15:13:42 -0600399AM_CONDITIONAL(QCDM_STANDALONE, test "yes" = "no")
Dan Williams4fd62642012-01-27 15:13:42 -0600400
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100401dnl-----------------------------------------------------------------------------
Aleksander Morgado09080072019-11-21 18:28:51 +0100402dnl Plugins
403dnl
404dnl By default all plugins are built and installed. If the user wants to build only
405dnl some specific plugins, this can be done by disabling all first and then enabling
406dnl only the ones required, e.g.:
407dnl $ ./configure \
408dnl --disable-all-plugins \
409dnl --enable-plugin-generic \
410dnl --enable-plugin-zte ...
411dnl
412dnl If the user wants all plugins except for some specific ones, those can be
413dnl explicitly disabled, e.g.:
414dnl $ ./configure \
415dnl --disable-plugin-generic \
416dnl --disable-plugin-zte ...
417dnl
418
419MM_ENABLE_ALL_PLUGINS
420
421MM_ENABLE_PLUGIN([generic])
422MM_ENABLE_PLUGIN([altair-lte])
423MM_ENABLE_PLUGIN([anydata])
424MM_ENABLE_PLUGIN([cinterion])
425MM_ENABLE_PLUGIN([dell],
426 [with_shared_sierra,
427 with_shared_novatel,
428 with_shared_xmm,
429 with_shared_telit,
430 with_shared_foxconn])
431MM_ENABLE_PLUGIN([dlink])
432MM_ENABLE_PLUGIN([fibocom],
433 [with_shared_xmm])
434MM_ENABLE_PLUGIN([foxconn],
435 [with_shared_foxconn])
436MM_ENABLE_PLUGIN([haier])
437MM_ENABLE_PLUGIN([huawei])
438MM_ENABLE_PLUGIN([iridium])
439MM_ENABLE_PLUGIN([linktop])
440MM_ENABLE_PLUGIN([longcheer])
441MM_ENABLE_PLUGIN([mbm])
442MM_ENABLE_PLUGIN([motorola])
443MM_ENABLE_PLUGIN([mtk])
444MM_ENABLE_PLUGIN([nokia])
445MM_ENABLE_PLUGIN([nokia-icera],
446 [with_shared_icera])
447MM_ENABLE_PLUGIN([novatel],
448 [with_shared_novatel])
449MM_ENABLE_PLUGIN([novatel-lte])
450MM_ENABLE_PLUGIN([option],
451 [with_shared_option])
452MM_ENABLE_PLUGIN([option-hso],
453 [with_shared_option])
454MM_ENABLE_PLUGIN([pantech])
455MM_ENABLE_PLUGIN([quectel])
456MM_ENABLE_PLUGIN([samsung],
457 [with_shared_icera])
458MM_ENABLE_PLUGIN([sierra-legacy],
459 [with_shared_icera,
460 with_shared_sierra])
461MM_ENABLE_PLUGIN([sierra])
462MM_ENABLE_PLUGIN([simtech])
463MM_ENABLE_PLUGIN([telit],
464 [with_shared_telit])
465MM_ENABLE_PLUGIN([thuraya])
466MM_ENABLE_PLUGIN([tplink])
467MM_ENABLE_PLUGIN([ublox])
468MM_ENABLE_PLUGIN([via])
469MM_ENABLE_PLUGIN([wavecom])
470MM_ENABLE_PLUGIN([x22x])
471MM_ENABLE_PLUGIN([zte],
472 [with_shared_icera])
473
474MM_BUILD_SHARED([icera])
475MM_BUILD_SHARED([sierra])
476MM_BUILD_SHARED([option])
477MM_BUILD_SHARED([novatel])
478MM_BUILD_SHARED([xmm])
479MM_BUILD_SHARED([telit])
480MM_BUILD_SHARED([foxconn])
481
482dnl-----------------------------------------------------------------------------
483dnl Output
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100484dnl
485
Tambet Ingocc314582008-07-31 09:43:00 +0300486AC_CONFIG_FILES([
487Makefile
Aleksander Morgado8d975382011-11-22 13:36:48 +0100488data/Makefile
Aleksander Morgado6fa3f0b2012-05-24 09:59:00 +0200489data/ModemManager.pc
Aleksander Morgado6fa3f0b2012-05-24 09:59:00 +0200490data/mm-glib.pc
Aleksander Morgado46ff06f2013-11-22 10:11:36 +0100491data/tests/Makefile
492data/tests/org.freedesktop.ModemManager1.service
Aleksander Morgado365b9062011-10-18 19:57:17 +0200493include/Makefile
Aleksander Morgadoa43cecb2013-06-13 09:48:10 +0200494include/ModemManager-version.h
Aleksander Morgado365b9062011-10-18 19:57:17 +0200495build-aux/Makefile
Dan Williams704d6e92010-02-08 09:13:17 -0800496libqcdm/Makefile
497libqcdm/src/Makefile
498libqcdm/tests/Makefile
Tambet Ingocc314582008-07-31 09:43:00 +0300499src/Makefile
Dan Williams216e49f2010-01-05 14:29:19 -0600500src/tests/Makefile
Tambet Ingocc314582008-07-31 09:43:00 +0300501plugins/Makefile
Tambet Ingof0a2dc62008-07-31 14:03:37 +0300502test/Makefile
Tambet Ingocc314582008-07-31 09:43:00 +0300503introspection/Makefile
Aleksander Morgado1eaa4162013-11-22 09:24:07 +0100504introspection/tests/Makefile
Dan Williams9c958c92010-02-16 11:03:16 -0800505po/Makefile.in
Aleksander Morgado09f40c82011-11-22 11:33:35 +0100506docs/Makefile
Aleksander Morgado3b976c42011-11-22 12:17:12 +0100507docs/man/Makefile
Aleksander Morgado09f40c82011-11-22 11:33:35 +0100508docs/reference/Makefile
509docs/reference/api/Makefile
510docs/reference/api/version.xml
Aleksander Morgadoca14de02012-10-01 14:08:40 +0200511docs/reference/libmm-glib/Makefile
512docs/reference/libmm-glib/version.xml
Aleksander Morgadoba0e4ca2011-10-26 21:08:21 +0200513libmm-glib/Makefile
Aleksander Morgadob6d628b2012-10-02 15:08:46 +0200514libmm-glib/generated/Makefile
Aleksander Morgado4827e792013-11-22 09:25:21 +0100515libmm-glib/generated/tests/Makefile
Aleksander Morgadob6d628b2012-10-02 15:08:46 +0200516libmm-glib/tests/Makefile
Christian Perschbfae8632013-08-06 23:12:26 +0200517vapi/Makefile
Aleksander Morgado8f450d82011-08-17 18:14:26 +0200518cli/Makefile
Aleksander Morgadoebff76c2014-04-10 19:05:13 +0200519examples/Makefile
520examples/modem-watcher-python/Makefile
Aleksander Morgadoae99c452014-04-11 09:27:51 +0200521examples/modem-watcher-javascript/Makefile
Aleksander Morgado24fd3ef2016-07-25 10:36:42 +0200522examples/sms-python/Makefile
Tambet Ingocc314582008-07-31 09:43:00 +0300523])
524AC_OUTPUT
Dan Williams71cbcb82009-12-21 11:18:38 -0800525
Aleksander Morgado7e0f0162011-10-11 15:13:04 +0200526echo "
527 ModemManager $VERSION
528 ==============================================
529
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100530 Build:
531 compiler: ${CC}
532 cflags: ${CFLAGS}
533 ldflags: ${LDFLAGS}
534 maintainer mode: ${USE_MAINTAINER_MODE}
535
536 System paths:
537 prefix: ${prefix}
538 D-Bus system directory: ${DBUS_SYS_DIR}
539 udev base directory: ${UDEV_BASE_DIR}
540 systemd unit directory: ${with_systemdsystemunitdir}
541
542 Features:
Aleksander Morgado4d6896f2017-06-22 10:51:40 +0200543 udev: ${with_udev}
544 policykit: ${with_polkit}
545 mbim: ${with_mbim}
546 qmi: ${with_qmi}
547 systemd suspend/resume: ${with_systemd_suspend_resume}
548 systemd journal: ${with_systemd_journal}
Aleksander Morgadoc78ba5e2019-06-01 10:23:15 +0200549 at command via dbus: ${with_at_command_via_dbus}
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100550
Aleksander Morgado09080072019-11-21 18:28:51 +0100551 Shared utils:
552 icera: ${with_shared_icera}
553 sierra: ${with_shared_sierra}
554 option: ${with_shared_option}
555 novatel: ${with_shared_novatel}
556 xmm: ${with_shared_xmm}
557 telit: ${with_shared_telit}
558 foxconn: ${with_shared_foxconn}
559
560 Plugins:
561 generic: ${enable_plugin_generic}
562 altair lte: ${enable_plugin_altair_lte}
563 anydata: ${enable_plugin_anydata}
564 cinterion: ${enable_plugin_cinterion}
565 dell: ${enable_plugin_dell}
566 dlink: ${enable_plugin_dlink}
567 fibocom: ${enable_plugin_fibocom}
568 foxconn: ${enable_plugin_foxconn}
569 haier: ${enable_plugin_haier}
570 huawei: ${enable_plugin_huawei}
571 iridium: ${enable_plugin_iridium}
572 linktop: ${enable_plugin_linktop}
573 longcheer: ${enable_plugin_longcheer}
574 mbm: ${enable_plugin_mbm}
575 motorola: ${enable_plugin_motorola}
576 mtk: ${enable_plugin_mtk}
577 nokia: ${enable_plugin_nokia}
578 nokia icera: ${enable_plugin_nokia_icera}
579 novatel: ${enable_plugin_novatel}
580 novatel lte: ${enable_plugin_novatel_lte}
581 option: ${enable_plugin_option}
582 option hso: ${enable_plugin_option_hso}
583 pantech: ${enable_plugin_pantech}
584 quectel: ${enable_plugin_quectel}
585 samsung: ${enable_plugin_samsung}
586 sierra legacy: ${enable_plugin_sierra_legacy}
587 sierra: ${enable_plugin_sierra}
588 simtech: ${enable_plugin_simtech}
589 telit: ${enable_plugin_telit}
590 thuraya: ${enable_plugin_thuraya}
591 tplink: ${enable_plugin_tplink}
592 ublox: ${enable_plugin_ublox}
593 via: ${enable_plugin_via}
594 wavecom: ${enable_plugin_wavecom}
595 x22x: ${enable_plugin_x22x}
596 zte: ${enable_plugin_zte}
597
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100598 Miscellaneous:
599 gobject introspection: ${found_introspection}
600 vala bindings: ${enable_vala}
601 documentation: ${enable_gtk_doc}
602 code coverage: ${CODE_COVERAGE_ENABLED}"
Jakub Sitnicki75520302015-01-11 15:07:22 +0100603if test "x${CODE_COVERAGE_ENABLED}" = "xyes"; then
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100604 echo " code coverage cflags: ${CODE_COVERAGE_CFLAGS}"
605 echo " code coverage ldflags: ${CODE_COVERAGE_LDFLAGS}"
Jakub Sitnicki75520302015-01-11 15:07:22 +0100606fi
Aleksander Morgadode9446e2015-02-20 10:14:58 +0100607echo ""