Add meson build
This adds the meson build files to be able to use meson instead of
autotools.
Tested: builds as expected, able to change password and log in.
Change-Id: I834b2fe205c3b79086b7a55e4b7bcc39efa8a95e
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..4eb0050
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,50 @@
+#
+# https://github.com/openbmc/pam-ipmi
+#
+project(
+ 'pam_ipmi',
+ 'c',
+ version: '0.1',
+ meson_version: '>=0.57.0',
+ default_options: [
+ 'werror=true',
+ 'warning_level=3',
+ ])
+
+root = meson.current_source_dir()
+
+compiler = meson.get_compiler('c')
+
+fam = target_machine.cpu_family()
+pw_file = ''
+if (fam == 'aarch64' or fam == 'mips64' or fam == 'ppc64' or
+ fam == 'riscv64' or fam == 'sparc64' or fam == 'x86_64')
+ pw_file = 'ipmi_pass_64'
+elif (fam == 'arc' or fam == 'arm' or fam == 'mips' or
+ fam == 'ppc' or fam == 'riscv32' or fam == 'sparc' or
+ fam == 'x86')
+ pw_file = 'ipmi_pass_32'
+else
+ error('unknown target architecture')
+endif
+
+# Dependencies
+crypto = dependency('libcrypto', version : '>=3.0.0')
+pam = compiler.find_library('pam', required: true)
+
+# Subfolders
+subdir('src/pam_ipmicheck')
+subdir('src/pam_ipmisave')
+
+install_data(
+ sources: pw_file,
+ rename: 'ipmi_pass',
+ install_mode: 'rw-------',
+ install_dir: get_option('sysconfdir')
+)
+install_data(
+ sources: 'key_file',
+ install_mode: 'rw-------',
+ install_dir: get_option('sysconfdir')
+)
+
diff --git a/src/pam_ipmicheck/meson.build b/src/pam_ipmicheck/meson.build
new file mode 100644
index 0000000..9d67e55
--- /dev/null
+++ b/src/pam_ipmicheck/meson.build
@@ -0,0 +1,12 @@
+#
+# build a pam library
+#
+libpam_ipmicheck = library(
+ 'pam_ipmicheck',
+ 'pam_ipmicheck.c',
+ dependencies: [ pam, crypto ],
+ soversion: '',
+ name_prefix: '',
+ install: true,
+ install_dir: get_option('libdir') / 'security'
+)
diff --git a/src/pam_ipmisave/meson.build b/src/pam_ipmisave/meson.build
new file mode 100644
index 0000000..e879e94
--- /dev/null
+++ b/src/pam_ipmisave/meson.build
@@ -0,0 +1,12 @@
+#
+# build a pam library
+#
+libpam_ipmisave = library(
+ 'pam_ipmisave',
+ 'pam_ipmisave.c',
+ dependencies: [ pam, crypto ],
+ soversion: '',
+ name_prefix: '',
+ install: true,
+ install_dir: get_option('libdir') / 'security'
+)