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:
parent
d1edd7677a
commit
6ae8b15d68
4 changed files with 235 additions and 52 deletions
|
@ -13,9 +13,18 @@ depends on PACKAGE_modemmanager
|
||||||
help
|
help
|
||||||
Compile ModemManager with QMI support
|
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
|
config MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS
|
||||||
bool "Allow AT commands via DBus"
|
bool "Allow AT commands via DBus"
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Compile ModemManager allowing AT commands without debug flag
|
Compile ModemManager allowing AT commands without debug flag
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
|
@ -8,23 +8,26 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=modemmanager
|
PKG_NAME:=modemmanager
|
||||||
PKG_VERSION:=1.18.6
|
PKG_SOURCE_VERSION:=1.18.6
|
||||||
PKG_RELEASE:=$(AUTORELEASE)
|
PKG_RELEASE:=$(AUTORELEASE)
|
||||||
|
|
||||||
PKG_SOURCE:=ModemManager-$(PKG_VERSION).tar.xz
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://www.freedesktop.org/software/ModemManager
|
PKG_SOURCE_URL:=https://gitlab.freedesktop.org/mobile-broadband/ModemManager.git
|
||||||
PKG_HASH:=d4f804b31cf504239c5f1d4973c62095c00cba1ee9abb503718dac6d146a470a
|
PKG_MIRROR_HASH:=72f1a865153745d05c482ed3a77f2045d24387f1f9a37177fe7bc35ab7663765
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/ModemManager-$(PKG_VERSION)
|
|
||||||
|
|
||||||
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
|
PKG_MAINTAINER:=Nicholas Smith <nicholas@nbembedded.com>
|
||||||
PKG_LICENSE:=GPL-2.0-or-later
|
PKG_LICENSE:=GPL-2.0-or-later
|
||||||
PKG_LICENSE_FILES:=COPYING
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
PKG_INSTALL:=1
|
PKG_INSTALL:=1
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_DEPENDS:=glib2/host libxslt/host
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
include $(INCLUDE_DIR)/nls.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
|
define Package/modemmanager/config
|
||||||
source "$(SOURCE)/Config.in"
|
source "$(SOURCE)/Config.in"
|
||||||
|
@ -41,7 +44,8 @@ define Package/modemmanager
|
||||||
+dbus \
|
+dbus \
|
||||||
+ppp \
|
+ppp \
|
||||||
+MODEMMANAGER_WITH_MBIM:libmbim \
|
+MODEMMANAGER_WITH_MBIM:libmbim \
|
||||||
+MODEMMANAGER_WITH_QMI:libqmi
|
+MODEMMANAGER_WITH_QMI:libqmi \
|
||||||
|
+MODEMMANAGER_WITH_QRTR:libqrtr-glib
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/modemmanager/description
|
define Package/modemmanager/description
|
||||||
|
@ -50,35 +54,21 @@ define Package/modemmanager/description
|
||||||
Select Utilities/usb-modeswitch if needed.
|
Select Utilities/usb-modeswitch if needed.
|
||||||
endef
|
endef
|
||||||
|
|
||||||
CONFIGURE_ARGS += \
|
MESON_ARGS += \
|
||||||
--without-polkit \
|
-Dudev=false \
|
||||||
--without-udev \
|
-Dudevdir=/lib/udev \
|
||||||
--without-systemdsystemunitdir \
|
-Dsystemdsystemunitdir=no \
|
||||||
--disable-rpath \
|
-Dsystemd_suspend_resume=false \
|
||||||
--disable-gtk-doc
|
-Dsystemd_journal=false \
|
||||||
|
-Dpolkit=no \
|
||||||
ifeq ($(CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS),y)
|
-Dintrospection=false \
|
||||||
CONFIGURE_ARGS += --with-at-command-via-dbus
|
-Dman=false \
|
||||||
endif
|
-Dbash_completion=false \
|
||||||
|
-Db_lto=true \
|
||||||
ifdef CONFIG_MODEMMANAGER_WITH_MBIM
|
-Dmbim=$(if $(CONFIG_MODEMMANAGER_WITH_MBIM),true,false) \
|
||||||
CONFIGURE_ARGS += --with-mbim
|
-Dqmi=$(if $(CONFIG_MODEMMANAGER_WITH_QMI),true,false) \
|
||||||
else
|
-Dqrtr=$(if $(CONFIG_MODEMMANAGER_WITH_QRTR),true,false) \
|
||||||
CONFIGURE_ARGS += --without-mbim
|
-Dat_command_via_dbus=$(if $(CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS),true,false)
|
||||||
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
|
|
||||||
|
|
||||||
define Build/InstallDev
|
define Build/InstallDev
|
||||||
$(INSTALL_DIR) $(1)/usr/include/ModemManager
|
$(INSTALL_DIR) $(1)/usr/include/ModemManager
|
||||||
|
|
|
@ -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,
|
|
@ -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,
|
Loading…
Reference in a new issue