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
|
@ -1,21 +1,30 @@
|
|||
menu "Configuration"
|
||||
depends on PACKAGE_modemmanager
|
||||
depends on PACKAGE_modemmanager
|
||||
|
||||
config MODEMMANAGER_WITH_MBIM
|
||||
config MODEMMANAGER_WITH_MBIM
|
||||
bool "Include MBIM support"
|
||||
default y
|
||||
help
|
||||
Compile ModemManager with MBIM support
|
||||
|
||||
config MODEMMANAGER_WITH_QMI
|
||||
config MODEMMANAGER_WITH_QMI
|
||||
bool "Include QMI support"
|
||||
default y
|
||||
help
|
||||
Compile ModemManager with QMI support
|
||||
|
||||
config MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS
|
||||
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
|
||||
|
||||
endmenu
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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