modemmanager: switch to meson build tools

Using https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git to download the source code.
Added compile option to compile qrtr support.
Enabled lto and additional gcc flags for perfomance and less size.
Modified to use meson as upstream has abandoned autotools.
Removed BUILD_PARALLEL options. These are default with ninja/meson.

Signed-off-by: Maxim Anisimov <maxim.anisimov.ua@gmail.com>
This commit is contained in:
Maxim Anisimov 2022-03-27 09:09:24 +03:00 committed by Rosen Penev
parent d1edd7677a
commit 6ae8b15d68
4 changed files with 235 additions and 52 deletions

View File

@ -1,21 +1,30 @@
menu "Configuration"
depends on PACKAGE_modemmanager
depends on PACKAGE_modemmanager
config MODEMMANAGER_WITH_MBIM
bool "Include MBIM support"
default y
help
Compile ModemManager with MBIM support
config MODEMMANAGER_WITH_MBIM
bool "Include MBIM support"
default y
help
Compile ModemManager with MBIM support
config MODEMMANAGER_WITH_QMI
bool "Include QMI support"
default y
help
Compile ModemManager with QMI support
config MODEMMANAGER_WITH_QMI
bool "Include QMI support"
default y
help
Compile ModemManager with QMI support
config MODEMMANAGER_WITH_QRTR
bool "Include QRTR support"
default y
depends on MODEMMANAGER_WITH_QMI
select LIBQMI_WITH_QRTR_GLIB
help
Compile ModemManager with QRTR support
config MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS
bool "Allow AT commands via DBus"
default n
help
Compile ModemManager allowing AT commands without debug flag
config MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS
bool "Allow AT commands via DBus"
default n
help
Compile ModemManager allowing AT commands without debug flag
endmenu

View File

@ -8,23 +8,26 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=modemmanager
PKG_VERSION:=1.18.6
PKG_SOURCE_VERSION:=1.18.6
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=ModemManager-$(PKG_VERSION).tar.xz
PKG_SOURCE_URL:=https://www.freedesktop.org/software/ModemManager
PKG_HASH:=d4f804b31cf504239c5f1d4973c62095c00cba1ee9abb503718dac6d146a470a
PKG_BUILD_DIR:=$(BUILD_DIR)/ModemManager-$(PKG_VERSION)
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
PKG_MIRROR_HASH:=72f1a865153745d05c482ed3a77f2045d24387f1f9a37177fe7bc35ab7663765
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_BUILD_DEPENDS:=glib2/host libxslt/host
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/nls.mk
include $(INCLUDE_DIR)/meson.mk
TARGET_CFLAGS += -ffunction-sections -fdata-sections -fno-merge-all-constants -fmerge-constants
TARGET_LDFLAGS += -Wl,--gc-sections
define Package/modemmanager/config
source "$(SOURCE)/Config.in"
@ -41,7 +44,8 @@ define Package/modemmanager
+dbus \
+ppp \
+MODEMMANAGER_WITH_MBIM:libmbim \
+MODEMMANAGER_WITH_QMI:libqmi
+MODEMMANAGER_WITH_QMI:libqmi \
+MODEMMANAGER_WITH_QRTR:libqrtr-glib
endef
define Package/modemmanager/description
@ -50,35 +54,21 @@ define Package/modemmanager/description
Select Utilities/usb-modeswitch if needed.
endef
CONFIGURE_ARGS += \
--without-polkit \
--without-udev \
--without-systemdsystemunitdir \
--disable-rpath \
--disable-gtk-doc
ifeq ($(CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS),y)
CONFIGURE_ARGS += --with-at-command-via-dbus
endif
ifdef CONFIG_MODEMMANAGER_WITH_MBIM
CONFIGURE_ARGS += --with-mbim
else
CONFIGURE_ARGS += --without-mbim
endif
ifdef CONFIG_MODEMMANAGER_WITH_QMI
CONFIGURE_ARGS += --with-qmi
else
CONFIGURE_ARGS += --without-qmi
endif
define Build/Prepare
$(call Build/Prepare/Default)
( cd "$(PKG_BUILD_DIR)"; \
printf "all:\ninstall:\n" >po/Makefile.in.in; \
)
endef
MESON_ARGS += \
-Dudev=false \
-Dudevdir=/lib/udev \
-Dsystemdsystemunitdir=no \
-Dsystemd_suspend_resume=false \
-Dsystemd_journal=false \
-Dpolkit=no \
-Dintrospection=false \
-Dman=false \
-Dbash_completion=false \
-Db_lto=true \
-Dmbim=$(if $(CONFIG_MODEMMANAGER_WITH_MBIM),true,false) \
-Dqmi=$(if $(CONFIG_MODEMMANAGER_WITH_QMI),true,false) \
-Dqrtr=$(if $(CONFIG_MODEMMANAGER_WITH_QRTR),true,false) \
-Dat_command_via_dbus=$(if $(CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS),true,false)
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include/ModemManager

