From 2b59014507068885cacdb9a84771aae9a4e36af1 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 13 Nov 2023 17:08:28 +0100
Subject: [PATCH 1/6] When building with meson, make sure to link against numa

Signed-off-by: David Runge <dave@sleepmap.de>
---
 contrib/meson.build | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/contrib/meson.build b/contrib/meson.build
index d813233..829f4b5 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -5,6 +5,7 @@ glib_dep = dependency('glib-2.0')
 m_dep = cc.find_library('m', required: false)
 capng_dep = dependency('libcap-ng', required: get_option('capng'))
 ncurses_dep = dependency('curses', required: get_option('ui'))
+numa_dep = dependency('numa')
 systemd_dep = dependency('libsystemd', required: get_option('systemd'))
 
 cdata = configuration_data()
@@ -40,6 +41,6 @@ executable(
   '../numa.c',
   '../placement.c',
   '../procinterrupts.c',
-  dependencies: [glib_dep, m_dep, capng_dep, systemd_dep],
+  dependencies: [glib_dep, m_dep, capng_dep, numa_dep, systemd_dep],
   install: true,
 )
-- 
2.43.0

From f0422910b3d4bc1e238a60463aa1fb2df3bb69ec Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 13 Nov 2023 17:17:59 +0100
Subject: [PATCH 2/6] Install man pages when building with meson

Signed-off-by: David Runge <dave@sleepmap.de>
---
 contrib/meson.build | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/contrib/meson.build b/contrib/meson.build
index 829f4b5..e02701e 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -28,6 +28,13 @@ if cdata.get('HAVE_IRQBALANCEUI')
     dependencies: [glib_dep, ncurses_dep],
     install: true,
   )
+
+  install_man(
+    '../irqbalance-ui.1',
+    install_dir: get_option('mandir') + '/man1',
+    install_mode: 'rw-r--r--',
+    locale: 'en',
+  )
 endif
 
 executable(
@@ -44,3 +51,10 @@ executable(
   dependencies: [glib_dep, m_dep, capng_dep, numa_dep, systemd_dep],
   install: true,
 )
+
+install_man(
+  '../irqbalance.1',
+  install_dir: get_option('mandir') + '/man1',
+  install_mode: 'rw-r--r--',
+  locale: 'en',
+)
-- 
2.43.0

From 1aed521c5616c97937ad5de02b20c100a5a42942 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 13 Nov 2023 17:19:35 +0100
Subject: [PATCH 3/6] Set project version of meson build to 1.9.3

Signed-off-by: David Runge <dave@sleepmap.de>
---
 contrib/meson.build | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/meson.build b/contrib/meson.build
index e02701e..6f02204 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -1,4 +1,4 @@
-project('irqbalance', 'c', version: '1.9.0', default_options: ['warning_level=1'])
+project('irqbalance', 'c', version: '1.9.3', default_options: ['warning_level=1'])
 cc = meson.get_compiler('c')
 
 glib_dep = dependency('glib-2.0')
-- 
2.43.0

From 73cc58c68359d9db3def41911ae0f59d7562e4c1 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 13 Nov 2023 17:08:28 +0100
Subject: [PATCH 4/6] Turn NUMA support into an enabled feature, when building
 with meson

Signed-off-by: David Runge <dave@sleepmap.de>
---
 contrib/meson.build       | 4 ++--
 contrib/meson_options.txt | 4 ++++
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/contrib/meson.build b/contrib/meson.build
index 6f02204..dd86cda 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -5,13 +5,13 @@ glib_dep = dependency('glib-2.0')
 m_dep = cc.find_library('m', required: false)
 capng_dep = dependency('libcap-ng', required: get_option('capng'))
 ncurses_dep = dependency('curses', required: get_option('ui'))
-numa_dep = dependency('numa')
+numa_dep = dependency('numa', required: get_option('numa'))
 systemd_dep = dependency('libsystemd', required: get_option('systemd'))
 
 cdata = configuration_data()
 cdata.set('HAVE_GETOPT_LONG', cc.has_function('getopt_long'))
 cdata.set('HAVE_IRQBALANCEUI', ncurses_dep.found())
-cdata.set('HAVE_NUMA_H', cc.has_header('numa.h'))
+cdata.set('HAVE_NUMA_H', cc.has_header('numa.h') and numa_dep.found())
 cdata.set('HAVE_LIBCAP_NG', capng_dep.found())
 cdata.set('HAVE_LIBSYSTEMD', systemd_dep.found())
 cdata.set_quoted('VERSION', meson.project_version())
diff --git a/contrib/meson_options.txt b/contrib/meson_options.txt
index 3515dc3..e3cb3ee 100644
--- a/contrib/meson_options.txt
+++ b/contrib/meson_options.txt
@@ -2,6 +2,10 @@ option('capng', type : 'feature',
   description : 'Build with libcap-ng support',
 )
 
+option('numa', type : 'feature', value: 'enabled',
+  description : 'Build with numa support',
+)
+
 option('systemd', type : 'feature',
   description : 'Build with systemd support',
 )
-- 
2.43.0

From 2c167c4dbd9d912f647f6a0869ae5032ca718f01 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 13 Nov 2023 17:55:57 +0100
Subject: [PATCH 5/6] Add support for linking against libnl when building with
 meson

Signed-off-by: David Runge <dave@sleepmap.de>
---
 contrib/meson.build       | 19 ++++++++++++++++---
 contrib/meson_options.txt |  4 ++++
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/contrib/meson.build b/contrib/meson.build
index dd86cda..0c74702 100644
--- a/contrib/meson.build
+++ b/contrib/meson.build
@@ -6,12 +6,15 @@ m_dep = cc.find_library('m', required: false)
 capng_dep = dependency('libcap-ng', required: get_option('capng'))
 ncurses_dep = dependency('curses', required: get_option('ui'))
 numa_dep = dependency('numa', required: get_option('numa'))
+libnl_3_dep = dependency('libnl-3.0', required: get_option('thermal'))
+libnl_genl_3_dep = dependency('libnl-genl-3.0', required: get_option('thermal'))
 systemd_dep = dependency('libsystemd', required: get_option('systemd'))
 
 cdata = configuration_data()
 cdata.set('HAVE_GETOPT_LONG', cc.has_function('getopt_long'))
 cdata.set('HAVE_IRQBALANCEUI', ncurses_dep.found())
 cdata.set('HAVE_NUMA_H', cc.has_header('numa.h') and numa_dep.found())
+cdata.set('HAVE_THERMAL', libnl_3_dep.found() and libnl_genl_3_dep.found())
 cdata.set('HAVE_LIBCAP_NG', capng_dep.found())
 cdata.set('HAVE_LIBSYSTEMD', systemd_dep.found())
 cdata.set_quoted('VERSION', meson.project_version())
@@ -37,8 +40,7 @@ if cdata.get('HAVE_IRQBALANCEUI')
   )
 endif
 
