aboutsummaryrefslogtreecommitdiff
path: root/doc/specs
diff options
context:
space:
mode:
authorDmitry V. Levin <ldv@strace.io>2024-09-01 08:00:00 +0000
committerDmitry V. Levin <ldv@strace.io>2024-09-10 08:00:00 +0000
commit7fb6beed01bc1a59438b8b2a9b34b2dba296e553 (patch)
tree2f6ae951c4d94d331e29e348e6ffd9846687be33 /doc/specs
parentaa3e91322cbc651bb130ec8636b28d676979d4fe (diff)
downloadpam-7fb6beed01bc1a59438b8b2a9b34b2dba296e553.tar.gz
pam-7fb6beed01bc1a59438b8b2a9b34b2dba296e553.tar.bz2
pam-7fb6beed01bc1a59438b8b2a9b34b2dba296e553.zip
meson: build Linux-PAM using meson
On my non-representative hardware, the full build using autotools (./autogen.sh && CFLAGS=-O2 ./configure && make -j`nproc` && make -j`nproc` install) takes about 45 seconds. On the same hardware, the full build using meson (meson setup -Doptimization=2 dir && meson compile -C dir && meson install -C dir) takes just about 7.5 seconds.
Diffstat (limited to 'doc/specs')
-rw-r--r--doc/specs/meson.build42
1 files changed, 42 insertions, 0 deletions
diff --git a/doc/specs/meson.build b/doc/specs/meson.build
new file mode 100644
index 00000000..4ddeef84
--- /dev/null
+++ b/doc/specs/meson.build
@@ -0,0 +1,42 @@
+parse_y = custom_target(
+ 'parse_y.[ch]',
+ input: 'parse_y.y',
+ output: ['parse_y.c', 'parse_y.h'],
+ command: yacc_cmd,
+)
+
+parse_l = custom_target(
+ 'parse_l.c',
+ input: 'parse_l.l',
+ output: 'parse_l.c',
+ depends: parse_y,
+ command: [prog_flex, '-o', '@OUTPUT@', '@INPUT@'],
+)
+
+padout = executable(
+ 'padout',
+ sources: [parse_l, parse_y],
+ include_directories: [libpam_inc],
+ c_args: [
+ '-Wno-unused-function',
+ '-Wno-sign-compare',
+ ],
+ link_args: exe_link_args,
+)
+
+custom_target(
+ 'draft-morgan-pam-current.txt',
+ input: 'draft-morgan-pam.raw',
+ output: 'draft-morgan-pam-current.txt',
+ command: [redir_exe, '@INPUT@', '@OUTPUT@', padout],
+ depends: padout,
+ install: true,
+ install_dir: docdir,
+ install_tag: 'doc',
+)
+
+install_data(
+ 'rfc86.0.txt',
+ install_dir: docdir,
+ install_tag: 'doc',
+)