View File

@ -0,0 +1,88 @@
--- a/plugins/broadmobi/mm-plugin-broadmobi.c
+++ b/plugins/broadmobi/mm-plugin-broadmobi.c
@@ -19,7 +19,6 @@
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
-#include "mm-port-enums-types.h"
#include "mm-log-object.h"
#include "mm-plugin-broadmobi.h"
#include "mm-broadband-modem.h"
--- a/plugins/dlink/mm-plugin-dlink.c
+++ b/plugins/dlink/mm-plugin-dlink.c
@@ -19,7 +19,6 @@
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
-#include "mm-port-enums-types.h"
#include "mm-log-object.h"
#include "mm-plugin-dlink.h"
#include "mm-broadband-modem.h"
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -461,7 +461,7 @@ if plugins_options['huawei']
plugins += {'plugin-huawei': {
'plugin': true,
'helper': {'sources': files('huawei/mm-modem-helpers-huawei.c'), 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
- 'module': {'sources': sources + enums_sources, 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
+ 'module': {'sources': sources + enums_sources + port_enums_sources, 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
'test': {'sources': files('huawei/tests/test-modem-helpers-huawei.c') + enums_sources, 'include_directories': huawei_inc, 'dependencies': libhelpers_dep},
}}
--- a/plugins/telit/mm-plugin-telit.c
+++ b/plugins/telit/mm-plugin-telit.c
@@ -21,7 +21,6 @@
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
-#include "mm-port-enums-types.h"
#include "mm-log-object.h"
#include "mm-modem-helpers.h"
#include "mm-plugin-telit.h"
--- a/plugins/tplink/mm-plugin-tplink.c
+++ b/plugins/tplink/mm-plugin-tplink.c
@@ -19,7 +19,6 @@
#define _LIBMM_INSIDE_MM
#include <libmm-glib.h>
-#include "mm-port-enums-types.h"
#include "mm-log-object.h"
#include "mm-plugin-tplink.h"
#include "mm-broadband-modem.h"
--- a/src/meson.build
+++ b/src/meson.build
@@ -147,15 +147,15 @@ endif
enums_types = 'mm-port-enums-types'
-enums_sources = []
-enums_sources += gnome.mkenums(
+port_enums_sources = []
+port_enums_sources += gnome.mkenums(
enums_types + '.c',
sources: headers,
c_template: build_aux_dir / enums_types + '.c.template',
fhead: '#include "mm-port-enums-types.h"',
)
-enums_sources += gnome.mkenums(
+port_enums_sources += gnome.mkenums(
enums_types + '.h',
sources: headers,
h_template: build_aux_dir / enums_types + '.h.template',
@@ -165,13 +165,13 @@ enums_sources += gnome.mkenums(
libport = static_library(
'port',
- sources: sources + enums_sources,
+ sources: sources + port_enums_sources,
include_directories: top_inc,
dependencies: deps + private_deps,
)
libport_dep = declare_dependency(
- sources: enums_sources[1],
+ sources: port_enums_sources[1],
include_directories: '.',
dependencies: deps,
link_with: libport,

View File

@ -0,0 +1,96 @@
--- a/plugins/meson.build
+++ b/plugins/meson.build
@@ -88,7 +88,7 @@ if plugins_shared['icera']
plugins += {'shared-icera': {
'plugin': false,
'helper': {'sources': files('icera/mm-modem-helpers-icera.c'), 'include_directories': plugins_incs, 'c_args': common_c_args},
- 'module': {'sources': sources, 'include_directories': plugins_incs, 'c_args': common_c_args},
+ 'module': {'sources': sources + daemon_enums_sources, 'include_directories': plugins_incs, 'c_args': common_c_args},
'test': {'sources': files('icera/tests/test-modem-helpers-icera.c'), 'include_directories': plugins_incs + [icera_inc], 'dependencies': libhelpers_dep},
}}
endif
@@ -185,7 +185,7 @@ if plugins_shared['telit']
plugins += {'shared-telit': {
'plugin': false,
'helper': {'sources': files('telit/mm-modem-helpers-telit.c'), 'include_directories': plugins_incs, 'c_args': common_c_args},
- 'module': {'sources': sources, 'include_directories': plugins_incs + [telit_inc], 'c_args': common_c_args},
+ 'module': {'sources': sources + daemon_enums_sources, 'include_directories': plugins_incs + [telit_inc], 'c_args': common_c_args},
'test': {'sources': files('telit/tests/test-mm-modem-helpers-telit.c'), 'include_directories': telit_inc, 'dependencies': libmm_test_common_dep},
}}
endif
@@ -285,7 +285,7 @@ if plugins_options['cinterion']
plugins += {'plugin-cinterion': {
'plugin': true,
'helper': {'sources': files('cinterion/mm-modem-helpers-cinterion.c'), 'include_directories': plugins_incs, 'c_args': common_c_args},
- 'module': {'sources': sources, 'include_directories': plugins_incs, 'c_args': common_c_args},
+ 'module': {'sources': sources + daemon_enums_sources, 'include_directories': plugins_incs, 'c_args': common_c_args},
'test': {'sources': files('cinterion/tests/test-modem-helpers-cinterion.c'), 'include_directories': plugins_incs + [include_directories('cinterion')], 'dependencies': libport_dep},
}}
@@ -460,8 +460,8 @@ if plugins_options['huawei']
plugins += {'plugin-huawei': {
'plugin': true,
- 'helper': {'sources': files('huawei/mm-modem-helpers-huawei.c'), 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
- 'module': {'sources': sources + enums_sources + port_enums_sources, 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
+ 'helper': {'sources': files('huawei/mm-modem-helpers-huawei.c') + daemon_enums_sources, 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
+ 'module': {'sources': sources + enums_sources + port_enums_sources + daemon_enums_sources, 'include_directories': plugins_incs + [huawei_inc], 'c_args': common_c_args + ['-DMM_MODULE_NAME="huawei"']},
'test': {'sources': files('huawei/tests/test-modem-helpers-huawei.c') + enums_sources, 'include_directories': huawei_inc, 'dependencies': libhelpers_dep},
}}
@@ -534,7 +534,7 @@ if plugins_options['mbm']
plugins += {'plugin-ericsson-mbm': {
'plugin': true,
'helper': {'sources': files('mbm/mm-modem-helpers-mbm.c'), 'include_directories': plugins_incs, 'c_args': common_c_args + ['-DMM_MODULE_NAME="ericsson-mbm"']},
- 'module': {'sources': sources, 'include_directories': plugins_incs, 'c_args': common_c_args + ['-DMM_MODULE_NAME="ericsson-mbm"']},
+ 'module': {'sources': sources + daemon_enums_sources, 'include_directories': plugins_incs, 'c_args': common_c_args + ['-DMM_MODULE_NAME="ericsson-mbm"']},
'test': {'sources': files('mbm/tests/test-modem-helpers-mbm.c'), 'include_directories': plugins_incs + [include_directories('mbm')], 'dependencies': libhelpers_dep},
}}
@@ -644,7 +644,7 @@ if plugins_options['option-hso']
plugins += {'plugin-option-hso': {
'plugin': true,
- 'module': {'sources': sources, 'include_directories': plugins_incs, 'c_args': '-DMM_MODULE_NAME="option-hso"'},
+ 'module': {'sources': sources + daemon_enums_sources, 'include_directories': plugins_incs, 'c_args': '-DMM_MODULE_NAME="option-hso"'},
}}
endif
@@ -852,7 +852,7 @@ if plugins_options['ublox']
plugins += {'plugin-ublox': {
'plugin': true,
'helper': {'sources': files('ublox/mm-modem-helpers-ublox.c'), 'include_directories': plugins_incs, 'c_args': common_c_args},
- 'module': {'sources': sources, 'include_directories': plugins_incs + [ublox_inc], 'c_args': common_c_args},
+ 'module': {'sources': sources + daemon_enums_sources, 'include_directories': plugins_incs + [ublox_inc], 'c_args': common_c_args},
'test': {'sources': files('ublox/tests/test-modem-helpers-ublox.c'), 'include_directories': ublox_inc, 'dependencies': libmm_test_common_dep},
}}
--- a/src/meson.build
+++ b/src/meson.build
@@ -225,14 +225,15 @@ sources = files(
enums_types = 'mm-daemon-enums-types'
-sources += gnome.mkenums(
+daemon_enums_sources = []
+daemon_enums_sources += gnome.mkenums(
enums_types + '.c',
sources: headers,
c_template: build_aux_dir / enums_types + '.c.template',
fhead: '#include "mm-daemon-enums-types.h"',
)
-sources += gnome.mkenums(
+daemon_enums_sources += gnome.mkenums(
enums_types + '.h',
sources: headers,
h_template: build_aux_dir / enums_types + '.h.template',
@@ -296,7 +297,7 @@ endif
executable(
'ModemManager',
- sources: sources,
+ sources: sources + daemon_enums_sources,
include_directories: top_inc,
dependencies: deps,
c_args: c_args,