-executable(
-  'irqbalance',
+irqbalance_sources = [
   '../activate.c',
   '../bitmap.c',
   '../classify.c',
@@ -48,7 +50,18 @@ executable(
   '../numa.c',
   '../placement.c',
   '../procinterrupts.c',
-  dependencies: [glib_dep, m_dep, capng_dep, numa_dep, systemd_dep],
+]
+
+if libnl_3_dep.found() and libnl_genl_3_dep.found()
+  irqbalance_sources += [
+    '../thermal.c',
+  ]
+endif
+
+executable(
+  'irqbalance',
+  irqbalance_sources,
+  dependencies: [glib_dep, m_dep, capng_dep, libnl_3_dep, libnl_genl_3_dep, numa_dep, systemd_dep],
   install: true,
 )
 
diff --git a/contrib/meson_options.txt b/contrib/meson_options.txt
index e3cb3ee..1eb6e80 100644
--- a/contrib/meson_options.txt
+++ b/contrib/meson_options.txt
@@ -10,6 +10,10 @@ option('systemd', type : 'feature',
   description : 'Build with systemd support',
 )
 
+option('thermal', type : 'feature',
+  description : 'Build with thermal support',
+)
+
 option('ui', type : 'feature',
   description : 'Build the UI component',
 )
-- 
2.43.0

From 43cace43c6a5e49cbff0c63e74e46bce9f3c7cd0 Mon Sep 17 00:00:00 2001
From: David Runge <dave@sleepmap.de>
Date: Mon, 20 Nov 2023 21:37:51 +0100
Subject: [PATCH 6/6] Enable systemd feature support by default when building
 with meson

Signed-off-by: David Runge <dave@sleepmap.de>
---
 contrib/meson_options.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/meson_options.txt b/contrib/meson_options.txt
index 1eb6e80..53cc121 100644
--- a/contrib/meson_options.txt
+++ b/contrib/meson_options.txt
@@ -6,7 +6,7 @@ option('numa', type : 'feature', value: 'enabled',
   description : 'Build with numa support',
 )
 
-option('systemd', type : 'feature',
+option('systemd', type : 'feature', value: 'enabled',
   description : 'Build with systemd support',
 )
 
-- 
2.43.0

